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

浙公网安备 33010602011771号