JavaSE再学习笔记(3)
来源:互联网 发布:linux 修改 oracle sid 编辑:程序博客网 时间:2024/05/02 05:06
1.String s1 = "hello";
String s3 = "hello" ;
System.out.println(s1 == s3); //true 注意 s1,s3不是new出来的。
s1 = new String("hello");
s2 = new String("hello");
System.out.println(s1 == s2); //false,s1,s2是两个对象的引用。
System.out.println(s1.equals(s2)); //true String类重写了equals方法。
2.java.io.File类代表系统文件名(路径和文件名),并不是文件的内容。
new 一个File是内存中的一个File对象。
3. java.lang.Enum。java使用enum关键字。枚举类型,只能取特定值中的一个。
public enum MyColor = {red, green, blue}; 定义了一个枚举类型
MyColor m = MyColor.red;
4. 集合中存放的都是Object类型。
5. 容器类对象在调用remove,contains等方法时,需要比较对象是否相等这会涉及到对象类型的equals方法和hashCode方法。
对于自定义的类,需要重写equals和hashCode方法以实现自定义的对象相等的规则。
重写equals方法,也应该重写hashCode方法。 如果两个对象equals,也应该保证两个对象的hashCode一样。
一般hashCode方法用于,对象作为Map中的key的时候。这个时候用equals效率太低。
6. Iterator对象称 迭代器。
Iterator i = c.iterator();
while(i.hasNext())
{
Name name = (Name)i.next();
.....
}
JDK1.5的增强for循环。很简洁,有一定的缺陷。
数组的情况:
int[] arr = {1,2,3,4,5}
for(int i : arr)
{
....
}
不能方便的获取数组的下标,比如单独打印第三个,就还需要定义一个变量。
集合的情况:
与使用Iterator相比,不能方便的删除集合中的内容。
除了简单遍历并读取其中内容之外,并不是很建议使用这种增强的for循环。
7. 多态,其实简单的说就是 父类引用指向子类对象。
Set set = new HashSet(); //这就是一种体现
Animal dog = new Dog(); // 这个时候dog对象只能看到Animal中的相关的东西,并没有Dog新增的方法、变量
8. 所有可排序的类都实现了comparable接口。实现了comparable接口的类,通过实现compareTo方法从而确定该类的排序方式。
9. 泛型。 JDK1.4以前类型不明确:装入集合的类型都被当做Object对待,从而失去了自己的实际类型。从集合中取数据的时候,往往都需要强制类 型转换,效率低,容易产生错误。
Iterator<String> i = c.iterator() ,List<String>, . 使用集合的时候尽量试用泛型。
String s3 = "hello" ;
System.out.println(s1 == s3); //true 注意 s1,s3不是new出来的。
s1 = new String("hello");
s2 = new String("hello");
System.out.println(s1 == s2); //false,s1,s2是两个对象的引用。
System.out.println(s1.equals(s2)); //true String类重写了equals方法。
2.java.io.File类代表系统文件名(路径和文件名),并不是文件的内容。
new 一个File是内存中的一个File对象。
3. java.lang.Enum。java使用enum关键字。枚举类型,只能取特定值中的一个。
public enum MyColor = {red, green, blue}; 定义了一个枚举类型
MyColor m = MyColor.red;
4. 集合中存放的都是Object类型。
5. 容器类对象在调用remove,contains等方法时,需要比较对象是否相等这会涉及到对象类型的equals方法和hashCode方法。
对于自定义的类,需要重写equals和hashCode方法以实现自定义的对象相等的规则。
重写equals方法,也应该重写hashCode方法。 如果两个对象equals,也应该保证两个对象的hashCode一样。
一般hashCode方法用于,对象作为Map中的key的时候。这个时候用equals效率太低。
6. Iterator对象称 迭代器。
Iterator i = c.iterator();
while(i.hasNext())
{
Name name = (Name)i.next();
.....
}
JDK1.5的增强for循环。很简洁,有一定的缺陷。
数组的情况:
int[] arr = {1,2,3,4,5}
for(int i : arr)
{
....
}
不能方便的获取数组的下标,比如单独打印第三个,就还需要定义一个变量。
集合的情况:
与使用Iterator相比,不能方便的删除集合中的内容。
除了简单遍历并读取其中内容之外,并不是很建议使用这种增强的for循环。
7. 多态,其实简单的说就是 父类引用指向子类对象。
Set set = new HashSet(); //这就是一种体现
Animal dog = new Dog(); // 这个时候dog对象只能看到Animal中的相关的东西,并没有Dog新增的方法、变量
8. 所有可排序的类都实现了comparable接口。实现了comparable接口的类,通过实现compareTo方法从而确定该类的排序方式。
9. 泛型。 JDK1.4以前类型不明确:装入集合的类型都被当做Object对待,从而失去了自己的实际类型。从集合中取数据的时候,往往都需要强制类 型转换,效率低,容易产生错误。
Iterator<String> i = c.iterator() ,List<String>, . 使用集合的时候尽量试用泛型。
- JavaSE再学习笔记(3)
- javaSE学习笔记3
- JavaSE再学习笔记(1)
- JavaSE再学习笔记(2)
- JavaSE学习笔记(2016.4.3)
- Javase基础学习笔记之集合(3)
- 学习笔记之JavaSE(3)--Java基础语法2
- 学习笔记之JavaSE(4)--Java基础语法3
- 学习笔记之JavaSE(12)--面向对象编程3
- 学习笔记之JavaSE(23)--多线程3
- 学习笔记之JavaSE(41)--IO流3
- 学习笔记之JavaSE(51)--网络编程3
- JavaSE学习笔记(2016.3.30)
- JavaSE学习笔记(2016.3.31)
- JavaSE学习笔记(2016.4.1)
- JavaSE学习笔记(2016.4.6)
- JavaSE学习笔记(2016.4.12)
- JavaSE初步学习笔记(17天)
- JavaSE再学习笔记(1)
- 二年前我们走了一半,现在我走了另一半。
- 如何使类的成员函数作为回调函数
- JavaScript(07): 实例3---Google Eye
- JavaSE再学习笔记(2)
- JavaSE再学习笔记(3)
- Beej's Quick Guide to GDB
- 转:http状态码一览表
- 国美低至五折打造端午特惠
- boost filesystem v2 与 v3的区别
- 在android上面让TextView 过多的文字实现有滚动条
- Struts2的Preparable接口
- open调用流程
- NSOperationQueue 简化多线程开发