
Java
文章平均质量分 53
中世纪冻干芝士
Ahahaha
展开
-
【初级04】JVM线程模型
1. JVM线程模型JVM内部线程主要分为以下几种:VM线程:单例的VMThread对象,负责执行VM操作 定时任务线程:单例的WatcherThread对象,模拟在VM中执行定时操作的计时器中断 GC线程:垃圾收集器中,用于支持并行和并发垃圾回收的线程 编译器线程:将字节码编译为本地机器代码 信号分发线程: 等待进程指示的信号,并将其分配给Java级别的信号处理方法安全点(safe point)方法代码中被植入的安全点检测入口 线程处于安全点状态:线程暂停执行,这时候线程栈原创 2022-01-10 10:01:02 · 334 阅读 · 0 评论 -
【初级05】
服务器通信原理1.写一个简单的http服务器分别使用单线程处理(socket,串行处理)、多线程处理(并行处理)、使用大小的线程池处理(比如使用40个线程)。2.五种IO模型(1)阻塞式IO(2)非阻塞式IO(3)IO复用(4)信号驱动IO(用的比较少,但事件驱动的模式用的比较多)(线程池->EDA事件驱动的架构->SEDA分阶段的事件驱动架构)多线程方式及其性能曲线...原创 2022-01-10 10:00:07 · 175 阅读 · 0 评论 -
【初级03】java JVM核心技术(3): jvm调优
本文使用的JDK版本:$ java -versionjava version "1.8.0_261"Java(TM) SE Runtime Environment (build 1.8.0_261-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)1.代码文件 GCLogAnalysis.javaimport java.util.Random;import java.util.concurr原创 2021-12-24 09:23:56 · 395 阅读 · 1 评论 -
【初级02】java JVM核心技术(2)开发工具和GC策略
1.JVM命令行工具1.1命令使用1.1.1jps -lmv查看详细信息1.1.2jinfo [PID]1.1.3 jstat -gc pid 1000 10001.1.4 jstat -gcutil pid 1000 1000有时可以捕捉到GC时eden区被情况的情况1.1.5 jmap命令-heap 打印堆内存(或内存池)的配置和使用信息-histo 看哪些类占用的空间最多,以直方图展示-dum...原创 2021-12-22 14:15:31 · 7335 阅读 · 0 评论 -
【初级01】java JVM核心技术(1):字节码、类加载器、GC机制
1.编程语言概述编程语言有不同的分类方法:面向过程、面向对象、面向函数 静态类型、动态类型 编译执行、解释执行 有虚拟机、无虚拟机 有GC、无GCJava语言是一种面向对象、静态类型、编译执行,有虚拟机、有垃圾回收器和运行时的跨平台高级语言。2.编程语言的跨平台性C++要想跨平台,只能是在源代码级别的,编写跨平台的代码,然后再到不同的平台上编译编译后运行;Java则能达到字节码级别的跨平台,java代码编译后,生成class文件,在不同的平台均可运行。我的另一篇Java..原创 2021-12-10 17:32:31 · 872 阅读 · 0 评论 -
【中级05】Java泛型、反射
java泛型简介Java泛型(Generic)是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。参考资料:Generics#TODO 未完...原创 2021-12-10 10:18:51 · 349 阅读 · 0 评论 -
【中级04】Java 虚拟机 Runtime Data Areas以及垃圾回收
运行时数据区存放的东西:程序计数器:线程私有的,记录的是当前线程字节码的行号java代码,执行jvm字节码指令的地址stack,私有的,存放局部变量、操作数栈、线程创建时有的本地方法栈,包括方法区(线程共享,)...原创 2021-12-02 18:25:29 · 814 阅读 · 2 评论 -
【中级03】class loader subsystem详解
类如何加载的呢?Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制类加载顺序:双亲委派...原创 2021-11-29 16:44:01 · 505 阅读 · 0 评论 -
【中级02】Java Class字节码文件底层逻辑详解
Java的class文件是什么Class文件是jvm认识的一种字节码文件,里面的地址都是逻辑的地址。最后需要运行在操作系统中,操作系统只能识别真实的物理地址。此时需要动态链接(这个过程就是将逻辑地址变成物理地址),就是在运行时动态地绑定对象、对象地址。此外,它还是一组以8位字节为基础单位的二进制流(容错性低,错一个字节则整个class文件不可用;节省空间\可以不用定义传输的格式,比如json,xml,而直接用二进制流传输数据),各个数据项目严格按照顺序紧凑地排列在Class文件中,中...原创 2021-11-29 14:37:58 · 539 阅读 · 0 评论 -
[中级01]java为什么能跨平台,而C\C++语言不能跨平台
同样的C\C++源文件文件,经过不同的计算机硬件(x86平台、arm、AMD)、不同的操作系统(Linux\mac\windows etc.)上的编译器编译后,生成了不同的机器码,是互不通用的。而Java源码(.java)经过编译后,生成了class,通过不同平台上的JVM(Java 虚拟机)都可以解释执行。JVM掩盖了计算机硬件和操作系统的差异,对class提供了统一的执行接口,这就是java为啥能跨平台的原因。在面向对象设计原则中,有个原则叫“开闭原则”(O...原创 2021-11-18 17:10:36 · 2467 阅读 · 0 评论 -
java JDK 8 官网下载网址/清华镜像/华为镜像
1.官网下载java 1.8地址(需要注册一个oracle账户):Java Downloads | Oracle2. 清华镜像下载Index of /AdoptOpenJDK/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror3.华为镜像下载https://repo.huaweicloud.com/java/jdk/...原创 2021-10-13 23:08:51 · 258835 阅读 · 2 评论