java新手入门

java新手入门
Java总有它的千般好处使你选择它,但这些随便翻翻书或在网上逛一圈就能找到答案。在本文中,笔者把自己学习Java的一些切身体会和过程写出来,供Java培训初学者做个参考。
我在学习Java的过程中主要围绕以下几个方面来学习:
1.时刻提醒自己Java是一种OOP语言工具,而不仅仅是编码,只有这样才能总体把握和运用Java。
2.在学习的过程中,最好能够了解Java的底层机制,而不是仅仅停留在表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
3.在学习的过程中一定要动手做、写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己,最好能参与一些实际的项目。
4.在学到一定阶段后,你开始希望用学过的东西做些什么。这时的你应该开始学习一些更多、更复杂的知识,比如J2EE平台的构建、EJB的开发等。对于这一部分,我建议最好找一本较薄的书先了解一个大概,心里有个总体的认识,对更多的技术术语做个初步掌握。我认为这个阶段看看《J2EE技术实践》很不错,它可以让你了解J2EE包含的各种技术和框架,同时提供很多实际的例子来加深对J2EE的整体了解。
学习Java的兴趣和决心起了很关键的作用。在有了上述基础后,我便开始一步一步地学习Java。
Java环境的搭建
要运行Java程序,必须安装JDK。JDK是整个Java的核心,其中包括了Java编译器、JVM、大量的Java工具以及Java基础API。
可以从http://Java.sun.com下载JDK,有1.4版本和1.31版本。我的学习环境中首先,采用的是1.31版本。
解压安装。然后,进行环境设置。
1.对于Windows平台要进行以下设置:
  set PATH=YOUR_INSTALL_ DIR\bin; C:\Windows;C:\Windows\Command
  set classpath=. ;YOUR_INSTALL_DIR\lib\tools.jar
2.对于Linux平台要编辑/etc/profile文件:
  JAVA_HOME=your_install_dir/JDK/j2sdk
  CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/td.jar:$JAVA_HOME/jr
  -e/lib/rt.jar:.
  PATH=$PATH:$JAVA_HOME/bin
  export PATH PS1 USER LOGNAME MAIL HOSTNAME HISTSIZE HISTFILESIZE
  INPUTRC JAVA_HOME CLASSPATH RESIN_HOME
  最后,在终端上输入Java看能不能找到这个命令,如果能找到安装就成功了。
  下面介绍一下JDK的几个重要的命令:
  ◆Java执行工具,是启动JVM(虚拟机)并执行class(BYTE CODE)文件的命令;
  ◆javac 编译器,由.java文件生成.class文件;
  ◆jar Java压缩打包工具;
  ◆Javadoc 文档生成器。
  最后就是JDK Documentation,这是JDK的联机帮助文档,是最有用和最重要的学习参考文档,应该多看。
  开始写自己的代码
  现在环境有了,应该写个简单的代码进行测试了。还是从经典的“hello word”开始。
  1. 先用编辑器写一代码(我用的是Linux的vi):
  [stone@coremsg work]$ vi Hello.Java
  public class Hello{
  public static void main(String []argc){
  System.out.println("Hello Word!");
  }
  }
  2. 编译:
  [stone@coremsg work]$ Javac Hello.Java
  3. 执行:
  [stone@coremsg work]$ Java Hello
  Hello Word!
成功了!这就是我的第一个Java程序。从那时起我知道已开始走进Java的世界,接下来就靠自己的努力了。在这个过程中,笔者认为有几点需要注意。
学习一门新的语言,参考书是离不开的。我的建议是开始最好找一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。此外,在这一阶段还应该多看JDK的联机帮助,尽量多地掌握JDK提供的Java基本类库API。
在有一定基础、能够写一些简单的程序后,可以开始看《Thinking in Java》这本书。它比较完整地介绍了Java的语法、面向对象的特性、核心类库等。通过这一层次的学习能够加深对Java的理解和底层原理的运用,同时又可以完整地了解Java的整个体系。在这一阶段,应该重点学习Java的面向对象编程语言的特性,比如继承、构造器、抽象类、接口、方法的多态、重载、覆盖、Java的异常处理机制等,要对上述概念有非常清楚的了解。这样做的目的,是要让自己把这些技术应用到实践中进行合理的程序设计(比如,你会考虑一个类是用抽象还是接口来设计等)。这就要求必须在大量的实践中去应用和学习。这也是当初很多朋友给我的建议。
学习更多
如果要用Java来完成各种功能更强大的任务,那么就要学习语言以外的更多的东西。
1.Java Web编程
对于Java Web 编程来说,应该而且必须熟悉和掌握HTTP协议,可以参考 Stevens的《TCP/IP 详解》第三卷。Java Servlet技术提供了生成动态Web页面内容的能力,这在你的Java项目中是最基本的功能之一,所以必须学习。通过这一阶段的学习应该掌握Servlet/JSP的Web编程。
2. J2EE的学习
J2EE包含的技术太多了。如果你想坐在桌子旁边抱着一大堆书来学习的话,效果不大的。我建议在开始这一阶段的学习的时候,可以按以下步骤来做,总的思想是“总体把握,各个击破”。
◆ 了解J2EE中的技术术语的含义。
我的感觉是J2EE标准中涉及到的各种技术很多,如果一开始就一个一个去学习的话是不现实的,也是没效果的。我的建议是,先对其中的技术有个大概的了解,比如EJB、JavaIDL、JTA等。可能你不知道怎么去写一个EJB,但是要知道什么是EJB、它能做什么,当有了这样的概念后,再去有目的地学习它就会快很多。我还要再重复一句——必须要在实践中动手去做才行。
◆ 了解J2EE中的设计模式,这样能帮助你对J2EE做个整体把握。
MVC开发模式被证明是有效的处理方法之一。它可以分离数据访问和数据表现。你可以开发一个有伸缩性的、便于扩展的控制器,来维护整个流程。通过这一层次的学习,当你面对一个项目的时候,应该首先把握它的总体架构的设计,以及决定采用J2EE标准中的哪些技术。
◆ 了解一些J2EE平台的典型案列,加深对这一技术的概念和理解。
平时可以多留意这方面,熟悉一些典型案例,分析它为什么要采用那个时间?那样做能达到什么样的目的?然后联系到自己身边的项目是否可以作为参考。
◆ 学习J2EE下的各种技术。
在有了前几阶段JavaEE培训的学习后,可以自己搭建一个J2EE平台开始具体学习每一种技术。你可以参与公司相关项目进行学习,也可以自己搭建一个平台进行学习。这时候应该找点相关的书来一步一步学习,没有捷径可走。如果你不满足于这些,那么还应该更深入地学习UML、设计模式等方面的东西。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

