自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 常用设计模式

1.七大设计原则 单一职责原则 对类来说,一个类应只负责一项原则 接口隔离原则 类之间的依赖关系应建立在最小接口上,必要时应对接口拆分,否则需要实现无需的方法,降低依赖,降低耦合。 依赖倒转原则 高层模块不应依赖底层模块,二者都应依赖其抽象,抽象不应依赖细节,细节应依赖抽象,中心思想是面向接口编程 里氏替换原则 尽量不重写父类方法,继承实际上让类之间耦合性增强了,可通过聚合,组合,依赖来解决问题 开闭原则 对扩展开放(对提供方而言),对修改关闭(对使用方而言)。在程序需要进行拓展的时候,不能去修改原有的代

2020-06-16 17:19:18 136

原创 MYSQL数据库高级

1. 数据库高级 本节忽略了mysql数据库基础内容,即数据库的增删改查等基本用法,着重展示数据库结构及查询优化等内容。 1.1 数据库结构 连接层—>服务层—>引擎层—>存储层 1.2 性能下降的原因 查询语句书写不合理(自己写的烂) 索引失效(单值索引,复合索引) 关联查询使用太多join(设计缺陷或不得已的需求) 服务器调优及各个参数设置(缓冲,线程数量等设置) 2. 调优辅助工具explain 通过在sql语句前面添加explain字段,可显示执行计划,用于辅助调优 i

2020-06-11 11:33:05 186

原创 深入理解Java虚拟机之Java内存模型与线程

为了解决计算机存储设备与处理器的运算速度差异而导致的服务性能的问题,通过加入高速缓存,以减少内存读写,提高运行效率。但这引入了一个新的问题:缓存一致性。也就是说,对于复制到缓存中的数据,可能在运算过程中发生改变,那同步到内存中,该以谁的缓存数据为准却不得而知。 1. Java内存模型 Java内存模型的主要目标是定义程序中变量的访问规则(这种规则协议保证了数据一致性)。即在虚拟机中将变量存储到主内...

2020-02-29 20:37:38 126

原创 深入理解Java虚拟机之程序编译与优化

1. 编译期优化 1.1 javac的编译过程: 整个过程总结起来就是对源码进行词法分析,语法分析,注解处理,语义分析,解语法糖生成字节码。以下是主体代码实现: 1.2 Java语法糖 语法糖指在计算机语言中添加的某种语法,这种语法对语言的功能无影响,但更方便使用,增加程序可读性,类似于一种 1.2.1 泛型与类型擦出 泛型的本质是参数化类型的应用,也就是说操作的数据类型被指定为一个参数。这种...

2020-02-28 21:05:40 193

原创 深入理解Java虚拟机之虚拟机字节码执行引擎之方法调用

1. 方法调用 方法调用的任务是确定要调用方法的版本,也就是明确要调用哪个方法。方法调用中的目标方法在Class文件里都是一个常量池中的符号引用。类加载的解析阶段会将一部分符号引用转化为直接引用。这类方法主要包括静态方法和私有方法,因为前者直接与类型关联,后者在外部不可被访问,符合“编译器可知,运行期不可变”的要求。他们都不可能通过继承或别的方式重写其他版本,因此适合类加载阶段解析。 大体上静态方...

2020-02-27 15:05:35 98

原创 深入理解Java虚拟机之虚拟机类加载机制

1. 类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个周期包括:加载、连接(验证、准备、解析)、初始化、使用、卸载。 值得注意的是为了支持Java的运行时绑定,解析阶段可以在初始化之后再开始。对于初始化阶段有且只有以下五种情况必须立即对类进行初始化: 遇到new、getstatic、putstatic或invokestatic指令时 对类进行反射调用时 初始化当前类但父类...

2020-02-26 12:44:35 133

原创 深入理解Java虚拟机之垃圾收集器与内存分配策略

1. 垃圾回收需要完成的三件事 哪些内存需要回收? 答:Java堆和方法区,因为程序计数器,虚拟机栈,本地方法栈都是线程私有,随线程而灭。栈中的栈帧随方法的进入退出而出栈入栈。而java堆和方法区只有程序处于运行期间才知道会创建哪些对象。 什么时候回收? 答:对象已死时回收,判死方式:引用计数算法,可达性分析算法。 如何回收? 答:垃圾回收算法,标记清除算法,复制算法,标记整理及分代收集算法。 ...

2020-02-24 16:56:38 72

原创 深入理解Java虚拟机之Java内存区域

运行时数据区域 1.程序计数器:线程私有内存,为字节码解释器指向一条需要执行的指令,是唯一一个没有规定任何OutOfMemoryError的区域。 2.Java虚拟机栈:线程私有内存,为java方法创建栈帧,栈帧用于存储局部变量表、动态链接、方法出口等信息。其中,除了long和double类型会占用两个slot外,其余数据类型均占用一个slot。 3.本地方法栈:线程私有内存,作用同Java虚拟...

2020-02-22 14:19:03 111

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除