
重点模块
文章平均质量分 79
反射、动态代理、多线程、JUC、锁、JVM、设计模式,GC垃圾回收
@snow'
不积跬步无以致千里,花香蝶自来。
展开
-
性能优化的几个层面:SQL优化、JVM优化、线程池、缓存、中间件等
一、代码层面二、数据库层面三、JVM层面四、缓存层面五、实现异步开辟新线程整理自:常见性能优化策略的总结 - 知乎原创 2021-10-27 17:03:05 · 313 阅读 · 0 评论 -
JVM5--JVM性能优化、监控和调优
一、调优和监控概述1、调优目的(1)防止出现OOM(2)解决OOM(3)减少Full GC出现的频率2、监控(1)运行日志(2)异常堆栈(3)GC日志(4)线程快照(5)堆转储快照二、内存泄露--导致OOM三、性能监控四、性能调优待更......原创 2021-10-24 10:59:51 · 259 阅读 · 0 评论 -
JVM4--垃圾回收器
一、垃圾回收器概述(一)分类1、按线程数分--串行和并行2、按工作模式分---并发式和独占式3、按是否对空间碎片进行序列化整理---压缩式和非压缩式4、按工作的内存区间---年轻代和老年代(二)七种经典GC待更.......原创 2021-10-23 22:46:56 · 97 阅读 · 0 评论 -
JVM3--垃圾回收机制:垃圾回收概述、垃圾回收算法及分类
一、垃圾回收概述1、垃圾对象:运行程序中没有任何指针指向的对象2、垃圾回收区域:方法区+堆空间 频繁回收Young区 较少回收old区 基本不动Perm区(或元空间)3、垃圾回收的两个阶段 (1)标记阶段 引用计数算法 可达性分析算法(2)清除阶段 标记-清除算法 标记-复制算法 标记-压缩算法4、运行时数据区垃圾回收情况 (1)方法区-...原创 2021-10-22 22:26:18 · 611 阅读 · 0 评论 -
JVM2--JVM内存结构:类加载器、堆、栈、方法区等
一、概述1、知识层次 内存结构、垃圾回收、性能调优 2、内存结构图 上层:入口 class文件+类加载器 编译器javac将java文件编译成字节码class文件 中层:运行时数据区 堆、方法区----共享内存 栈:java栈(虚拟机栈)、本地方法栈----线程私有 程序计数器----线程私有 下层:执行引擎:解释器、编译器(编译后端)、垃圾回收器 二...原创 2021-10-22 22:13:58 · 243 阅读 · 0 评论 -
JVM1--Java虚拟机概述
一、概述1、JVM位置 运行于操作系统上类似于虚拟机软件。 JRE包含JVM2、JVM有两种运行模式:Server与Client (1)Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多 (2)Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化; Client模式启动的JVM采用的是轻量级的虚拟机二、JVM内存结构1、上层...原创 2021-10-22 15:30:03 · 190 阅读 · 0 评论 -
Java多线程5---线程优化:线程池、锁优化
一、线程池原创 2021-09-23 23:54:16 · 425 阅读 · 0 评论 -
Java多线程4--线程的同步机制:Lock和synchronized
一、Lock体系(一)可重入锁---ReetrantLock (二)读写锁---ReetrantRadWriteLock (三)同步队列 AQS---AbstractQueuedSynchronizer二、synchronized原创 2021-09-23 00:10:12 · 206 阅读 · 0 评论 -
java多线程3--线程的高并发
一、并发问题的产生和解决1、多线程的作用CPU、内存、I/O 设备的速度是有极大差异的, 为了合理利用 CPU 的高性能,平衡这三者的速度差异, 计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为:(1)CPU 增加了缓存,以均衡与内存的速度差异-------导致 可见性问题(2)操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异; ...原创 2021-09-21 00:03:20 · 237 阅读 · 0 评论 -
Java多线程2---线程同步和异步、线程安全、锁机制
一、线程同步和异步1、异步编程模型---侧重并发和吞吐量 两个线程t1,t2各自执行各自的,t1不管t2,t2不管t1,互不等待,多线程并发,效率较高2、同步编程模型---侧重安全 t1执行的时候,必须等t2执行结束,t2执行的时候,必须等t1执行结束,两个线程之间发生等待关系,线程串行排队执行 异步就是并发,同步就是排队。二、线程安全问题1、发生线程数据安全问题的条件:(1)线程并发(2)有共享数据(3)共享数据有修改行为...原创 2021-09-20 20:57:39 · 1152 阅读 · 0 评论 -
Java多线程1---线程基础:创建线程三种方式、线程常用方法、线程的生命周期、线程通信等
一、线程理论1、线程和进程(1)进程----一个应用程序(软件--QQ)----进程间内存不共享 线程----进程中的一个执行场景(和不同人聊天)----线程间栈内存和程序计数器不共享,堆内存和方法区共享(2) JVM是一个进程 方法区和堆内存共享-----一个方法区,一个堆 栈内存不共享,一个线程一个栈------多个栈2、单核多核cpu与线程并发之间关系 单核cpu--在一个时间点上实际上只能处理一件事 ...原创 2021-09-19 20:35:01 · 329 阅读 · 0 评论 -
详述 动态代理---JDK动态代理和cglib动态代理
一、动态代理的作用1、在不改变原来业务代码的基础上,额外增加业务功能 2、减少代码的重复 3、专注业务逻辑代码 4、解耦合,让业务功能和日志、事务等非业务功能分离二、实现方式和原理三、jdk动态代理...原创 2021-09-17 21:22:35 · 652 阅读 · 0 评论 -
详述 反射机制---创建对象、操作属性和方法
一、获取Class对象的三种方式二、通过Class对象获取类的信息三、运用反射机制原创 2021-09-17 20:32:00 · 429 阅读 · 0 评论 -
设计模式2:23种设计模式+详述单例模式
一、创建型模式创建对象的方式1、单例模式----private static new(1)饿汉模式【线程安全】 类加载时直接创建----直接return new的对象public class SingleTon{ private static SingleTon INSTANCE = new SingleTon(); private SingleTon(){}//直接返回public static SingleTon getInstance(){ retur...原创 2021-09-16 17:19:18 · 135 阅读 · 0 评论 -
设计模式1---OOP七大开发原则
一、开闭原则---接口 对扩展开放,对修改关闭 即通过增加功能的形式修改原来的功能,而不修改原有的代码:基于接口编程,基于切片编程都遵循的这个规则,二、依赖倒置原则---接口 面向接口编程,不要面向实现编程 降低程序的耦合度-----解耦合三、接口隔离原则---接口 为各个类建立他们的专用接口----提高内聚性,降低耦合度四、里氏替换原则---继承 继承必须确保父类所拥有的性质在子类中仍然成立 即子类可以扩展父...原创 2021-09-15 23:36:18 · 451 阅读 · 0 评论