Java编程思想(第三章)

第三章

  1. System.out.println()
  • 语句中包含“+”,不仅仅代表字符串连接,必要的时候还代表字符串转化,也就是,如果是数字,或者布尔值都会转换为对应的字符串,所有如果希望输出一个数字字符串,可以 这样写“”+sum,空字符串告诉编译器变成字符串
  • 如果希望System.out.println()中的数字先运算再转换成数字,那么可以把他们括起来比如
1
2
3
int x=1,y=1;
System.out.println(x+y);//11
System.out.println((x+y));//2

2.别名现象

  • Java中除了基本类型,其他对象的名字,都是指引用,设 c,d分别是某个对象名,那么c=d是c和d都有了同一个内存的引用,而不是简单的赋值

3.一元减号

  • 一元减号能使数据正负改变,比如 b=-b;

4.关系运算符

  • Java中直接用对象名比较,是比较的对象的引用。要比较两个对象的内容是否相等,应该使用对象的equals()方法,如果是自己实现的类,要重写覆盖继承的equals()(父类默认比较引用)
  • Java中 && || ~都只能用于布尔值,不像c++可以用非布尔值(c++把非零转换为true,零转换为false,Java不支持这种转换,事实上Java不支持所有可能造成精度丢失的转换,都要求程序员明确的指出强制转换)

5.直接常量

  • 直接常量Java会根据其值给一个类型,但是有的时候,与我们希望赋予的那个变量类型冲突,需要我们指出确定的后缀,比如f,D等 实例 float f=1e-43(1e-43编译器当作double处理,赋值个float会精度丢失,报错) 所有应该改为float f=1e-43f
  • c++和Java都没有直接用常量表示二进制的方法,两者表示16和8进制的方式相同,但是Java Interger 和 long有toBinaryString()方法 实例 Interger.toBinaryString(8)

6.位运算

  • Java新增 >>>表示算术左移,即高位补零
  • char ,byte ,short移位时候会先转换位int,移位完成再截断赋值,有些时候会出错,比如-1,(移位后可能还是-1,扩展为-1,32位1,移动10位,截断赋值后,还是全是1)

7.Java中没有sizeof(和c++不同)