
Java
文章平均质量分 85
风不贪
正在后端坑里摸爬滚打
展开
-
JDK8新特性
整个笔记参考视频:Java8新特性lambda&stream&optional实现原理(余胜军通俗易懂版本)评价:视频讲的还算清楚,但不够细致,把几个主要的新特性的用法浅浅讲了一下。对新特性,尤其是 类个人评价是写起来很酷,维护起来想哭。jdk8新特性新特性的特点在jdk1.8之前,interface中可以定义变量和方法,变量必须是, , ,方法必须是, ,这些修饰符都是默认的。接口定义的变量:, , ;接口定义的方法:, ,抽象方法,需要子类实现。从jdk1.8开始,支持, 修饰方法体,不需要写子类重写原创 2022-06-15 18:13:34 · 1098 阅读 · 1 评论 -
Java中的序列化及序列化ID
参考转载自:秒懂Java序列化与反序列化Java的序列化ID的作用1. 定义Java的序列化:是指把Java对象转换为字节序列的过程Java的反序列化:是指把字节序列恢复为Java对象的过程2. 为什么需要我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了。换句话说,一方面,.原创 2021-09-15 12:26:16 · 5690 阅读 · 0 评论 -
Java中四种引用类型
Java中有四种引用类型:强引用软引用虚引用弱引用在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。Java中,引用都被存储在了栈中,而实例对象几乎都被存在了Java堆中。引用可以单独存在而不指向任何对象:String str;Integer i;通过将一个引用指向一个对象后,就可以通过这个引用来操作对象了:str = new String("Hello");System.out.println(str);强引用Java中原创 2021-06-23 20:20:01 · 222 阅读 · 0 评论 -
创建线程的方式
创建线程的三种方式Java中主要有三种实现多线程的方式:继承Thread类实现Runnable接口实现Callable接口(可以获取线程执行后的返回值)第一种方式是创建了一个继承于Thread的多线程类,它本身就是一个线程;而后两种方式更准确的理解是创建了一个可执行的任务,要采用多线程的方式执行,即两种方式还是需要一个Thread类来启动。// 把一个实现Runnable接口的类放入Thread中,并启动该Thread线程new Thread(new Runnable(){}).start原创 2021-06-23 11:42:14 · 79 阅读 · 0 评论 -
HashMap原理及面试高频问题
关于HashMap一些面试高频问题:HashMap的底层数据结构?HashMap 的工作原理?HashMap中增删改查操作的底部实现原理是什么?为什么hashmap的在链表元素数量超过8时改为红黑树?a. 为什么在解决hash冲突的时候,不直接用红黑树?而选择先用链表,再转红黑树?b. 我不用红黑树,用二叉查找树可以么?c. 为什么使用红黑树而不使用AVL树d. 那为什么阀值是8呢?e. 当链表转为红黑树后,什么时候退化为链表?HashMap是如何实现扩容的?(什么时候扩容)Hash原创 2021-05-30 13:46:48 · 408 阅读 · 0 评论 -
重写hashcode和equals方法时需要注意什么?
参考:Java基础篇:什么是hashCode 以及 hashCode()与equals()的联系1. hashCode方法:Object类默认的hashCode方法计算出来的是对象的存储地址。使用哈希算法可以显著提升检索效率:正常情况下比较一个集合中是否存在某一个值或对象,采用的方法就是遍历集合,从集合中取出每一个元素并调用equals方法来确认是否相同。当集合大小非常大,该方法的效率其实是很低的。采用哈希算法则可以大大提升定位元素的效率,将数据按特定算法直接分配到不同区域上。将集合分成若干个存储区.原创 2021-04-01 14:49:10 · 1053 阅读 · 0 评论