跳至主要內容
第一章 Java 并发编程的基础

线程简介

什么是线程

现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个 Java 程序,操作系统就会创建一个 Java 进程。线程也叫轻量级进程(light Weight Process),是现代操作系统调度的最小单元。在一个进程里可以创建多个线程,处理器在这些线程上高速切换,让使用者感觉到这些线程是在同时执行。

为什么要使用多线程

  • 充分利用多核处理器和多个 CPU

使用多线程技术,将计算逻辑分配到多个处理器核心上,就会显著减少程序的处理时间,并且随着更多处理器核心的加入而变得更有效率。


cpgege原创大约 12 分钟笔记并发编程
第一章 简单工厂模式在实际项目中的使用

一、巴扎黑的日常

一天,巴扎黑从睡梦中惊醒
随手拿起边上的手机
。。。呀。。。都11点了。。。肚子好饿 +_+
巴扎黑来到楼下一家餐厅
服务员:您要来份什么?
巴扎黑:鱼丸粗面!
服务员:我们这儿不卖鱼丸粗面!
巴扎黑:。。。那来份新疆大盘鸡。
服务员:我们这儿做大盘鸡的师傅回家休息了。
巴扎黑:那给我来份红烧肉吧!
服务员:好嘞,你先坐会儿,我让师傅马上给你做。
巴扎黑找了个位置坐下,掏出手机,悠闲的刷起了微博。。。
服务员随即朝向后厨:“刘师傅,做一份你最拿手的红烧肉”。
刘师傅听到后立马准备食材,一会儿工夫,香喷喷的红烧肉就做好了
巴扎黑美滋滋的吃了起来,心想:“这是哪位师傅做的,这么好吃,是怎么做出来的呢。。。不管了,先吃吧。”


cpgege原创大约 9 分钟笔记设计模式简单工厂模式
第一章 Java内存区域与内存溢出异常

对于 C/C++ 程序来说,开发人员需要手动分配和释放内存,如果使用不当,很可能发生内存泄露问题。

得益于 Java 虚拟机自动内存管理机制,Java 程序员不再需要为每一个 new 操作去写配对的 delete/free 代码,不容易出现内存泄漏和内存溢出问题。也正因为 Java 程序员把控制内存的权力交给了 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误、修正问题将会变得非常困难。

JVM 内存区域

Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。


cpgege原创大约 14 分钟笔记JVM
第二章 垃圾收集器与内存分配策略

判断对象是否存活

可达性分析算法

Java 是通过可达性分析算法来判定对象是否存活的。通过一系列称为 GC Roots根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为“引用链”(Reference Chain),如果某个对象到 GC Roots 间没有任何引用链相连,则证明此对象是不可能再被使用的

利用可达性分析算法判定对象是否可回收

cpgege原创大约 16 分钟笔记JVM