00-23种设计模式 参考资料:Java 设计模式 参考资料:Java 设计模式精讲 Debug 方式 + 内存分析 创建型1. 单例模式1.1 饿汉式单例饿汉式单例是最简单一种单例模式,它在类初始化时就完成相关单例对象的创建,可以通过静态代码块或静态内部类的方式来进行实现: 静态代码块方式: 12345678910111213141516public class HungrySingleton implements 2018-04-28 10_设计模式 #设计模式
02-工厂模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 开发中有一个非常重要的原则“开闭原则”,对拓展开放、对修改关闭; 工厂模式主要负责对象创建的问题; 可通过反射进行工厂模式的设计,完成动态的对象创建。 12345678910111213141 2018-04-28 10_设计模式 #设计模式
03-单例模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 01. 单例设计模式 作用 在java virtual machine(JVM)中只创建一个实例 分类 饿汉单例设计模式 懒汉单例设计模式 同步懒汉单例设计模式 双重锁校验单例设计模式 静态内 2018-04-28 10_设计模式 #设计模式
04-装饰者模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 现有 User 实体类: 1234567891011121314151617public class User { private int id; // 编号属性 id 2018-04-28 10_设计模式 #设计模式
06-动态代理模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 代理模式是Java常见的设计模式之一。代理模式是指不直接调用实际对象,而是通过调用代理,来间接的调用实际的对象。 为什么要采用这种间接的形式来调用对象呢?场景①:不想直接访问实际的对象;场景② 2018-04-28 10_设计模式 #设计模式
05-静态代理模式 参考资料1:http://c.biancheng.net/design_pattern/ 参考资料2:https://refactoringguru.cn/design-patterns/catalog 代理模式是Java常见的设计模式之一。代理模式是指不直接调用实际对象,而是通过调用代理,来间接的调用实际的对象。 为什么要采用这种间接的形式来调用对象呢?场景①:不想直接访问实际的对象;场景② 2018-04-28 10_设计模式 #设计模式
03-IDEA-Easy Code代码生成 Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。 1. 安装(EasyCode)我这里的话是已经装好了。 建议再安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toStrin 2018-04-22 00_先利其器 > 01_Intellij IDEA #IDEA #Easy Code #代码生成
01-GC垃圾回收器 Java 中有垃圾回收器回收无用对象占用的内存,这也真是Java可以屏蔽掉C语言中类似指针和内存分配malloc的两大头疼问题。作为语言榜首的Java自然有其垃圾回收的一套机制策略。 1. Java GC 垃圾回收器Java GC(Garbage Collection,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者一般不需要专门编写内存回收和垃圾清理代码,对内存 2018-03-28 07_虚拟机 #JVM #GC #垃圾回收
02-JVM线程和进程调度 0.一个单核CPU如何执行多线程?原理?(1)单核cpu同一时间,cpu只能处理1个线程,只有1个线程在执行; (2)多线程同时执行,是cpu快速的在多个线程之间的切换; (3)cpu调度线程的时间足够快,就造成了多线程的“同时”执行; (4)如果线程数非常多,cpu会在多个线程之间切换,也会消耗大量的cpu资源; (5)如果线程数非常多,每个线程被调度的次数会降低,线程的执行效率也会降低。 单 2018-03-28 07_虚拟机 #JVM
03-JVM内存管理 1. 物理内存与虚拟内存 物理内存,即RAM(随机存储器) 寄存器,用于存储计算机单元执行指令(如浮点、整数等运算) 地址总线,连接处理器和RAM 虚拟内存使用多个进程在同时运行时可以共享物理内存 2. 内核空间与用户空间 内核空间:操作系统运行时所使用的用于程序调度,虚拟内存的使用或连接硬件资源等的程序逻辑 用户空间:用户运行程序所占的内存空间 3. Java 内存组件 Java 堆用于存 2018-03-28 07_虚拟机 #JVM #内存模型