随笔分类 -  java 深入了解

Java多线程基础知识
摘要://启动类BootStrap,负责JAVA_HOME/lib下面的核心类库或-Xbootclasspath System.getProperty("sun.boot.class.path"); //扩展类 ExtClassLoader,负责JAVA_HOME/lib/ext System.getPr 阅读全文
posted @ 2021-10-15 17:19 lfcom 阅读(39) 评论(0) 推荐(0)
摘要:算术问题,方法的解: 枚举法:暴力枚举,一个一个例子尝试 贪婪算法:找到最优子问题的解 分治法:对于拥有公共子问题的分治,要分3种情况,左子问题,右子问题,公共子问题。 动态规划:要用到状态转移方程,将现在的状态转换成过去的状态 回溯法:必须要用到递归,同时在递归之后清理标志量,可以得出全部的解决, 阅读全文
posted @ 2020-10-22 15:31 lfcom 阅读(189) 评论(0) 推荐(0)
摘要:同步 异步 并行 并发 阻塞 非阻塞 死锁Deadlock 饥饿Starvation 活锁Livelock 饥饿:一个线程拿着关键资源不释放,其他线程需要这个资源而无法运行,但是在未来的一段时间内,资源会被释放。 活锁:秉着“谦让”原则,线程主动释放资源给对方,那么资源就会在两个线程之间跳动,而没有 阅读全文
posted @ 2020-10-01 21:38 lfcom 阅读(101) 评论(0) 推荐(0)
摘要:NIO non-blocking ,Sun官方标榜的特征是:为原始的数据类型提供缓存服务 Channel 一个新的原始IO抽象 缓存区Buffer 一个存储原始数据类型的容器,它的底层就是一个数组,它用4个核心属性对数组进行了封装限制。 缓冲区的4个核心技术 capacity limit posit 阅读全文
posted @ 2020-09-29 20:28 lfcom 阅读(170) 评论(0) 推荐(0)
摘要:线程安全的并发集合 java.util.concurrent包 ConcurrentHashMap ConcurrentLinkedDeque CopyOnWriteArrayList 读取不会加锁,写入操作也不会阻塞读取,只是写入之间要实现同步,它的原理是当执行写入操作时,进行一次自我复制,把修改 阅读全文
posted @ 2020-09-22 19:42 lfcom 阅读(491) 评论(0) 推荐(0)
摘要:进程和线程 Java的多线模型JMM问题可以总结为 2 个核心,3个要点 2个核心:主内存,工作内存缓冲区 重点 主内存和 工作内存缓冲区的数据不一致问题,原因是工作内存缓冲区是线程私有的,数据更新后,同步到主内存有时间差,而另外一个原因重排序,编译器会对指令进行优化重拍。 3个要点:原子性,可见性 阅读全文
posted @ 2020-09-21 21:40 lfcom 阅读(176) 评论(0) 推荐(0)