摘要: 修订历史 2018-06-19 20:22 创建 2020-01-08 改 最近在看java字节码技术 重新复习一下 并重新整理 ClassLoader作用 负责将 Class 加载到 JVM 中 审查每个类由谁加载(父优先的等级加载机制) 将 Class 字节码重新解析成 JVM 统一要求的对象格 阅读全文
posted @ 2018-06-19 20:22 意犹未尽 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 笔记来自极客时间<java调优实战> 内存模型 堆 堆是jvm最大的一块儿内存空间,该内存被所有线程共享。几乎所有的对象数组都分配在堆空间中 堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,最后 Survivor 由 From Survivor 和 To Sur 阅读全文
posted @ 2018-06-19 19:47 意犹未尽 阅读(574) 评论(0) 推荐(0) 编辑
摘要: 内存监控 -XX:+PrintGC 跟-verbose:gc效果一样 但是不是稳定版后续可能会删除 -verbose:gc 每次GC(yonggc,fullgc) 打印简单的内存情况 测试代码 public static void main(String[] args){ List<Classes> 阅读全文
posted @ 2018-06-18 12:54 意犹未尽 阅读(1233) 评论(0) 推荐(0) 编辑
摘要: 心跳是为了保证客户端和服务端的通信可用。因为各种原因客户端和服务端不能及时响应和接收信息。比如网络断开,停电 或者是客户端/服务端 高负载。 所以每隔一段时间 客户端发送心跳包到客户端 服务端做出心跳的响应; 1.如果客户端在指定时间没有向服务端发送心跳包。则表示客户端的通信出现了问题。 2.如果客 阅读全文
posted @ 2018-06-10 15:41 意犹未尽 阅读(917) 评论(0) 推荐(1) 编辑
摘要: 开发应用程序与应用程序之间的通信,程序之前通信 需要定义协议,比如http协议。 首先我们定义一个协议类 Head类 自定义的编码器 按照message注释的协议顺序 写入。token和token生成时间定长50 不足空补 解码器 解码器 在解码的同时需要做拆包和粘包处理 1.循环读到包分割符起始位 阅读全文
posted @ 2018-06-09 13:05 意犹未尽 阅读(10480) 评论(0) 推荐(5) 编辑
摘要: 在tcp编程底层都有拆包和粘包的机制 拆包 当发送数据量过大时数据量会分多次发送 以前面helloWord代码为例 打印 可以发现这里拆分成了2次发送 粘包 当发送数据量过小时会组合成一次发送 可以发现有时多条发送的数据会组合成一条发送 解决方案 netty提供了解码器来解决拆包和粘包的问题 Lin 阅读全文
posted @ 2018-06-06 22:30 意犹未尽 阅读(483) 评论(0) 推荐(0) 编辑
摘要: netty重新定义了byteBuf 而没使用jdk byteBuffer netty byteBuf与jdk byteBuffer的区别 (1)jdk buffer长度固定 byteBuf超过最大索引 将会扩容。(最大值默认值是Integer.MAXVALUE) (4)读取和写入的索引分开了(rea 阅读全文
posted @ 2018-06-06 21:52 意犹未尽 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 什么是nettty netty是基于javaNio模型的网络编程框架。很多框架底层也是用netty实现的 比如dubbo 与NIO的区别 1.简化了API的使用。基于事件驱动。只需要在对应的事件写相应的业务就行了。 2.上层封装多种协议的实现 webSoket,http。同时修复了NIO的bug(内 阅读全文
posted @ 2018-06-05 19:51 意犹未尽 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 运行这段代码会抛出 的异常, 查看Arrays.as源码 new ArrayList是创建的内部的ArrayList 而不是java.util.Arrays包下的ArrayList 查找发现 内部的ArrayList并没有add方法 点击父类查看 父类实现的 add remove等修改集合元素的方法 阅读全文
posted @ 2018-05-28 19:29 意犹未尽 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 项目中突然报空指针异常 排查发现三元运算符空指针异常,表面上看不出来有什么问题,编译器编译的时候会保证:2边数据类型一致如: 会编译不通过。因为String 和int不是一个类型 这一切的原因都是编译器自动拆箱造成的。如下情况 价格是否为null判断就好了 阅读全文
posted @ 2018-05-25 20:55 意犹未尽 阅读(305) 评论(0) 推荐(0) 编辑