自动id生成器类 - 2016-09-19 17:09:13

import java.util.concurrent.atomic.AtomicInteger;AtomicInteger idCreate = new AtomicInteger();idCreate.incrementAndGet();//返回int类型 //获取当前的值 public final int get() //取当前的值,并设置新的值 public final int getAndSet(int newValue) //获取当前的值,并自增 public final int getAnd
[size=medium]    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.jb51.net / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 19

JAVA 常量池与String - 2016-09-19 14:09:50

  提到常量池,一般是指运行时常量池,是方法区的一部分。方法区就是通常说的永久代。那么常量池中会存储那些数据呢?   ①编译期生成的各种字面量和符号引用   ②也有可能将运行期间的常量放入常量池   先看第一种: 编译期生成的各种字面量和符号引用,这部分数据经过编译后存在.class文件的‘常量池’中,注意这个所谓的‘常量池’是‘静态常量池’,静态常量池的数据会在类加载后放入运行时常量池。举个例子   测试一 public class ConstantPoolAndStrTest { String str

btrace跟踪组数创建 - 2016-09-19 14:09:44

之前有人问我怎么用btrace跟踪数组的创建,这里记录一下。 需要靠Kind.NEWARRAY,比如要跟踪int数组的创建可以这么写 @BTracepublic class BtraceCreateArray { @OnMethod(clazz = "/.*/", method = "/.*/", location = @Location(value = Kind.NEWARRAY, clazz = "int") ) public static void findCreateIntArray() { pri

操作json - 2016-09-19 14:09:07

总是记不住一些零碎的知识点,这次开个专栏来记录,不定期更新: 1:json格式互转 1.1 :model转换json JSONObject jsonObject = JSONObject.fromObject(model);

解析数据存储MySQL - 2016-09-18 14:09:05

为了适应不同项目对不同感兴趣属性的解析存储,数据存储结构采用纵向的属性列表方式,即一个url页面多个属性存储多条记录方式,并且按照text,html,data,num几大典型类型分别对应存储。 创建UTF-8字符集的nutch数据库,并执行表初始化脚本,参考DDL: CREATE TABLE `crawl_data` ( `url` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL,
一、定义:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。     与需要在编译时进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。 二、类加载的时机     类从被加载到虚拟机内存中

java播放器 - 2016-09-18 14:09:03

最近写了一段java播放器代码 /* dkplus专业搜集和编写实用电脑软件教程,搜集各种软件资源和计算机周边(java网络编程,seo网站优化,web开发,lnmp,java网络编程,毕业论文设计),独立制作视频和ppt和音频微信公众号,点击进入 dkplus官方博客http://dkplus.iteye.com 微信搜索dkplus关注公众号可获取海量计算机周边资源。 */ package simpleaudioplayer; import javax.media.*;import java.io.I

Servlet之JSP_01概述 - 2016-09-17 18:09:08

一、什么是JSP JSP (Java Server Pages) 提供一种简便、快速的方式以生成动态的(dynamic)网页内容。 JSP运行原理 JSP 是 Servlet 的模板文件。 JSP最终由 Web 容器解析生成 Servlet 类( .java 文件),并编译成为 .class 文件,最后执行。 植入 JAVA 代码 可以告诉解析器,JSP 模板中的哪一部分是原生的 JAVA 代码,不需要解析。 在JSP中使用 % % 嵌入 JAVA 代码。 被 web 容器基于 JSP 文件而解析生成的
最近有遇到一个问题就是接口放提供的接口密文为PHP的sha256sum加密的内容 在网上找了半天没找到java相应的加密方式 最后迫不得已使用程序执行linux命令来加密 echo -n '123456bzGI9IZAaheT8LtAvhlYNnpDgwuy4hvw' | sha256sum | xxd -r -p | base64 -w0 java程序为: public static String getSHA256Value(String password){ String result = ""; I