当前位置: 首页 > news >正文

java学习笔记1.6

Day06

java中的运行机制

1.java的程序运行的过程是怎么样的?

.java文件->编译->.class字节码文件->运行(在虚拟机里运行)

2.java不是直接运行在操作系统里面的,是运行在虚拟机里面的

3.虚拟机的好处:利用虚拟机可以实现跨平台

4.为什么要跨平台?

写一套代码可以在任意的操作系统中运行。

内存

内存:

软件在运行时,用来临时存储数据的

  • 把数据保存到内存中
  • 从内存的对应位置把数据提取出来
内存地址:内存中每一个小格子的编号

内存地址的规则

  • 32位的操作系统,内存地址以32位的二进制表示-----共2**32次方个内存地址

    • 最大支持内存4GB
  • 64位的操作系统,内存地址以64位的二进制表示-----共2**64次方个内存地址

    • 最大支持内存17179TB
    • 64位二进制转化为16位16进制

作用:快速的管理内存空间

java中的内存分配

1.栈内存

每个线程都有自己独立的栈,方法被调用进栈执行,执行完毕出栈

2.堆内存

所有线程共享,存储对象,数组,字符串常量池(new关键词一定使用堆内存)

3.方法区(方法存储不允许,要方法进栈运行

JDK7永久代实现,JDK8+元空间实现,从虚拟机内部移到本地内存。存储字节码,常量,静态变量。

运行时编译的字节码class文件会加载到方法区临时存储

4.本地方法栈

调用本地Native方法

5.程序计数器

每个线程独立,记录当前线程执行的字节码指令地址(行号)

publicclassMemory{publicstaticvoidmain(String[]args){inta=10;intb=20;intc=a+b;System.out.println(c);}}

基本数据类型:变量里面记录的是真实的数据,传递也是真实的数据
publicclassMemory{publicstaticvoidmain(String[]args){inta=10;intb=20;System.out.println("交换前的:"+a+","+b);change(a,b)System.out.println(c);}publicstaticvoidchange(inta,intb){inttemp=a;a=b;b=temp;}}//a和b只是把值传递给change方法,所以a和b没有改变。

数组的内存分配
  • 栈内存
  • 堆内存(数组new关键字一般隐藏)
  • 方法区
publicclassMemory{publicstaticvoidmain(String[]args){int[]arr={1,2,3};System.out.ptintln(arr);//打印arr的内存地址}}//'='将堆内存中数组的地址赋值给栈内存中的arr

引用数据类型:存储的是内存地址
数组在方法中的传递
  • 数组中的传递是地址传递
publicclassMemory{publicstaticvoidmain(String[]args){int[]arr={1,2,3};change(arr);}publicstaticvoidchange(int[]arr){inttemp=arr[0];arr[0]=arr[2];arr[2]=temp;}}

总结:

1.java虚拟机把内存分成了几个部分?

栈,堆,方法区,本地方法栈,程序计数器。

2.栈,堆,方法区的作用?

栈:方法

堆:new关键字

方法区:字节码文件

3.基本数据类型在内存中的特点?

记录的是真实的数据,传递的也是真实的数据

4.引用数据里类型在内存中的特点?

记录的是地址值,传递的也是地址值。

http://www.jsqmd.com/news/269954/

相关文章:

  • 计算机深度学习毕设实战-基于python-CNN深度学习卷神经网络识别猫脸
  • flask基于Python的膳食营养健康系统
  • 编曲伴奏软件有哪些,音乐人分享AI编曲软件助力原创音乐创作
  • 如何高效发布新款,在线看款?
  • flask基于Python的运维管理系统 交换机故障预警处理系统4y5n9i32
  • 深度学习毕设项目:基于python-CNN深度学习识别猫脸
  • 新手必看:渗透测试实战流程 + 工具全攻略(零门槛适配)
  • 深度学习毕设项目:基于python-CNN卷积神经网络的柑橘成熟度识别
  • flask基于大数据的旅游数据分析可视化系统
  • 学霸同款2026 TOP8 AI论文写作软件测评:专科生毕业论文必备神器
  • DTW动态窗口调稳时序对齐
  • flask基于大数据的热门旅游景点推荐系统开题任务书
  • flask基于LSTM的在线考试系统的设计与实现6fp6658
  • Spark函数 - 指南
  • 结课设计
  • 【PR】效果、关键帧
  • 编配伴奏的方法大揭秘,音乐人利用AI编曲软件提升创作水平
  • 《uv 终极教程:安装、镜像配置与 pip 无缝迁移》
  • ‌2026年AI测试报告:行业现状与未来展望‌
  • 编辑伴奏用什么软件,音乐人推荐AI编曲软件提升歌曲创作水平
  • C4D + Corona 渲染玻璃材质详解:Thin Shell 与实心玻璃的正确使用方式
  • 从测试小白到AI测试专家的三维进阶体系
  • 实用指南:【数据结构】考研408|数据结构高分堡垒:攻克红黑树五大性质与适度平衡思想
  • 扣子2.0正式上线:打造主动执行的AI工作伙伴,四大核心能力重构Agent体验
  • 既然AI这么聪明,能不能帮我把澡洗了?——关于“碳基生物”被“硅基生物”忽悠的日常
  • RAG分块技术:精准检索的7大核心策略
  • 生成式AI革命下的软件测试:机遇裂变与风险防御体系构建
  • 维多利亚时代的代码美学:当齿轮咬合数据洪流
  • 动量投资策略:利用价格趋势获取收益
  • 别怕AI统治世界,它连我的闹钟都关不明白:一份普通人的“赛博生存”观察