1.几乎所有的操作符只能操作‘基本类型’。例外的是‘=’、‘==’、‘!=’,他们能操作所有的对象。除此以外,String类支持‘+’和‘+=’。
2、对基本类型的赋值是很简单的。基本类型存储了实际的数值,而并非指向一个对象的引用,是直接将一个地方的内容复制到了另一个地方。例如,对基本数据类型使用a=b,那么b的内容就复制给a,若接着又修改了a,而b根本不会受这种修改的影响。但在为对象赋值时,情况就不同了,对一个对象进行操作时,我们真正操作的是对对象的引用。所以倘若将一个对象赋值给另外一个对象,实际是将引用从一个地方复制到另一个地方。这意味着假使对对象使用c=d,那么c和d都指向原本只有d指向的那个对象。
3、假使n1与n2为两个对象的引用(即已经通过new开辟了空间),若进行n1=n2,则n1开始指向的对象(即占用得空间)会被‘垃圾回收器’自动清理。
4、如果编译器能正确识别类型,就不必再数值后附加字符。如:longn1=200;它不存在含混不清的地方,所以200后面的L是用不着的。然而对于语句:fl
oatf1=1e-45f;编译器通常会将指数作为双精度数(double)处理,所以如果没有这个尾随的f,就会收到一条出错提示,告诉我们必须使用类型转换将double转换成float。
5、可以再一个for语句中定义多个变量,但它们必须具有相同的类型,这与c语言不同。
6、逗号的作用:a、逗号分隔符,用来分隔函数的不同参数;b、逗号操作符,java中唯一用到逗号操作符的地方就是for循环的控制表达式,在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句。
7、用于break和continue的标签,标签后面不能有任何语句(同一行中),注释例外。eg:outer://Can‘thavestatementshere。
8、switch的选择因子必须是int或者char那样的整数值。
9、编码规则“每个方法名称首字母小写”,但构造器例外,构造器的名字跟类名相同,首字母为大写。
10、区分重载方法:每一个重载方法都必须有一个独一无二的参数类型
列表,参数顺序不同也包括在列。
11、如果你写的类中没有构造器,则编译器会自动帮你创建一个缺省构造器(又叫无参构造器),但如果你已经写了一个构造器,编译器则不会帮你创建。
12、this关键字只能在方法内部使用。表示对“调用方法的那个对象”的引用。this的用法和其他对象引用并无不同。但要注意如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。但你非要使用并不会出错,但不是良好的编程习惯。
13、在构造器中,如果为this添加了参数列表,这将产生都符合此参数列表的某个构造器的明确调用。即可用this(参数列表)在构造器中调用构造器。但尽管可用this调用一个构造器,但却不能调用两个,此外,必须将构造器调用置于最起始处,否则编译器会报错。而且,除构造器外,编译器禁止在其它任何方法中调用构造器。
14、在UltraEdit中配置javajavac:高级->工具配置,命令行输入javac%n%e,
工作目录输入%p(配置javac);命令行输入java%n,工作目录输入%p(配置java)。javac-d%n%e[编译那些不是默认包的JAVA
程序],%n:当前路径,%e:执行当前文件名,%p:当前目录。
。
15、在java中,不能将非布尔值当做布尔值在逻辑表达式中使用,这一点不同于c和c++。\\用来转义。
16、在while(x=y)中尽当x、y都为布尔类型的时候编译器不会报错。
17、java允许我们把任何基本数据类型转换成别的基本数据类型,但布尔型除外,后者根本不允许进行任何类型的转换处理。
18、如果对基本数据类型执行算术运算或者按位运算,只要类型比int小(即char、byte、short),那么在运算之前,这些值会自动转换成int。通常,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。如果将float与double相乘,结果是double。byte和short相加,结果是int。
19、Math库里的static方法random()作用是产生0和1之间(包括0,但不包括1)的一个double值。
20、随机产生一个字母的方法charc=(char)(Math.random()*26+'a').
21、构造器不会返回任何东西,new表达式返回了对新建对象的引用。
22、static方法是没有this的方法,在static方法内部不能调用非静态方法,反过来倒是可以的。
23、无论是“垃圾回收”还是“终结”,都不保证一定会发生。如果java虚拟机(JVW)并未面临内存耗尽的情形,它是不会浪费时间去执行垃圾回收以恢复内存的,比较垃圾回收也是有代价的。