深入理解JVM(③)Java的锁优化
前言从JDK5到JDK6HotSpot虚拟机开发团队花费了大量的资源实现了各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁消除(Loc...
【深入理解Java虚拟机】类的初始化过程
类的初始化过程类的加载过程.png加载将 Class 文件以二进制的形式加载到内存中验证校验 Class 文件是否安全,是否被正确的修改等准备为类变量申请内...
Java基础系列-深入理解==和equals的区别(一)
一、前言说到==和equals的问题,面试的时候可能经常被问题到,有时候如果你真的没有搞清楚里边的原因,被面试官一顿绕就懵了,所以今天我们也来彻底了解一下这...
《深入理解Java虚拟机》- JVM异常处理
一、Java异常在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境,例如用户的坏数据、试图打开一个不存在的文件等。为了能够及时...
深入理解Java虚拟机(类文件结构)
深入理解Java虚拟机(类文件结构)欢迎关注微信公众号:BaronTalk,获取更多精彩好文!之前在阅读 ASM 文档时,对于已编译类的结构、方法描述符、访问标志、ACC_PUBLIC、ACC_PRIVATE、各种字节码指令等等许多概念听起来都是云山雾罩、一知半解,原因就在于对类文件结构和类加载机制...
Java垃圾回收机制:理解与实践
Java语言的一个显著特点是其自动内存管理,即垃圾回收(Garbage Collection, GC)。GC可以自动监控每个对象的引用情况,当一个对象不再被引用时,GC会自动释放该对象占用的内存。这大大简化了开发者的内存管理工作,但也带来了性能上的挑战。本文将探讨Java中的垃圾回收机制,并通过代码...
深入理解Java中的ThreadLocal
第1章:引言大家好,我是小黑。今天咱们来聊聊ThreadLocal。首先,让咱们先搞清楚,ThreadLocal是个什么玩意儿。简单说,ThreadLocal可以让咱们在每个线程中创建一个变量的“私有副本”。这就意味着,每个线程都可以独立地改变自己的副本,而不会影响其他线程。这就像是每个人都有自己的...
分享知识-快乐自己:快速理解(Java内部类)
1):成员内部类什么是内部类?:内部类就是在一个类中定义另一个类。定义语法:使用命令行查看编译 产生的文件:如何生成内部类对象?创建规则:内部类对象 需要先声明外部类对象。内部类以及外部类的成员变量、方法 的使用? 上图所示:编译是可以通过的,语法上是没有错误的。其实这个地方很容易会产生一个错觉,就...
【转载】 JAVA三层架构,持久层,业务层,表现层的理解
JAVA三层架构,持久层,业务层,表现层的理解转载:http://blog.csdn.net/ljf_study/article/details/64443653SSH:Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是...
从源码角度理解Java设计模式——装饰者模式
一、饰器者模式介绍装饰者模式定义:在不改变原有对象的基础上附加功能,相比生成子类更灵活。适用场景:动态的给一个对象添加或者撤销功能。优点:可以不改变原有对象的情况下动态扩展功能,可以使扩展的多个功能按想要的顺序执行,以实现不同效果。缺点:更多的类,使程序复杂类型:结构型。类图:源码分析中的典型应用J...
深入理解Java虚拟机--阅读笔记一
Java内存区域一、java运行时数据区域1、 程序计数器:程序计数器占据的内存空间较小,是当前运行线程执行的字节码的计数;分支、循环、跳转、异常处理、线程恢复等都要依赖技术器来对执行的字节码进行执行位置的计算来实现的。程序计数器的内存空间是每条线程独有的,也称之为“线程私有”的内存;计数器记录的是...
【由浅入深理解java集合】(一)——集合框架 Collction、Map
本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解。具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue。Java集合类简介:Java集合大致可以分为Set、List、Queue和Map四种体系,其中Set代...
【由浅入深理解java集合】(三)——集合 List
第一篇文章中介绍了List集合的一些通用知识。本篇文章将集中介绍List集合相比Collection接口增加的一些重要功能以及List集合的两个重要子类ArrayList及LinkedList。一、List集合关于List集合的介绍及方法,可以参考第一篇文章。List集合判断元素相等的标准List判...
建房子之前先挖地基 - Java BlockingQueue理解
最近一直在看《Think In Java》里关于并发部分的章节,读到第二十一章有一个有趣的比喻:必须先挖房子的地基,但是接下来可以并行的铺设钢结构和构建水泥部件,而这两项任务必须在混凝土浇筑之前完成。管道必须在水泥板浇注之前到位,而水泥板必须在开始构筑房屋骨架之前到位。在这些任务中,某些可以并行执行...
JAVA的向上转型和向下转型怎么理解呢?
在定义中是子类向父类转型称为向上转型,父类向子类转型是向下转型(必须先向上转型过,才能向下转型),但是在下面类定义后,我得到的结果却不同。求大佬解惑class superclass{public int x = 100;public void printinfo() {System.out.prin...
Java-谈谈对Java平台的理解
问题谈谈对 Java 平台的理解Java是解释执行的 这句话对么程序的编译与解释有什么区别Java 平台的了解Java的主要特点是两个,编写一次到处运行 Write once, run anywhere具有垃圾回收编写一次到处运行是说通过 JVM这一层抽象可以让 Java 代码在不同的 CPU 平台...
《Java核心技术36讲》阅读笔记:谈谈对Java平台的理解笔记
1. 谈谈你对Java平台的理解。Java是一种面向对象的语言,最显著的特性有两个方面:一个就是一次编译,到处运行(Write once, run anywhere),能够非常容易的获得跨平台能力;另一个就是垃圾收集(GC,Garbage Collection),Java通过GC回收分配内存,大部分...
Java核心-01 谈谈你对Java平台的理解
今天我要问你的问题是,谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?典型回答Java本身是一种面向对象的语言,最显著的特性有两个。一是所谓的“书写一次,到处运行”,能够非常容易获得跨平台能力;另一个就是垃圾收集,Java通过垃圾收集器回收分配内存,大部分情况下,程序员不需要...
2018.7.26 进程和线程的区别 &&你对 Java平台的理解
进程和线程的区别1.定义进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一...
1.谈谈对Java平台的理解
1.谈谈你对Java平台的理解Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一次编译,到处运行”(Compile once,run anywhere),能够非常容易地获取跨平台能力;另外就是垃圾收集(GC,Garbage Collection),Java 通过垃圾收集器(G...