1. 去掉了C/C++中的可以通过[]或者使用指针来访问元素的功能
2. 数组和对象相似,它们是都是使用new 关键字来创建的
3. 元素的类型在声明时被确定
4. 存储不同类型的数组元素可以使用collection 类
5. 数组的声明不需要分配任何存储空间,仅仅代表试图创建一个数组,这一点跟C/C++不同
6. 数组的长度可以使用 length属性,与C/C++中的getsize方法不同
7. Java 没有 类似VB中的redim preserve 可以改变数组大小的语句,可以建立一个同样大小的数组,并复制现有元素到里面
8. Java 形式上不支持多维数组,但支持数组的数组,即嵌套数组,与C/C++的区别在于Java 数组不需要有同样的长度
9. Java 数组的默认值 整型为0,布尔为false
10. 类级别的变量会有一个缺省值,但方法中的成员变量则不会
11. 关键词需要知道:public、final、static、abstract、native、transient、synchronized、volatile
12. Java 只允许单继承,但有一个被称作接口的特性
13. static不能访问一个非static的变量和方法
14. static方法重写不仅仅是方法的替代,还包括运行时决定的方法基于引用的类的类型的问题,也可以理解为static方法可以重写,但重写的静态方法不支持多态
15. abstract修饰的方法没有方法体,并且只能在子类执行时运行
16. 从abstract类继承而来的类需要实现基类的abstract方法,或者声明自身为abstract类
17. final类不能被继承,final类中的方法自动成为final方法
18. final修饰的方法不能被重写
19. 与类同名的除了构造函数还有可能是方法
20. 构造函数不能是:final、static、abstract、native、synchronized
21. Java 不能像C/C++使用非零表示true、零表示false,只能接受boolean类型的值
22. finally 子句并不是任何时候都会执行的,当执行finally 之前出现 System.exit(0); 就会退出
23. 可以使用 System.gc()来建议垃圾回收器收集垃圾,但是这并不能保证执行
24. 无法访问的对象可以被回收,即为null 或 指向这个对象的引用指向了其他的对象
29. 内部类、外部类、嵌套类及它们的访问区域
30. 具有小数部分的数据的缺省值是double而不是float,试图直接定义float i=1.0;是会报错的
31. equals 判断对象类型的返回值应用toString()方法,对于对象变量toString方法简单返回内存地址,所以和使用==操作的结果一样
32. 线程需要实现方法 run(),但并不是调用该方法来启动而是 start()
34. 线程阻塞的原因:
a. 线程已经被设置了一定长度的睡眠时间
b. 调用了suspend()方法,它将一直保持阻塞直到resume()方法被调用
c. 该线程因为调用了wait()方法被暂停了,当收到notify或者notifyAll消息的时候该线程会重新被激活。
35. yield()
36. 可以通过Thread包中的 Thread.setPriority来设置线程的优先级,可以通过getPriority来获得线程的优先级,默认的优先级是Thread.NORM_PRIORITY
37. synchronized 可以用来标记一段声明或者锁定一段代码,这里的锁是基于对象的而不是基于方法的
38. wait和 notify 应该放在 Synchronized 关键字标记的代码中以保证当前的代码在监视器的监控之中
39. Math类中的方法:abs、ceil、floor、max、min、random、round、sin、cos、tan、sqrt
40. hashCode方法的签名是: public int hashCode();