1、java将一切都作为对象来处理,通过对象的reference操控对象,reference可以单独存在,在没有给它分配对象的时候,它就象c++里定义的没有赋值的指针一样没有意义。定义一个对象只是定义了它的reference,定义string型对象可以直接用引号括起来的文字进行初试化。
2、创建完对象的reference后,就可以往上面连接对象了,new关键字用来创建一个新的某种类型的对象。java中自动对象的reference存储在栈中,static对象的reference存储在静态存储区,所有对象本身存储在堆内存中,而常量则存储在程序区内。
3、persistent对象:能够把对象保存在磁盘上,需要的时候又能从内存中重建。
4、primitive类型:primitive类型包括boolean、char、byte、short、int、long、double、void等数据类型,它是java继承了c/c++的自动变量方式,将对象直接存储在栈中。与c/c++不同的是,它所有的数字类型都是带符号的,而且每种类型长度不因机器改变。同时,primitive类型的wrapper类允许你在堆里创建一个表示该primitive类型数据的对象,这个对象就不是primitive类型的了,调用它要用它的reference。
5、高精度数值:java的wrapper类中提供了两个类:BigInteger和BigDecimal,它们提供了能够模拟primitive(原始)类型操作的方法,并且支持更高的精度。
6、java数组:java中数组肯定会被初始化,而且限定了其访问范围。当你创建对象数组时,实际上创建的是对象的reference数组,这些reference会被自动初始化为NULL;创建primitive数组时编译器会将其内存清零。
7、java中对象:c/c++中变量和java中primitive变量及对象的reference的作用域都是由{}决定的,但是java不支持c/c++中的同名变量作用域屏蔽功能。对象的reference会在作用域结束之后消失,但堆中对象仍然占着内存,java的垃圾回收器会自动清理用new创建的堆对象。
8、java中的类:java的类包含数据和方法两种元素,数据可以是reference类型也可以是primitive类型。primitive类型作为类的数据成员总是被初始化,它有一组默认的初始化值。java中方法用方法名和其参数列表来唯一标识,参数列表标明了传给方法的对象类型和名字,实际上传的是对象的reference。调用对象的方法就是向对象发送消息,如果方法无返回值需要标明方法的返回类型为void。
9、java中程序:名字的可见性:c++通过名字空间管理名字的可见性,java通过倒序的域名方式实现名字空间的管理。组件使用:java中通过使用import来指定使用的类库中的组件,并且支持通配符*,其中对标准java类库的引用可以省略域名。static成员:类static成员没有被连到类的任何一个实例上,因此即使没有创建任何一个对象也可以访问其static数据或调用static方法,访问类的static成员可以通过对象名,也可以通过类名访问。static数据对每个类只有一份,类的所有对象共用;static方法能够在不创建对象的情况下调用,常用来实现类的管理,它的参数常为static数据或该类的对象。
10、第一个java程序:java标准类库中java.lang类库会被自动引入所有java文件,其它类库得用import语句引入,类库结构见jdk文档(Date方法属于java.util.Date类,out是System类的static数据成员,其类型为PrintStream类对象,PrintStream类中方法println用来将其参数String类型内容加换行符后打印到控制台上)。创建独立程序的时候,文件名必须与方法main所在的类名相同,main方法的格式为:public static void main ( Strint[] args)。
11、编译运行:安装jdk并在环境变量中设置JAVA_HOME变量,编译:javac 程序名,运行:java 文件名。使用ant命令可以自动编译运行java程序。
12、注释和嵌入式文档:java中注释和c++相同。嵌入式文档是指在java的程序注释中加入特殊的标记,以便于javadoc从中提取文档,javadoc可以生成html格式的文档,doclets可以对一些信息进行特殊处理。
13、javadoc语法:所有javadoc命令都是由/**注释符开始,*/结束,注释和定义之间不能有任何东西。javadoc有两种主要用法:嵌入式HTML和文档标记。默认情况下javadoc只处理类的public和protected注释文档。嵌入式HTML:在注释文档里包含HTML命令,主要用于排版功能,javadoc会对一切进行重排版。标记文档:独立式文档标记:以@开头且被放在注释行开头;内嵌式文档标记:括在{}内并以@开头,可放在注释的任何地方。
14、文档标记举例:内嵌式:{@link package.class#member label}以label作为超级链接引用文档中其它类、{@docRoot}返回以文档目录为根的相对路径、{@inheritDoc}把与这个类最近的那个基类的文档继承到当前文档中。独立式:@see 以See Also的超级链接引用文档中其它类、@version version-information 标识版本信息、@author author-information 标识作者信息、@since 标明某种特性开始的版本、@param parametername description 标记方法的参数和其信息、@return description 标记返回值信息、@throws fully-qualified-class-name description 其中第一个为方法声明的异常名 description为产生异常的原因 。
15、编程风格:类名:首字母大写,多单词应该连在一起且每个单词第一个字母大写;方法、数据、reference等首字母小写,多单词应该连在一起且每个单词第一个字母大写。