代码改变世界

java基础 知识点

2017-04-05 17:46  如是我所闻  阅读(171)  评论(0编辑  收藏  举报

1、==与equals的区别
  ==比较时内存地址(存在栈中)
  equals()默认比较的时内存地址,如果一个类重写了equals()方法,则根据重写的规则进行排序。

2、HashSet的去重的机制
  首先通过hashCode()方法获取hash值进行比较,如果hash值一致,调用equals()进行比较,如果equals()返回的为true,则两个对象相同。(调用equals()之前,必须保障hash值一致)

4、单例(双重判断的实现)

public class SingletonDemo(){
//1、构造方法私有化
private SingletonDemo(){};
//2、提供一个私有的静态的本类对象
private SingletonDemo singletonDemo;
//3、提供一个公共的静态的返回值类型为本类类型的方法
private static SingletonDemo getInstance(){
if(singletonDemo==null){
//为保证锁的唯一性,这里使用本类的字节码对象锁,当然也可以使用常量
synchronized(SingletonDemo.class){
if(singletonDemo==null){
return singletonDemo=new SingletonDemo();
}
}
}
}
}

 

5、url中文编码

URLEncoder.encode(houseName, "UTF-8");

 

6、获取src/main/resources下的文件

 

InputStream is=this.getClass().getClassLoader().getResourceAsStream("test.jpg");

 

资源路径如下: