![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 80
光依旧
时光依旧美好,技术提升人生价值。
展开
-
一文讲清楚JDK、JRE和JVM的关系
当通过编译器把源代码(.java)编译成字节码文件(.class)后,加载到jvm后,jvm就会通过内置的解释器,把字节码翻译成对应操作系统的机器码,机器码才是操作系统能识别的语言指令。不同的操作系统,有不同的jvm。JVM是建立在具体的计算机操作系统之上的一个虚拟计算机,它屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(.class),就可以在多种平台上不加修改地运行。是官网为Java应用开发者提供的一个工具包,包括了运行环境,以及一些常用的工具。原创 2022-10-07 16:34:54 · 347 阅读 · 0 评论 -
JVM内存模型及常见问题处理
我们在日常工作中,会遇到OOM或者SOF的问题,今天我们从JVM的模型入手,并对这两种问题进行详细解剖,帮助大家掌握解决问题的方法。原创 2022-07-18 10:15:38 · 249 阅读 · 0 评论 -
Java基础:对象序列化详解
在我们平日开发中,经常让PO类去实现Serializable接口,然后让其可序列化。不过有时我们并不是特别清楚为什么要序列化,特别是对于纯Web项目开发的同学来说,需求环境不一定能用上。下面我简单和大家分享下自己对序列化的认知。......原创 2022-06-27 15:55:57 · 4132 阅读 · 0 评论 -
Java多线程:CAS从原理到应用
CAS是Java多线程开发中一个基础概念,包括很多其他的中间件都会用到它。那么我们就从原理到应用,一起去揭开它的面纱。原创 2022-06-14 23:56:58 · 766 阅读 · 0 评论 -
Java多线程:JMM原理在软硬件层面的剖析
在Java并发知识体系中,JMM是一个非常重要的概念,掌握JMM可以让我们对多线程编程的理解更进一步。原创 2022-06-14 00:06:44 · 164 阅读 · 0 评论 -
扫盲贴:Java程序执行流程
使用java编程的朋友,通过IDE执行程序,或者把项目打包成war包或者jar包然后放到tomcat或者jetty上面执行。可能对从编译到解释执行的流程不是那么地了解。那么请读下这篇文章,帮助大家梳理整个java程序的执行流程。...原创 2022-06-09 12:31:33 · 2903 阅读 · 0 评论 -
Java多线程:在看源码之前,更建议掌握的知识
接触Java多线程编程多了后,大家也许会发现,无论是Thread的各种方法、JMM、JVM,还是各种同步、锁等高大上的概念,都是围绕着一个主题去开展的,那就是并发设计。并发设计则是在指定系统或者单元中,因资源有限出现资源冲突(如CPU、内存),为了解决这些问题让计算机的资源利用率更高、时间更节省而设计了针对性的解决方案,这过程叫并发设计。...原创 2022-06-07 23:50:04 · 102 阅读 · 0 评论 -
Java多线程:几种常见的线程创建方法在源码级别的比较
继承Thread类的方式,操作简单,但是因为其继承了Thread后,就限制了再继承其他类的可能性。实现Runnable的方式,操作较复杂,不过其只关注run方法,在不需要增强类其他方法的前提下,官方更推荐这种方式。实现Callable的方式,操作是三种中最复杂的,但是其提供异步返回结果,对于一些需要计算结果的场景来说是非常友好的。.........原创 2022-06-06 23:20:26 · 104 阅读 · 0 评论 -
Java多线程: fail-fast机制深入源码进行解析
fail-fast机制,在并发的情况下,对错误进行快速预测,减少问题影响时间。不过其为一种预测性的判断,并不是每次运行都能发生,因此掌握其机制原理,也要学会如何避免。原创 2022-06-02 22:57:32 · 226 阅读 · 0 评论 -
代理设计模式与Java动态代理
代理模式应用范围广泛,使用代理对目标对象进行保护,并可对调用方法进行改写。代理分为静态代理和动态代理,jdk动态代理和cglib代理是常见的代理方式,应用场景广泛。原创 2022-06-01 16:46:14 · 153 阅读 · 0 评论 -
关于java中Integer缓存数组的分析
今天发现一个很有趣的事情,java中的Integer如果两个变量值大于127,就算值相等,但是比较其对象则不一致。一、现象分析1、当Integer值为处于[-128,127]时候,i1和i2,i5和i6这两组对象相同;2、当Integer值为处于上述取值范围外的时候,i3和i4,i7和i8这两组对象相同;3、在2的情况下,其对象的值是相等的(equals)。二、原因分析Integer是java原生类,我们可以查看其源码进行分析。1、Integer带有一个缓存存放对象,当数据处于[-128,1原创 2022-05-16 17:42:49 · 902 阅读 · 0 评论