自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM

为什么需要JC 创建对象需要向内存申请空间 当对象没有被引用的时候 其他语言可以手动回收 java使用jvm自动回收 什么对象可以回收 1.引用标记法 2.可达性分析 怎样回收 1.标记清除发 2.标记复制发 3.标记压索发 ...

2021-04-19 22:09:12 41

原创 JMM

jit编译器优化 都是在多线程下 java - c -v 查看class文件指令 -xint 禁用编译器优化 1.永远的循环 可见性问题 编译器原因 2.加加减减 原子性问题 线程安全的问题 指令交错 轮流执行线程中的代码 使后期的结果覆盖了前期的结果 3.第四种可能 即使禁用编译器优化 也会出现问题 一个线程内指令顺序都修改 才可实现 几率很小 jcstress 压缩工具 actor注解 线程将会运行 编译器优化 流水线优化 同时执行多个指令 Cache优化 非流水线操作 - 流水线操作 增加寄存器

2021-04-19 17:30:05 48

原创 Spring

最初创建对象 需要new,service和serviceimpl耦合度高, 首先我们使用反射获取字节码文件 然后newInstance实例化对象,这样解耦。反射需要全限定类名,不能写死,此时引入bean配制。然后需要加载这个文件,解析获取bean,放到一个map中。这是针对一个对象,项目中有很多个对象,我们需要一个容器,将所有的对象都放在这个容器中。使用的时候从容器获取 项目启动 加载xml文件 解析bean 放到容器中 需要的时候去容器获取 ApplicationContext ac = new Clas

2021-04-16 22:42:44 48 1

原创 动态代理

JDK动态代理 定义接口 定义接口实现类 定义代理方法实现InvocationHandler接口 实现invoke方法 我们需要增强的东西就写在此方法内 1.可以修改args参数 对传入的参数修改 2.可以在method.invoke之前和之后实现自己定义的方法 测试类 接口 接口 = (接口)Proxy.newProxyInstance(接口.calss.getClassloader(),new Class[]{接口.class},代理方法) ...

2021-04-16 15:20:33 33

原创 数据结构集合数组

数组 会在内存中划分出一块连续的内存,然后当有数据进入的时候会将数据按顺序的存储在这块连续的内存中。当需要读取数组中的数据时,需要提供数组中的索引,然后数组根据索引将内存中的数据取出来,返回给读取程序。在Java中并不是所有的数据都能存储到数组中,只有相同类型的数据才可以一起存储到数组中。要插入和删除就需要变更整个数组中的数据的位置。 链表 ,链表在存储数据的内存中有两块区域,一块区域用来存储数据,一块区域用来记录下一个数据保存在哪里(指向下一个数据的指针)。当有数据进入链表时候,会根据指针找到下一个存

2021-04-16 11:02:55 69 1

原创 mysql优化2

存储引擎 针对表 不同表可以有不同的存储引擎 Innodb 1.支持事务 2.行级锁 3.支持外键 MyISAM 1.不支持事务 2.表级锁 3.不支持外键

2021-04-16 11:01:19 62

空空如也

空空如也

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

TA关注的人

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