09 2020 档案
摘要:一. 对象创建过程 前置知识 在 Java 程序中,我们拥有多种新建对象的方式。最常见的就是通过 new 语句,除此之外还有反射、系列化、深浅拷贝、通过Unsafe等直接操作内存。 其中深浅拷贝和反序列化通过直接复制已有的数据,Unsafe等操作内存的方法也没有初始化实例字段,而 new 语句和反射
阅读全文
摘要:一. 基本类型 在Java中类型可分为两大类:基本类型和引用类型,我们先来看看基本类型。 Java中提供了八种预先定义好的基本类型,来支持数值计算:byte short int long char boolean float double 使用基本类型主要是基于工程上的考虑,可以在执行效率和内存使用
阅读全文
摘要:内存是冯诺依曼体系中重要的一环,负责存储计算的数据和计算函数本身,是cpu唯一可以直接读取的硬件。对于c、c++开发人员来说,他们需要手动的申请和释放计算机内存,什么都靠自己,权力越大也就越累。对于Java程序员,在虚拟机的自动内存管理机制的帮助下,不需要再去手动操作内存(当然Java也提供了函数允
阅读全文
摘要:一. 直接内存(堆外内存) 1. Java的Unsafe类 内地内存的操作 2. Netty#ByteBuffer,底层操作系统malloc函数 3. JNI或JNA 为什么要使用之直接内存 1. 减少垃圾回收工作,减少STW:直接内存不受JVM控制,需要手动回收 2. 加快复制的速度:例如网络IO
阅读全文
摘要:一. 压测工具AB 安装 yum -y install httpd-tools 测试 web 项目,接口 http get 模拟10个并发(100个总请求) ab -c 10 -n 100 url 测试 web 项目,接口 http post ab -c 10 -n 100 -p 'post.txt
阅读全文
摘要:jps 虚拟机进程状况工具 示例: 1. jps 打印进程号和进程名 2. jps -q1 打印进程号 3. jps -m 打印进程号、进程名和启动参数 4. jps -l 打印进程号和main程序路径名 5. jps -v 打印虚拟机及其参数 jstat 虚拟机统计信息监视工具 示例: 1. js
阅读全文
摘要:从内存模型角度来说,每执行一个方法都会生成一个栈帧。栈帧通过操作数栈和局部变量表来完成计算。这部分的内容不是今天的重点。 一. JVM如何识别目标方法? 首先确定一下需求,识别目标方法。目前方法就是JVM内存模型中的一个内存地址,它是一个函数。识别就是我们的字节码定位到这个地址的过程。 怎么识别呢?
阅读全文
摘要:反射是框架设计的重要手段之一,如Spring的Ioc就是通过反射创建bean实例对象的。虽然反射很常见,但是它的性能损耗也是很昂贵的,甚至是甲骨文关于反射的教学网页,也强调了反射性能开销大的缺点。 一. 反射方法的调用 首先我们来看看反射方法的调用,也就是Method.invoke()。 publi
阅读全文
摘要:一. 异常简介 异常是开发工作中必不可少的,它实现了程序控制流的非正常转移。异常的处理很能体现出一个程序员的编码水平,不过这一篇文章并不讲解如何在业务流中应用异常,而是介绍一下异常在JVM中的底层实现,以便你更好的认识和使用它。 异常可分为抛出异常和捕获异常两个主要步骤。 抛出异常可分为显示抛出和隐
阅读全文
摘要:一. Java类加载 Java 的类加载需要完成三件事情: 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2)将这个二进制字节流转换为方法区的运行时数据结构。 3)在堆中创建一个java.lang.Class对象的实例。 总结成一句话就是,读取符合字节码(.class文件)格式的二进制字节
阅读全文
摘要:kafka是很流行的一款消息队列和流处理组件,其生态非常丰富,今天只简单介绍一下它的安装。 一. Zookeeper安装 kafka高度依赖于Zookeeper做集群协调和分布式存储,当然kafka社区正在逐渐去掉对Zookeeper的依赖,不过至今你还是需要Zookeeper。 下载清华镜像:ht
阅读全文
摘要:fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 git wiki url 一. Maven依赖 <dependency> <groupId>com.alibaba</g
阅读全文
摘要:eventbus是Google Guava的事件订阅-发布组件。其特点是简单易用,需要编写的代码量很小,也不需要继承。 Pom依赖 <dependencies> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</a
阅读全文

浙公网安备 33010602011771号