JVM-内存分配和回收

JVM内存分配和回收在了解了JVM运行时数据区之后,我们发现JVM中对象的存储在堆上,而且java是面向对象的编程语言,我们一般都是通过new一个对象来生成相应的对象。那么我们在程序中调用new的时候,JVM是做了什么去帮我们生成对象的呢?对象的创建虚拟机在遇到一条new指令,首先将去检查这个指令的

#jvm   #java  

JVM-内存模型

JVM内存模型运行时数据区域程序计数器栈本地方法栈堆方法区运行时常量池直接内存JVM内存模型运行时数据区域程序计数器栈本地方法栈堆方法区运行时常量池直接内存

#jvm   #java  

Java-Lock和Synchronized区别

Lock和Synchronized的区别参考链接海子博客链接地址Lock不是java语言内置的,Lock是一个类,通过该类来实现同步访问,synchronzied是java内置关键字synchronized不需要手动去释放,当sync的代码块执行完会自动释放对锁的占用,但是Lock需要手动去释放,否

#java   #lock  

Java-Queue-ArrayBlockingQueue

LinkedBlockingQueue可以不初始化容量,如果没有指定容量,那么默认容量为Integer.MAX_VALUE(此时需要注意当消费者崩溃或者消费不及时,如果生产者队列一直生产数据到队列,那么有可能会耗光资源,因为队列容量是MAX_VALUE);ArrayBlockingQueue必须初始

#java   #集合  

Java-集合类对应数据类型简单解析

文章将简单的结合JDK源码来展示Java常用集合类型的数据结构,所使用的JDK为1.8版本。1.List和Set相比,List是有序可重复的,Set是无序不可重复;2.HashMap无序线程不安全,HashTable线程安全,TreeMap有序;3.HashMap的Key和Value都可以为null

#java   #集合  

Java-equals()&hashCode()区别于联系

equals()和hashCode()区别和联系我们经常听到重写equals和hashCode,但是我们为什么要去重写呢?如果我们不重写会怎么样呢?又或者我们只重写其中一个又会怎么样呢?带着这样的问题我们来看下equals()和hashCode()具体的区别和联系是什么?在说明之前我们先了解下equ

#java