文章 2023-01-12 来自:开发者社区

【JVM原理探索】class字节码指令方法[调用]详解(上) | Java开发实战

方法调用详解   调用目标在程序代码写好、编译器进行编译时就必须确定下来,这类方法的调用称为解析。解析       在Java语言中符合**“编译期可知,运行期不可变”**这个要求的方法,主要包括静态方法和私有方法两大类,前者与类型直接关联,后者在外部不可被访问,这两种方法各自的特点决定了它们都不可能通过继承或别的方式重写其他版本,因此它们都适合在类加载阶....

【JVM原理探索】class字节码指令方法[调用]详解(上) | Java开发实战
文章 2023-01-12 来自:开发者社区

【JVM原理探索】你最应该阅读的JMM学习指南 | Java开发实战

引入缓存现代计算机中,CPU的指令速度远超内存的存取速度,由于CPU和内存的运算速度有几个数量级的差距,所以现代计算机系统加入一层读写速度尽可能接近CPU运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲,将运算需要使用到的数据复制到缓存中,CPU运算操作的是内存数据的副本,当运算结束后再从缓存将副本数据同步回内存之中,这样处理器就无须等待缓慢的内存读写了。读取缓存当CPU要读取一个数....

【JVM原理探索】你最应该阅读的JMM学习指南 | Java开发实战
文章 2023-01-12 来自:开发者社区

【底层原理之旅—字节码指令重排序】|Java 开发实战

前提概要指令重排序有两类,编译器重排序和处理器重排序。(至于内存系统指令重排较为复杂不是本章重点)重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。 编译器重排序发生在编译期,处理器重排序发生在运行时。其实指令重排序的本意是提高程序并发效率,原则是重排序后的程序运行结果和单线程运行结果一致。(AS IF SERIAL)指令重排的原因为什么指令重排序会提高程序并发效率呢?这里....

【底层原理之旅—字节码指令重排序】|Java 开发实战
文章 2023-01-12 来自:开发者社区

【底层原理之旅—volatile深入浅出的原理分析】|Java 开发实战

一、前提概要1、用过这个关键字的童鞋都知道,都知道这个关键字很强大,主要作用是保证变量在多线程之间的可见性; 2、volatile在concurrent包中起着举足轻重的作用,为大量的并发类提供了有力的援助; 3、接下来我们从了解CPU缓存开始,然后再深入原理剖析,循序渐进的了解volatile; 复制代码二、CPU缓存2.1 传输链路CPU(线程) --》 CPU缓存(一级、二级、三级缓存等.....

文章 2023-01-12 来自:开发者社区

【底层原理之旅—HashMap深入浅出的源码分析(JDK1.7版本)】|Java 开发实战

概念回顾HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度依然为O(1),因为最新的Entry会插入链表头部,急需要简单改变引用链即可,而对于查找操作来讲,此时就需要遍历链表,然....

【底层原理之旅—HashMap深入浅出的源码分析(JDK1.7版本)】|Java 开发实战
文章 2023-01-12 来自:开发者社区

【底层原理之旅—带你分析Class字节码的结构(下)】|Java 开发实战

字段表集合字段表集合用于描述接口或者类中声明的变量,这里的数据为:0000。fields_count 字段计数器fields_count 的值表示当前 Class 文件 fields[]数组的成员个数。 fields[]数组中每一项都是一个 field_info 结构的数据项,它用于表示该类或接口声明的类字段或者实例字段。fields[] 字段表fields[]数组中的每个成员都必须是一个 fi....

【底层原理之旅—带你分析Class字节码的结构(下)】|Java 开发实战
文章 2023-01-12 来自:开发者社区

彻底认识「JIT编译器的运行原理」|Java 开发实战

前提概要解释器Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”(hotspot code)。正因为如此,我们的hotspot的虚拟机就是因此而得名。解释器优点(占用空间较少)解释执行占用更小的内存空间。(启动和首次执行速度较快)当程序需要迅速启动的时候,解释器可以首先发挥作用,省去了编译的时间....

彻底认识「JIT编译器的运行原理」|Java 开发实战
文章 2023-01-10 来自:开发者社区

深入理解负载均衡原理|Java 开发实战

开篇面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解....

深入理解负载均衡原理|Java 开发实战

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等