Java-核心技术总结-第3章

1.Java对大小写敏感。

2.命名规范,类名大写开头。

3.Java SE 1.4 以后,main方法强制为public。

4.块{ }. 控制着{ }内的变量作用域。即使是static也不能作用到{ }外。

5.长整形long的数,以L结尾。long l = 123L;

6.java 7 开始,前缀0b表示2进制数。

7.java 没有任何无符号类型。

8.浮点数默认类型为double,若定义float类型,float f = 0.112F; 

9.因为java 浮点数采用2进制系统表示,所以不能精确的表示0.1. (就是2进制情况下,不能整除2)。精度要求高的时候,用BigDecimal类型。

10.char类型尽量不同。明白代码点,代码单元的区别联系。 

正常的字符1个代码单元就够了,有些填充的字符需要1个代码单元表示。也就是说,一个代码点对应一个字符,但是有可能对应1个或者2个代码单元。

11.整数值个布尔值之间不能相互转换。

12.变量的声明尽量靠近第一次使用的地方。声明后必须进行显式初始化。类的域在new的过程中,被初始化。这是和局部变量不一样的。

13.变量逐一声明可以提高程序的可读性。

14.建议不要在表达式的内部使用++,这样编写的代码容易使人困惑,并会产生烦人的bug。

15.&& 和 || 是按照短路方式求值的。 &和|位运算符。也可以用于布尔值,得到的结果也是布尔值。但是两边的表达式都要运算,不做短路处理。

16.>>,>>>和<<移位运算符。

>>>将0填充高位。>>将符号位填充高位。<<用0填充。

17.C/C++里的>>移位不能确定是算数移位还是逻辑移位。Java区分这两个。

18.移位的时候要进行模32的运算。int i=1423; i<<33;和i<<1 是等效的。如果是long类型,则要进行模64的运算。

19. 三元操作符?:,右结合性。false?true:false?true:false; 和false?true:(false?true:false;)是一样的。

20.数值类型之间的数据转换,1.自动类型转换,原则就是向高精度,高字长转换。

2.强制类型转换,向下转,会损失精度。必须显式的进行转换。

21.不要在布尔类型和任任何数值类型之间进行强制转换。非要转的话,用? : 来处理。

22.Java 不使用逗号运算符。、

23.substring(0,3)方法的第二个参数是不想复制的第一位,就是复制0-2,不包括3.

24.格式化输出System.out.printf("%d", a1);//和C/C++ 类似。

25.Java不能在嵌套的两个块中声明同名的变量。

int l;
{
int l;
}

但是C++可以,内层定义的变量会覆盖外层定义的变量。

26.Java的break可以带标签。表示跳出哪层循环的意思。

27. 当基本的整数和浮点数精度不能满足要求时,使用BigInteger和BigDecimal。不能重载运算符,只能用add之类的方法。此外,BigIntegar b= new BigIntegal("111");a.add(BigIntegal.valueof(1000));不会改变a的值,除非直接赋值

a=a.add(BigIntegal.valueof(1000));

28.数组属于对象数据类型。创建数组时,数据元素会被自动初始化。

29.foreach循环。加强for循环。一次处理数组中的每个元素。for(varable :collection)statement

30. Arrays.tostring可以打印数组中的所有值。 // java.util.Arrays Arrays是一个工具类

31.Arrays.copyOf(,)。数组拷贝到独立的新的数组。第二个参数是新的数组的长度。类似于类对象的clone。

32.Arrays.sort()可以对数组进行排序,按字典顺序。算法是优化的快速排序算法。

33.Java实际上并没有对维数组,只有一位数组。多维解释成一维。实际上是单独存储每一行,所以可以让两行交换。因此很方便的构造一个不规则的数组。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章