JavaSE实训day03总结

一、代码

 1 package mypack;
 2 import mypack.A;
 3
 4 class A
 5 {
 6     public void m1(){
 7     System.out.println("hi");
 8     }
 9 }
10
11 public class Test
12 {
13     public static void main(String[] args){
14     A hello = new A();
15     hello.m1();
16     }
17 }
public class Student {
	private String s;

	public String getS() {
		return s;
	}

	public void setS(String s) {
		this.s = s;
	}
	public String toString() {
		return "Student [s=" + s + "]";
	}
}

Student stu = new Student();
		stu.setS(s);
		System.out.println(stu);

二、解析

代码1.

CMD命令下:

javac -d . Test.java

java mypack.Test

结果:

-d               按指定文件目录级编译

mypack.Test       全限定名 包名.类名 mypack.Test.class

代码2.

Student stu = new Student();

解析:

01  Student stu

反映到Java栈(Java VM Stack)的本地变量表,作为一个reference类型数据出现()。

reference类型 引用类型,特殊类型,占4字节,具体表现为对象的名字(Student)

02  new Student();

反映到Java堆中,形成了一块存储了Student类型的具有实例数据值的结构化内存。根据具体对象类型以及虚拟机实现对象内存局部表的不同,这块内存的长度是不固定的。同时Java堆中还包含查找此对象信息的地址信息。

即:堆里面开辟存储了,

1.Student对象

2.对象具有初始化的值,String对应 空串

3.地址信息

对象访问具体方式过程

通过reference类型如何访问Java堆中的对象?主流的访问方式有两种:

1.使用句柄访问方式

  Java堆中会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄地址中包含了对象实例数据和类型数据各自的具体地址。

注意:

1.堆里面有2块东西,第一句柄池,第二实例池

2.句柄池存了2个东西,

第一,指向实例数据的指针(具体指针),指的是具体数据

第二,指向类型数据的指针(模具指针),指的是方法区数据类型

2.使用直接指针访问方式

  Java堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,reference中直接存储的就是对象堆地址。

优势对比:

 

句柄访问方式:最大的好处就是:reference中存储的是稳定的句柄地址,在对象被移动(垃圾回收时移动对象是非常普遍的行为)时只要修改句柄中的实例数据指针,而reference本身不需要被修改。

因为多用了内存存类型数据的指针,2个指针,2次定位

直接指针访问方式:最大好处就是速度快,它节省了一次指针定位的时间开销。

只有一个指针,存具体数据的指针

时间: 2024-12-22 06:08:38

JavaSE实训day03总结的相关文章

老男孩linux实训学生入学资格考试题(技术部分)

################################################################ 本文内容摘录于老男孩linux实战运维培训中心入学考试题(答案部分) 如有转载,请务必保留本文链接及版权信息. 欢迎广到运维兄弟一起交流linux/unix网站运维技术! 网站运维交流群:114580181 45039636 37081784  老男孩 QQ:31333741  mail:[email protected] ======================

<实训|第五天>通过搭建NFS,FTP实现共享文件附Vim脚本游戏

先说个事情:我周末是不更新这个系列教程的,不过其他内容的会更新,我周末就整理这一周的各种内容到我的微信公众号中,提供给大家! 期待已久的linux运维.oracle"培训班"终于开班了,小编从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! 感谢大家的支持

<实训|第四天>Linux下的vim你真的掌握了吗?附上ftp远程命令上传。

期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的.关注我的.没关注我的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! ------------------------------------------------------------

<实训|第二天>掌握linux6.7中安装vmware、vmware安装linux发行版本以及遇到的问题最后libreoffice的安装

期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的.关注我的.没关注我的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! ------------------------------------------------------------

山西高平地域文化导入美术设计实训项目的实践

地域文化,是指某个地域的人们在特定的范围内,在自然环境的基础上,在长期的生产生活中创造的.人类活动的产物.山西高平是神农炎帝的故里,长平之战的发生地,是一个有着很深文化积淀的新兴城市,行政区域是国土面积的万分之一,却浓缩了中国五千年文化的精髓.本文通过对山西高平丰富的历史文化资源的调查研究,探讨如何将地域文化元素导入中职美术设计专业的实训项目教学过程,论证典型地域文化元素在中职美术设计教育中的独特作用,并以此作为教学实训素材,依托带有典型地域文化特征的企业真实案例,结合教育教学实践,探索中职美术

为期3个月的实训结束了,有感而发

今天是10月22日,早上刚刚结束项目答辩,作为组长的我第一个进会议室,我深吸一口气,淡定地走了进去,为我这几个月的成果做个总结汇报,那一刻我的心情是平静的,连接好投影仪,清清嗓子,我开始了自我介绍,然后就开始了我的答辩,老师的问题我都完整地回答了出来,也展示了我自己实现的有亮点的小功能,汇报完毕后,起身做了结束语,看着面试官老师们满意的微笑我的心里有了一丝欣慰与感动 这次做的项目是基于局域网的微博客户端,用到安卓开发,我负责整个项目的进度,这期间,我们小组一共5个人不停奋战,实现所有功能,也修改

实训团队心得(1)

这次实训我们团队做的是J2EE项目,在这次项目中,我们需要搭建的是一个基于SSH2框架的关于学校教室资源分配的系统.在这次项目中,我第一次尝试担当项目开发团队的负责人. 由于团队是第一次进行合作,因此在各个方面都显得不太成熟,如组织.讨论等等方面.下面是自己在担当负责人的一些心得,以备后用: 1)关于团队学习 在这次项目中,团队在遇到J2EE的相关知识时,有点慌乱,因为大家都不知道应该从哪方面对J2EE这种了解过得技术进行学习.结果在项目准备阶段中,大家都是在研究J2EE的结果以及相关配置.结果

实训之countdown深度优化

今天开始我们为期三周的实训,讲道理很紧张.我们两个多月的时间,小组成员磨合的非常好,可以说是有点默契的程度了,凝聚力明显提高.今天的分组之后立马投入这次实训中. 首先要确定我们这次实训目标,我们选择了继续强化我们的项目.在前段时间配合的不是很理想到通力合作做出粗略的基本功能的实现,我们每个人都付出了很多.这次我们希望继续深入下去这个项目,让它不再是一个简单的功能性软件,我们打算加入一些全新的功能点进去,让这个项目成为我们之前规划中小巧简便实用性高的产品. 首先我们希望加入登录注册,在使用过程中可

<实训|第三天>Linux登录界面的修改以及Richard Stallman、自由软件运动

在写博客之前我想说两点: 承认一个错误,昨天写的实训第二天,我把redhat6.7写成了Linux6.7,感谢热心人士的指出! 昨天写的文章名字太长了,今天改善,内容感觉表述不全,希望各位谅解! 官方跟我说的是安装配置类的文章不能放进首页中,今天虽然有一点,但是主体部分还是对GUN.Linux和TCP/IP以及IP的认识. 期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教