Java和C++的不同点:
java的main函数只能返回void类型;
java的public class名和所在文件名必须一致,类名首字母要大写;
Java中小数点默认是double,小数赋值给float时,必须加F结尾:float a=5.0F或者float a=(float)5.0;
break关键字可以break某个块,C++里没见过这么写的:
1 task:{2 if(a<0)3 break task; 4 }
Java一个包只能有一个public类。为什么?
关键字final
final 的值不能被改变;final的方法不能被重写; final的类不能被继承。
final的含义是为了防止本身被修改或改写。对于final变量,那就是不能被修改。对于方法就是不能被重写。对于final类,如果被继承,则子类可能重写他的某些方法,所以final class不能被继承。如Math,只管用,不能继承。
接口
接口本质上是一个抽象类。一个类可以继承多个接口。接口和抽象类的区别。
数组
java的数组是引用,分配在堆上,C/C++在栈上。Java数组不能指定大小int a[5]是错误的!只能用int[] a= new int[5];
String类
String类不可变,StringBuffer类可变,他俩的内存模型和内部实现需要理解。String、StringBuffer和StringBuilder的区别。
容器set
java的set是无序的,类似hash table;C++ set内部是rb tree,是有序的。
int和Interger对象的区别?
BufferedReader和BufferedWriter可以按行读写,而避免了按字符读写。
多态性
java的多态怎么实现的?和C++一样吗?C++有编译时的多态和运行时的多态。
流的概念
输入流、输出流;字符流、字节流;节点流、处理流
Sychronized关键字