摘要: Java类型信息 RTTI 继承类相关 反射机制 Class类 getMethods、getFields、getDeclaredConstructors 利用class类创建实例 Class cls = Class.forName(‘类名’) cls.newInstance() 使用方法的例子 类加 阅读全文
posted @ 2020-08-16 23:35 Muusa 阅读(66) 评论(0) 推荐(0)
摘要: New关键字、反射创建对象的弊端:复制实例效率太低 首先添加Cloneable接口 重写clone方法,改返回类型,强制类型转换 p2 =p1.clone(); 但是如果类克隆过程中还有其他类 clone之后两个其他类的哈希值相同 说明内部新对象指向的地址相同 这就是浅表复制: 深层复制 克隆对象的 阅读全文
posted @ 2020-08-16 16:45 Muusa 阅读(83) 评论(0) 推荐(0)
摘要: 举个例子 线程A启动区查看initflag的值 线程B去修改它 显然B修改完成后A不可见 +Volatile可见性实现原理 汇编加lock前缀指令,通过锁定变量缓存行。 缓存一致性协议MESI M:已修改 E:独占 S:共享 I:已失效 线程A变量标记E 通过总线嗅探机制 A的E变成S B将变量标记 阅读全文
posted @ 2020-08-15 17:03 Muusa 阅读(71) 评论(0) 推荐(0)
摘要: 数据结构使用 Sting应用场景 单值缓存 SET key value GET key 对象缓存 1.SET user:1 value(json格式数据) 2.MSET user:1:name xxx MGET 适合局部化修改 分布式锁 Hash应用场景 电商购物车场景 同类数据整合、比String 阅读全文
posted @ 2020-08-15 14:17 Muusa 阅读(102) 评论(0) 推荐(0)
摘要: 如何建索引 首先是基本存储结构二叉树 但是可能出现极端情况 引入红黑树,即自平衡二叉树 但是不适合数据量大的时候,所以进行横向拓展 即引入B-Tree 每个索引下面存在data数据,但如果数据量较大,由于data的存在,层数依旧较多 所以引入B+树 此图中无data数据,所以两种树每个非叶子节点的存 阅读全文
posted @ 2020-08-15 12:55 Muusa 阅读(55) 评论(0) 推荐(0)
摘要: JDK体系结构 JDK = 灰蓝色java命令 + JRE核心类库(JVM) a.java通过javac命令变成a.class文件通过JVM跨平台运行 JVM虚拟机: class文件进入类装载子系统 >运行时数据区 >字节码执行引擎 堆和栈是所有线程共享 堆:new出来的对象放堆里面 喜闻乐见GC 阅读全文
posted @ 2020-08-14 22:21 Muusa 阅读(267) 评论(0) 推荐(0)