随笔分类 -  Java笔记

摘要:IO操作引起的内存可见性 问题 @Data public class ChangeThread implements Runnable { /** * volatile **/ boolean flag = false; @Override public void run() { try { Thr 阅读全文
posted @ 2024-07-23 23:35 shakerChann 阅读(6) 评论(0) 推荐(0) 编辑
摘要:事件发布 观察者模式;发布-订阅 事件及事件源:对应于观察者模式中的主题。事件源发生某事件是特定事件监听器被触发的原因。 事件发布器可以认为是事件监听的容器,对外提供发布事件和增删事件监听器的接口,维护事件和事件监听器之间的映射关系,并在事件发生时负责通知相关监听器。 事件监听器:对应于观察者模式中 阅读全文
posted @ 2020-08-31 23:55 shakerChann 阅读(566) 评论(0) 推荐(0) 编辑
摘要:Java 字符集 编码 Java默认的字符集是Unicode(占两个字节byte,一个字节=8比特位bit) 详解: 字符集 编码 Unicode 是「字符集」;UTF-8 是「编码规则」(是使用最广的一种 Unicode 的实现方式) 字符集:为每一个字符分配一个唯一的ID(码位) 编码规则:将码 阅读全文
posted @ 2020-03-17 09:47 shakerChann 阅读(1840) 评论(0) 推荐(0) 编辑
摘要:一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形 阅读全文
posted @ 2020-03-15 21:23 shakerChann 阅读(259) 评论(0) 推荐(0) 编辑
摘要:参考:https://juejin.im/post/5ca89afa5188257e1d4576ff jdk7由Segment数组结构和HashEntry数组结构组成。HashEntry则用于存储键值对数据,Segment是一种可重入锁ReentrantLock,Segment的结构和HashMap 阅读全文
posted @ 2020-03-14 12:10 shakerChann 阅读(217) 评论(0) 推荐(0) 编辑
摘要:Java中两个线程不可以同时访问同一个对象的两个不同的synchronized方法。 多个线程访问同一个类的synchronized方法时, 都是串行执行的 ! 就算有多个cpu也不例外 ! synchronized方法使用了类java的内置锁, 即锁住的是方法所属对象本身. 同一个锁某个时刻只能被 阅读全文
posted @ 2020-03-13 21:27 shakerChann 阅读(1799) 评论(0) 推荐(0) 编辑
摘要:Java String + 拼接字符串原理 首先来一道思考题: String str1 = "111111"; String str2 = "222222"; String str = str1 + str2; System.out.println(str); 很明确,上述代码输出的结果是:"111 阅读全文
posted @ 2020-03-11 09:34 shakerChann 阅读(4517) 评论(0) 推荐(2) 编辑
摘要:1、内存泄漏StackOverFlow : 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 如果线程请求的栈深度大于虚拟机所允许的最大深度,会抛出StackOverFlow内存溢出异常。 2、内存溢出 out of memory 阅读全文
posted @ 2020-01-04 16:21 shakerChann 阅读(279) 评论(0) 推荐(0) 编辑
摘要:异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简 阅读全文
posted @ 2019-05-06 11:41 shakerChann 阅读(216) 评论(0) 推荐(0) 编辑
摘要:通常GC采用有向图的方式记录和管理堆区中的所有对象 JVM将堆内存划分为 Eden、Survivor 和 Tenured/Old 空间。 1. 年轻代 所有新生成的对象首先都是放在Eden区。 年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象,对应的是Minor GC,每次 Minor GC 阅读全文
posted @ 2019-04-01 21:47 shakerChann 阅读(616) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示