摘要: 作用 保证被 Volatile 关键字描述变量的操作具有可见性和有序性(禁止指令重排)。 注意 1、Volatile 只对基本类型 (byte、char、short、int、long、float、double、boolean) 的赋值操作和对象的引⽤赋值操作有效。2、对于 i++ 此类复合操作, V 阅读全文
posted @ 2019-10-30 15:33 CodeCorner 阅读(169) 评论(0) 推荐(0)
摘要: 1、 如果虚拟机栈不支持动态扩展,那么将会抛出StackOverFlow异常。如果支持动态扩展,那么这个栈会请求再扩展部分空间。当然内存不是无穷的,如果频繁的扩展内存,以至于无法再继续扩展了,这时候会抛出OutOfMemory异常。除此之外,堆得空间也是有限的。由于创建的对象都是要在堆中分配内存,那 阅读全文
posted @ 2019-10-24 23:39 CodeCorner 阅读(141) 评论(0) 推荐(0)
摘要: 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入 阅读全文
posted @ 2019-10-24 11:37 CodeCorner 阅读(150) 评论(0) 推荐(0)
摘要: /** * 终结方法守卫者: 如果子类实现者覆盖了超类的终结方法,但是忘了调用超类的终结方法,那么超类的终结方法永远不会调用。 为了防止此种情况出现,可以使用终结方法守卫者。即为每个被终结的对象创建一个附加的对象,该附加对象为一个匿名类, 将外围类的终结操作如释放资源放入该匿名类的终结方法中。同时, 阅读全文
posted @ 2019-10-24 10:55 CodeCorner 阅读(133) 评论(0) 推荐(0)
摘要: 单例模式在不考虑序列化的情况下,无论勤加载还是懒加载,均是安全的。但当单例执行了Serializiable接口以后,就不安全了。将单例序列化再反序列化,单例就多了一份copy,变了了2个单例。(通过反序列化得到的对象是不同的对象,而且得到的对象不是通过构造器得到的, 也就是说反序列化得到的对象不执行 阅读全文
posted @ 2019-10-21 21:18 CodeCorner 阅读(368) 评论(0) 推荐(0)
摘要: Java 8 系列之重新认识HashMap 阅读全文
posted @ 2019-10-12 15:37 CodeCorner 阅读(92) 评论(0) 推荐(0)
摘要: transient关键字详解 transient关键字解读笔记 阅读全文
posted @ 2019-10-12 15:07 CodeCorner 阅读(97) 评论(0) 推荐(0)
摘要: TCP/IP协议系统 3、子网划分和CIDR 子网 划分网络 为什么需要划分子网? 子网划分就是在网络 ID 之下提供了第 2 层逻辑组织。路由器能够把数据报发送给网络里的某个子网地址(一般对应于一个网段),而当数据报到达子网之后,就会被ARP解析为物理地址。那么子网地址从何而来呢,32位的IP地址 阅读全文
posted @ 2019-10-10 21:26 CodeCorner 阅读(123) 评论(0) 推荐(0)
摘要: TCP/IP协议系统 1、网络访问层 网卡(network adapter),即网络接口板,又称网络适配器或NIC (网络接口控制器),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,由处理器,存储器等部件组成。 网卡能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接 阅读全文
posted @ 2019-10-09 22:12 CodeCorner 阅读(134) 评论(0) 推荐(0)
摘要: TCP/IP基础知识 什么是TCP/IP Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TC 阅读全文
posted @ 2019-10-08 23:10 CodeCorner 阅读(164) 评论(0) 推荐(0)