
Java基础
雷小农
舒服是留给死人的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap 和 currentHashMap JDK8总结
一、什么是哈希表在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能数组采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找,斐波那契查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及...原创 2020-01-11 15:11:08 · 2500 阅读 · 0 评论 -
为什么要重写 hashcode 和 equals 方法?
面试: 你有没有重写过hashcode方法?可能会有不少人会说没有,或许真的没写过,于是就再通过一个问题确认:你在用HashMap的时候,键(Key)部分,有没有放过自定义对象?而这个时候,候选人说放过,于是两个问题的回答就自相矛盾了。最近问下来,这个问题普遍回答不大好,于是在本文里,就干脆从hash表讲起,讲述HashMap的存数据规则,由此大家就自然清楚上述问题的答案了。1,通过H...原创 2020-01-11 14:25:04 · 190 阅读 · 0 评论 -
Hash Map和Hash table的6个区别
1、线程安全Hashtable 是线程安全的,HashMap 不是线程安全的。为什么说 HashTable 是线程安全的?来看下 Hashtable 的源码,Hashtable 所有的元素操作都是 synchronized 修饰的,而 HashMap 并没有。public synchronized V put(K key, V value);public synchronized V g...原创 2019-12-08 14:50:24 · 1454 阅读 · 0 评论 -
Java实例化的几种方式
## 什么是实例化?:创建对象的过程就叫实例化。## 实例化的几种方式:1、用new语句创建对象,这是最常见的创建对象的方法。2、通过工厂方法返回对象,如:String str = String.valueOf(23);3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。如:Object...原创 2019-11-08 15:01:23 · 435 阅读 · 0 评论 -
Java序列化:你所不了解的序列化
一个负责管理应用程序所有用户设置的开发人员,决定将用户设置存储在一个 Hashtable中,然后将这个 Hashtable 序列化到磁盘,以便持久化。当用户更改设置时,便重新将 Hashtable 写到磁盘。这是一个优雅的、开放式的设置系统,但是,当团队决定从 Hashtable 迁移到 Java Collections 库中的HashMap 时,这个系统便面临崩溃。Hashtable 和 H...原创 2019-11-07 17:23:22 · 138 阅读 · 0 评论 -
java 序列化
什么是序列化我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者传输网络,磁盘或者网络接收者可以在对象的属类的模板上来反序列化类的对象,达到对象持久化的目的。怎么序列化一个对象?要序列化一个对象,这个对象所在类就必须实现Java序列化的接口:j...原创 2019-11-07 17:11:39 · 831 阅读 · 0 评论 -
Java 中经常遇到的前 10 个异常
Java 中经常遇到的前 10 个异常,排名不分先后。1、NullPointerException空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看这篇文章:避免空指针异常的5中情况2、OutOfMemoryError内存异常异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的堆内存,需要调整堆内存大小(-Xmx)以及优化程序。3、IOException...原创 2019-11-07 17:04:42 · 165 阅读 · 0 评论 -
避免空指针异常的5中情况
什么是空指针?当一个变量的值为 null 时,在 Java 里面表示一个不存在的空对象,没有实际内容,没有给它分配内存,null 也是对象成员变量的默认值。所以,一个对象如果没有进行初始化操作,这时候,如果你调用这个对象的方法或者变量,就会出现空指针异常。如下面示例会发生空指针异常:Object object = null;String string = object.toString(...原创 2019-11-07 16:27:33 · 944 阅读 · 0 评论 -
equals和==的区别
equals和==的区别:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,例如:int a=10 与 long ...原创 2019-10-21 09:14:48 · 500 阅读 · 0 评论