java
CAir2
这个作者很懒,什么都没留下…
展开
-
getPath(),getAbsolutePath(),getCanonicalPath() 区别
getPath:返回我们构造File的时候填充的路径参数:eg:..\test.txtpublic String getPath() {return path;}getAbsolutePath:返回绝对路径,路径中如果包含.或者..不会进行路径转换,eg:G:\qsbk\..\test.txtpublic String getAbsolutePath() {return fs.resolve(this);}getCanonicalPath:返回规范化路径名的绝对路径,即:会将路径中的.或者..进原创 2020-06-16 11:07:14 · 754 阅读 · 0 评论 -
Java中equals和==的区别
首先需要了解一下默认的equalspublic boolean equals(Object obj) { return (this == obj);}如果在没有修改equals的情况下,equals和==是等价的。1. ==对于基本类型数据变量,“==”的作用是判断左右两边的值是否相等(String除外)对于引用类型数据变量,"=="的作用是判断左右两边所指向的地址是否一样1. equals根据equals()的实现代码可知equals()不适用于基本数据类型之间,对于引用类原创 2020-06-03 11:21:28 · 280 阅读 · 0 评论 -
identityHashCode 与 hashcode 的区别
System.identityHashCode:返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。null引用的哈希码为 0。obj.hashcode:hashCode()方法是顶级类Object类的提供的一个方法,所有的类都可以进行对hashCode方法重写。这时hash值计算根据重写后的hashCode方法计算如果在没有重写hashcode的前提下,hashcode的返回值等于identityHashCode的原创 2020-06-03 10:41:48 · 487 阅读 · 0 评论 -
synchronized Interger失败
原因:Synchronized锁的是对象,也就是identityHashCode所指向的内存地址中的对象实例(根据对象内存地址生成散列值)下面先看一个demostatic public class MyRunable implements Runnable{ private Integer ncount = 0; public void run() { Integer temp = 0; //System.out.print原创 2020-06-02 19:35:36 · 279 阅读 · 0 评论 -
java 克隆
学习克隆之前,你必须具备java的值传递和引用传递的基础。如果你学习过C++,你一定知道C++的深拷贝和浅拷贝的概念。如果你学习过C++,你一定知道C++的复制构造函数,可以直接使用Object A = B。但是java中不能直接这样使用(值传递和引用传递),要想赋值对象需要使用Object.clone(),下面将实现C++类似的深浅拷贝功能。实现基本的Clone功能static public class Addrs{ public String phoneNumber;原创 2020-06-02 15:40:05 · 161 阅读 · 0 评论 -
java学习资料
java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一原创 2020-06-01 17:47:33 · 113 阅读 · 0 评论