摘要: volatile 轻量级同步机制。 volatile保证了可见性,不保证原子性,保证了有序性(禁止指令重排)。 *可见性:java全局变量存在主内存,线程运行时把变量值拷贝到自己的工作内存在操作,操作完成在写回主内存。线程之间的工作内存互相是不可见的,volatile关键字修饰的变量,保证了可见性, 阅读全文
posted @ 2021-01-27 14:12 mxn0829 阅读(49) 评论(0) 推荐(0)
摘要: GC发生在内存的堆(heap)区域中; GC回收主要在两个区域:年轻代Yong区 MinorGC,频繁发生,老年带Old区 FullGc较少发生,永久代Perm基本不发生 GC回收算法:(1)引用计数法:判断对象直接引用的数量,引用少的删除,确定无法解决循环引用的问题,A引用B B引用A,现在已经淘 阅读全文
posted @ 2020-12-28 11:53 mxn0829 阅读(59) 评论(0) 推荐(0)
摘要: 索引,简单理解就是一种为了查询更快的数据结构 索引的优点:查询更快速 索引缺点:增删改,写的操作慢,占用空间 什么适合建索引:主键会自动建唯一索引,频繁用户查询的字段适合建索引,用于排序的也适合建索引,跟其他表关联的外键 什么不适合建索引:内容不用于查询的字段,数据少的,筛选信息不明确的的比如性别字 阅读全文
posted @ 2020-12-28 11:39 mxn0829 阅读(41) 评论(0) 推荐(0)
摘要: 知识点 *基本类型传递是值 *引用类型传递的是地址 *string类型,包装类型不可变,改变会产生新的内存地址 *方法在栈内运行,一个方法一个栈,运行完就销毁,方法内的局部变量也是存在栈中 *对象存在堆中,对象里的全局变量也在堆中 示例代码: 运行结果: i = 1 str = hello num 阅读全文
posted @ 2020-12-16 17:00 mxn0829 阅读(53) 评论(0) 推荐(0)
摘要: 类初始化: * 类会在以下情况初始化:创建实例、该类中main方法被加载。 * 类初始化会调用<clinit>方法,该方法首先加载静态变量和静态代码块,按顺序执行。 *类初始化的时候有父类会先初始化父类在初始化子类,有父亲才有儿子。 *<clinit>方法只执行一次。 实例初始化: *调用new方法 阅读全文
posted @ 2020-12-16 15:40 mxn0829 阅读(94) 评论(0) 推荐(0)