《Java简明教程》读书笔记-Chap.1~3

 

《Java简明教程》读书笔记


学习书籍《Java简明教程》。林巧民主编,清华大学出版社出版。2013年3月第一版

ISBN 978-7-302-31477-6


Question1:Java中print, printf, println等打印函数有何区别?

Question2:Java main()方法中 (String[ ] args)与(String args[ ])两种写法的区别?

笔记:第一章~第三章


  1. 八进制或十六进制表示方法:八进制在数字前加0,十六进制在数字前加0x(或0X)。如010代表十进制的8, 0x10代表十进制的16, 0Xf0代表十进制的240。
  2. 程序中int默认分配4个字节(32位),超出范围时程序自动换为long型进行存储。将一个整数强制指定long型的办法为:22L(加大写的L,防止小写l与1审视不清)。
  3. 浮点数默认为double型,用8个字节存放。强制转化为float型的方法为:0.1f(F)。类型强制转化还可以用a = (short)b进行。
  4. 转义字符中,八进制的字符常量反斜杠后不加0,而十六进制则正常,在反斜杠后加u。\xxx代表八进制的xxx,\uxxxx表示十六进制的xxxx。
  5. final变量在初始化后不能再修改,而普通变量在初始化赋值后还允许改变。
  6. Java中有八种基本数据类型:byte, short, int, long, char, boolean, float, double. 他们存储变量的时候采用补码的形式进行。在计算机内,定点数有3种表示法:原码、反码和补码[原码]即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。byte占1个字节,也就是8位负数的补码是该数绝对值的原码按位取反,然后对整个数加1。最大的应该是0111 1111 即127;最小的应该是1000 0000 即-128(按位取反,然后对整数加1)。
  7. 自增自减赋值:k++,先访问后自增;++k,先自增后访问。
    1. “按位异或”运算规则:0^0=0, 1^1=0 ,0^1=1 ,1^0=1.
    2. “左移运算”:讲一个二进制数的各位全部左移若干位,高位溢出则丢弃,低位补上0。
    3. “带符号右移运算”:低位溢出丢弃,高位补上操作数的符号位(正数补0,负数补1)。
    4. “不带符号的右移运算”:低位丢弃,高位一律补0.
  8. 交互式输入
    1. import java.io,throws IOException
    2. InputStreamReader reader = new InputStreamReader(System.in)//使用InputStreamReader方法,对从系统默认的标准输入(System.in)中的值新建了一个对象“reader”;
    3. BufferedReader input = new BufferedReader(reader)//对上行中的reader对象,按照BufferReader方法新建了一个对象input。这样就把原始的比特输入转化为缓冲字符输入。
  9. 在switch多分支语句中,若允许多个case标量执行相同的程序,则要 case constant1: case constant2: do-something; break;

to be continued…