Java9-Java14新特性

待完善…

Java

数组和链表的区别

数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。

Java

序列化与反序列化

转载于美团技术团队序列化与反序列化

Java

Java序列化与反序列化

一些问题Java序列化,反序列化序列化指将Java对象转换为字节序列的过程。 反序列化指将字节序列转换为目标对象的过程; 为什么要序列化?其实序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。 因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回来...
Java

OOM有哪些情况,SOF有哪些情况

OOM(OutOfMemory)1、全称为OutOfMemoryError异常,如果虚拟机在扩展栈时无法申请足够的内存空间,抛出它; 2、Java heap异常:java.lang.OutOfMemoryError:Java heap Space; 3、虚拟机栈和本地方法溢出; 4、运行时常量池溢出异常信息:java.lang.OutOfMemoryError:PermGen Space...
Java

如何在List种移除元素

Itr对象源码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667private class Itr implements Iterator<E> { int c...
Java

Java 中 a = a+b和a += b 的区别

区别 a += b执行实际过程实际是 是先计算出a的值,然后用一个temp对象存储,之后和b进行相加,然后将值赋值给a引用。 a = a+b 的执行过程则是先计算 a + b,然后再赋值给a引用,给a引用的时候如果 引用a 有计算过程,则会再次计算。 +=如果两边的操作数的精度不一样时会自动向低转化,而a = a+b则不会自动转化,需要手动进行强制类型转化。
Java

Java对象创建的4种方式

1、使用 new 关键字创建对象这是常用的创建对象的方法,语法格式如下:类名 对象名=new 类名(); 2、调用 java.lang.Class 或者 java.lang.reflect.Constuctor 类的 newlnstance() 实例方法在 Java 中,可以使用 java.lang.Class 或者 java.lang.reflect.Constuctor 类的 ne...
Java

hashCode()与 equals()相关问题

hashCode()介绍hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个 int 整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode()定义在 JDK 的 Object 类中,这就意味着 Java 中的任何类都包含有 hashCode() 函数。另外需要注意的是: Object 的 hashcode 方法是本地方法,也就是用 c 语言或 c...
Java

Java AIO - 异步IO详解

异步IO上面两篇文章中,我们分别讲解了阻塞式同步IO、非阻塞式同步IO、多路复用IO 这三种IO模型,以及JAVA对于这三种IO模型的支持。重点说明了IO模型是由操作系统提供支持,且这三种IO模型都是同步IO,都是采用的“应用程序不询问我,我绝不会主动通知”的方式。 异步IO则是采用“订阅-通知”模式: 即应用程序向操作系统注册IO监听,然后继续做自己的事情。当操作系统发生IO事件,并且...
Java