首页 > 代码库 > JAVA豆知识
JAVA豆知识
--java知识点---
2017/04/12
浅析Java中的final关键字 http://www.cnblogs.com/dolphin0520/p/3736238.html
Java内部类详解 http://www.cnblogs.com/dolphin0520/p/3736238.html
----------------------------------------------------------------------------------
1. Set Map HashMap Tree ArrayList LinkedList List collection
2. iterator
Collection(I) Map(I)
| |
---------------------------- ---------
| | | | |
List(I) Queue(I) Set(I) HashMap SortedMap
| | | | |
-------------- | -------------- HashTable TreeMap
| | | | |
ArrayList LinkedList HashSet SortedSet
0.尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程。
1. 对象只有一种创建方式
String s = new String();
2. 所有数值类型都有正负号,没有无符号类型
3. 对象数组:String s[] 每个引用为null
基本类型数组: int a[] 每个0
4. 永远不要释放对象
5. 每个类都必须存放在包中
com.mycompany.xxx
6. 不要引用对引用赋值(除了参数传递),修改一个影响另一个
7. clone() 定义在Object中的protected方法,其它类要使用它,要重写Clone()并且定义为public. 返回值是Object类型,所以要强制转换下
编写可克隆类:(1)implements Cloneable (2)重写clone,调用super.clone() (3)clone声明为public (4)捕获CloneNotSupportedException异常
8. ArrayList的clone只能做到外面拷贝,内部对象还是同一个的对象
9. Random rand = new Random()
rand.newInt(100); //生产0 - 99的随机数
10. 对象的== 比较的是引用
对象的equal() 比较的是实际内容相同
自定义类equal() 比较的是对象的引用,所以要重载
11. 不能把非布尔值当成布尔值使用(与CC++不同)
12. >>>移位运算符,高位填0
13. 字符串与非字符串使用+连接,则必须以字符串开始
14. 0x 0
15. char byte short 做算术运算,会转成ini
16. this(...) 调用构造器, 构造器中只能使用一个,并且放在第一句
17. finalize()并不一定被调用,可用来检测错误,所以只能手动代替析构函数
18. ini[] a = new int[10] 尽量使用这种方式, 数组间可以赋值,是复制引用
a.length()
19. 在子类中重新方法不会屏蔽基类的同名方法(C++会屏蔽)
20. 只有非private方法才能被重写
21.
css篇
1. 选择器 p 代表 段落标签 #p 代表 id="p" 的标签 .p 代表 class="p" 的标签 三者可以嵌套 #nav .li {...}
JAVA豆知识