Java技术栈随笔

HashMap底层实现

	HashMap的底层储存依然是数组形式,只不过储存到数组中的下标是计算的(通过对key的hashCode进行处理
得到),而在储存时,因运算后得到的下标可能重复,从而每个数组中储存的对象转化为储存链表,而链表中数量达到
8个时,及时转成红黑树,提高map的效率

JVM的理解

	Java虚拟机,是提供java运行的而构建的虚拟计算机,也是通过它,才使得java可以一次编译,到处运行。
	java文件转为.class字节码文件,通过JVM虚拟机进行解释,成为机器识别的机器码。而在不同的系统中的机器
码并不相同,所以只需要通过安装相应系统的JVM虚拟机就能解决问题。从而java只需要一次编译,只需要变的是
jvm。
	JVM的组成结构分为:类装载器、运行数据方法区、执行引擎
		1.类装载器:复制加载程序中的类型(类和接口),并赋予唯一的名字
		2.执行引擎:负责执行字节码,或者执行本地方法
		3.运行数据方法区:包含java栈、java堆、方法区、本地方法区栈
			①.java栈:线程私有的,一个线程对应一个java栈,每执行一个方法就会往栈中压入一个元素,这个
			元素叫“栈帧”,其中主要保存局部变量。java栈空间不足了,程序会抛出StackOverflowError异常,
			常见于递归方法中。
			②.java堆:线程共有的,保存对象实例,java堆空间不足了,程序会抛出OutOfMemoryError异常。
			③.方法区:线程共有的,保存类信息、常量、静态变量。
			④.本地方法区:与java栈类似,只不过其主要存放的方法调用本地方法接口,从而达到与操作系统、硬件
			交互
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值