Java 自学总结1

1.什么是标示符?
      在java语言中用来给一个类、变量或方法命名的符号

2.标示符的命名规则:
       以字母, “_” 或 “$”符号开头
       可以包含字母、 “_” 、“$”和数字符号
       大小写敏感
       不能与保留关键字冲突
       没有长度限制
 例如:identifier    _sys_ var1    $char   userName   
          user_ name

3.'/u0060'中/u表示 Unicode 编码

4.转义字符 描述
 /ddd  1到3位8进制数所表示的字符(ddd)
 /uxxxx  1到4位16进制数所表示的字符(xxxx)
 /'  单引号字符
 /''  双引号字符
 //  反斜杠字符
 /r  回车
 /n  换行
 /f  走纸换页
 /t  横向跳格
 /b  退格

5.计算机能存储的值都是二进制值,整形数据在计算机中的存储方式分两种情况讨论:
 1.正整数,存储该数字的二进制原码。
 2.负整数,存储该数字的二进制补码。
 疑问:正数的源码和补码不是相同吗?

6.八种基本数据类型:
    Type        Bits   Bytes Minimum Range  Maximum Range
 1. boolean 8 1 Only two values :true or false 
 2. byte   8 1 -2^7  2^7-1
 3. short 16 2 -2^15         2^15 - 1
 4. char  16 2 0  2^16-1
 5. int  32 4 -2^31  2^31 - 1
 6. long  64 8 -2^63  2^63 - 1
 7. float 32 4 Not  needed Not  needed
 8. double 64 8 Not  needed Not  needed

7.java中的main函数
 在java中main方法必须有一个外壳类。java中main方法总是静态的。java的main方法并不向操  作系统返回"退出代码",java中,如果main方法正常退出,java程序的退出代码为0,表示成功 地执行完毕程序。
 若要用不同的代码终止程序,则使用System.exit方法。

8.所有浮点计算都遵从IEEE754规范。有三种特殊的浮点值:
 正无穷大
 负无穷大
 NaN  非数字

9.浮点类型数据不适合在不容许舍入误差的金融计算领域使用。比如,
 命令System.out.println(2.0-1.1)将会打印0.8999999999999999
 而不是希望的0.9.这种舍入误差的产生的原因是因为浮点数实际上是用二进制系统表示的。而 分数1/10在二进制系统中没有精确的表示。

10.如果需要理解那些Unicode字符对Java来说是"字母",可以使用Character类中的 isJavaIdentifierStart和isJavaIdentifierPart方法来检查。

11.在Java中,没有与定义相分离的声明。

12.在Java中使用关键字final来表示常量,只能对变量赋一次值,其值一旦设定,便不能该。

13.const是被保留的Java关键字,但目前还未被定义。必须使用final来表示常量。

14.用0除整数将产生异常,而用0除浮点数将得到一个无穷大值或得到NaN。
 疑问:什么情况产生无穷大值,什么情况下得到NaN?
 解答:0.0/0 将得到NaN 非数
       其他浮点型数除以0将得到Infinity无穷大数.

15.对于使用strictfp关键字标记的方法必须使用严格的浮点运算,以产生再生的结果。
 比如把main方法标记为:public static strictfp void main(String[] args)
 这时,在main方法中的所有指令都使用严格的浮点计算。如果给一个类加上strictfp标记,则 它内部的所有方法都使用严格的浮点计算。

16. 在Java中有一种>>>操作符,它对前面的位填0,而>>则是对前面的位填充符号位。

17.在C/C++中,并不能保证>>操作符执行的是算术移位(扩充符号位)还是逻辑移位(填充0)。执行中将会  选择效率更高的一种。这意味着在C/C++中>>操作符其实是为负数定义的。

18.在Java中不要使用==操作符来检测两个字符串是否相等!它只能判断两个串是否存储在同一个位置。 当然,如果串在同一个位置,那么它们必然相等。但是也完全有可能把串的多个拷贝存放在不 同的地方。

19.在循环中小心使用对浮点数是否相等的测试。如下所说的for循环:
 for(double x=0;x!=10;x+=0.1)....
 永远无法结束。由于舍入误差,无法精确到达最终值。比如在上面的循环里,由于
 0.1没有准确的二进制形式表示,x将从9.999 999 999 999 98跳到10.0 999 999 999 999 8.

20. int []a;这个语句只声明了变量a,它并没有把a初始化为一个真正的数组。应使用new 操作符创建 数组。int [] a=new int[100];

你可能感兴趣的:(Java 自学总结1)