- 博客(19)
- 收藏
- 关注
原创 并发基础--java中的线程
interrupt的本质是将线程的打断标记设为true,并调用线程的三个parker对象(C++实现级别)unpark该线程。
2024-09-28 13:29:43 588
原创 并发基础--进程线程,同步异步,阻塞非阻塞
(concurrent)是同一时间**应对(dealing with)**多件事情的能力(轮流执行线程)。(parallel)是同一时间动手**做(doing)**多件事情的能力(多核同时执行多个线程)。定义:一个进程之内有多个线程,一个线程就是一个指令流,它是系统。在 windows 中进程是不活动的,只是作为线程的容器。进程基本上相互独立的,而线程存在于进程内,是进程的一个子集。进程拥有共享的资源,如内存空间等,供其内部的线程共享。阻塞,非阻塞则描述的是单个线程在调用方法时的“下,通过操作系统中的。
2024-09-28 13:18:13 381
原创 虚拟机字节码执行引擎
Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。
2024-09-28 11:53:18 258
原创 虚拟机类加载机制--类加载
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。与那些在编译时需要进行连接的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销, 但是却为Java应用提供了极高的扩展性和灵活性,Java天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。
2024-09-27 21:35:50 558
原创 JVM监控和故障处理及内存调优
对JVM内存的系统级的调优主要的⽬的是减少GC的频率和Full GC的次数。过多的GC和 Full GC是会占⽤很多的系统资源(主要是CPU),影响系统的吞吐量。使⽤JDK提供的内存查看⼯具,⽐如JConsole和Java VisualVM。jconsole,Java Monitoring and Management Console是从java5开始,在JDK中⾃带的java监控和管理控制台,⽤于对JVM中内存,线程和类等的监控。提 供了实时分析线程、内存,CPU、GC等信息的可视化界⾯。
2024-09-26 16:58:26 203
原创 垃圾收集器与内存分配策略--经典垃圾收集器
图3-6展示了七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用(jdk 9字样表示在jdk 9时废弃),图中收集器所处的区域,则表示它是属于新生代收集器抑或是老年代收集器。是HotSpot虚拟机运行在客户端模式下的默认新生代收集器历史地位: 最基础、历史最悠久的收集器,曾是JDK 1.3.1之前HotSpot虚拟机新生代收集器的唯一选择。工作方式: 单线程工作,进行垃圾收集时需暂停其他所有工作线程(“Stop The World”)。优点单/少核处理器优势: 在单核/核心数较少
2024-09-26 15:10:10 734
原创 垃圾收集器与内存分配策略--垃圾收集算法
写屏障是一种虚拟机层面的技术,用于在引用类型字段赋值时执行额外动作。它类似于面向切面编程(AOP)中的环绕通知。
2024-09-26 14:55:28 681
原创 垃圾收集器与内存分配策略--垃圾收集概述
垃圾收集(Garbage Collection,下文简称GC)需要完成的三件事情:哪些内存需要回收?什么时候回收?如何回收?第2章介绍了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域的生命周期都是确定的,随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而执行对应的入栈和出栈操作。同时,这几个区域所需的空间大小都是确定的,因此这几个区域的内存分配和回收都具备确定性,不需要过多考虑如何回收的问题:当方法结束或者线程结束时,内存自然就跟随着回收了。
2024-09-26 14:44:31 776
原创 Java内存区域与对象结构探秘--HotSpot虚拟机对象
以最常用的虚拟机HotSpot和最常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。
2024-09-26 12:12:28 351
原创 Java内存区域与对象结构探秘--运行时数据区域
数据存储以变量槽(Slot)表示,其中long和double占用两个变量槽,其他类型占用一个。局部变量表所需的空间在编译期分配,运行期间大小不变,大小指的是变量槽的数量。存放基本数据类型、对象引用和returnAddress类型(指令地址)。
2024-09-26 12:07:05 545
原创 确保 Web 安全的 HTTPS
HTTPS 是身披 SSL 外壳的 HTTP。HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用 SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代替而已。
2024-09-26 12:01:54 780
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人