一、JVM内存的分析:

第一步:存放在硬盘上的程序首先要被加载到内存空间中。

第二步:内存中的jvm找到程序中main函数作为入口,然后开始执行。

第三步:执行过程中的内存管理:内存分为四个部分:

栈内存:用来存放主函数中变量、局部变量、引用。stack。

堆内存:用来存放new出来的对象,heap

数据区(方法区、共享区):data segment
存放静态变量,方法

代码区:code
segment:用来存放代码。

二、对于面向对象、类、对象的理解:

1.   
我们知道面向过程强调的是一系列的动作,面向对象强调是是结果,例如:拿打开冰箱这件事来说,如果我们以面向过程的语言去理解的话:第一步,打开冰箱;第二步;把事物放进去;第三步,把冰箱关上。这就是面向过程,如果我们以面向对象的思想去理解的话,冰箱就是一个对象,他拥有打开,可以存放东西,关闭的方法,我只要用冰箱去调用这些方法就行了。那就是

冰箱、打开();

冰箱、存放食物();

冰箱、关闭();

这就是面向对象的思想,我们眼中只有一个个对象,它的功能实现与我们调用者无关,我们只要使用它们的功能就行了。

举例二:我们打开门,然后进来,把门关上,这是一个过程,而面向对象的思想就是,门是一个对象,拥有打开,关闭的方法,我们只要去调用就行了,至于如何实现,那是门的事情,与我们调用者无关。

2.类与对象,在现实生活中,存在一个个特征鲜明的个体,我们称他们为对象,就是说万事万物都是对象,张三、李四、一只狗,一只猫,它都是与众不同的,如果我们仔细观察事物,会发现,事物之间是存在共性了,张三和李四都是人,都属于人这个类,然后和一只狗之间有都是动物,在往上,和一棵树又都是生物,所以类是一个抽象的概念,它是对一些对象共性的抽取。而对象时现实生活一个个活灵活现的个体。

既然类是很多对象共性的抽取,那么某一类事物肯定又有一些属性,或者行为方式;

举例:人类,有姓名,年龄,国籍,性别,   
都吃饭,走路,睡觉,说话,,等等方式,

按照类中的属性和方法对号入座填上数据,那么一个具体的对象就创建出来了

这样我们就可以把这个类给创建出来了:创建类用class 
类名{}

class  
Person{//定义一个类

String name;//这些都是类中的属性

int age;

String country;

void eat(){

System.out.println("吃饭");

}

}

四、创建对象过程:

1、必须使用new来创建一个对象,实际new
+构造方法

2、使用对象属性时,对象名。成员变量

3、使用对象方法时,对象名。方法();

4、同一个类的每个对象有不同的成员变量的存储空间

5、同一个类中的每个对象共享该类中的方法

五、调用方法的分类:

(1)无参无返回类型方法

public void   eat(){

System.out.println("吃饭");

}

Person p=new Person();

p.eat();

(2)有参数无返回值类型方法

public void eat(String s){

System.out.println("我在"+s+“上吃饭”);

}

Person p=new Person();

p.eat("桌子");

(3)无参有返回类型方法

public String getName(){

return name;

}

(4)有参有返回类型

public int
print(int  x){

return   2*x;

}

六:几个关键字的用法:

1、return 
返回值类型和方法指定类型保持一致,这个值总是确定的。

return的另一个作用是结束方法的执行。

2.this
关键字:表面上是区分成员变量和参数名重名的问题,其实this可以看做一个变量,就是当前值的调用,比如讲台上有一把椅子,它就代表this。那个老师来上课,那个老师就坐在那里,而在java中,只要有对象来调用这个函数,那么this,就代表当前调用本函数的对象。

类、对象以及jvm运行内存解析的更多相关文章

  1. Android通过类对象的方式实现JSON数据的解析

    1.通过主Activity的Button按钮实现数据的解析 public class MainActivity extends Activity { //定义一个包含Json格式的字符对象 priva ...

  2. .NET解析xml字符串,通过反射给实体类对象赋值,获取实体类数据列表

    /// <summary> /// 解析xml字符串 转换为实体类列表数据 /// </summary> /// <param name="xmlStr&quo ...

  3. Mybaits 源码解析 (八)----- 全网最详细,没有之一:结果集 ResultSet 自动映射成实体类对象(上篇)

    上一篇文章我们已经将SQL发送到了数据库,并返回了ResultSet,接下来就是将结果集 ResultSet 自动映射成实体类对象.这样使用者就无需再手动操作结果集,并将数据填充到实体类对象中.这可大 ...

  4. Method Resolve Order (MRO) - 类对象属性的解析顺序

    Method Resolve Order (MRO) - 类对象属性的解析顺序 Python 支持多重继承, 此时就需要解决按照何种顺序来解析属性的问题.类的继承关系在一个特殊的类属性中指定(__mr ...

  5. 类和对象在JVM中是如何存储的,竟然有一半人回答不上来!

    前言 这篇博客主要来说说类与对象在JVM中是如何存储的,由于JVM是个非常庞大的课题,所以我会把他分成很多章节来细细阐述,具体的数量还没有决定,当然这不重要,重点在于是否可以在文章中学到东西,是否对J ...

  6. NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析

    哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了... 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...

  7. C++ 类对象和 指针的区别

    C++ 类对象和 指针的区别 C++ 类对象和 指针的区别 转自:http://blog.csdn.net/ym19860303/article/details/8557746 指针的情况 class ...

  8. delete 类对象指针的注意事项]

    http://blog.csdn.net/infoworld/article/details/45560219 场景:1. C++类有构造和析构函数,析构函数是在类对象被delete时(或局部变量自动 ...

  9. 《深入Java虚拟机学习笔记》- 第7章 类型的生命周期/对象在JVM中的生命周期

    一.类型生命周期的开始 如图所示 初始化时机 所有Java虚拟机实现必须在每个类或接口首次主动使用时初始化: 以下几种情形符合主动使用的要求: 当创建某个类的新实例时(或者通过在字节码中执行new指令 ...

随机推荐

  1. 【转】Maven实战(九)---模块聚合和继承

    原博文出自于:http://blog.csdn.net/liutengteng130/article/details/47001831   感谢! 类之间有聚合和继承关系,Maven也具备这样的设计原 ...

  2. 【转】Maven实战(二)---多模块开发---缺少Jar包

    原博文出于:http://blog.csdn.net/liutengteng130/article/details/41611755    感谢! Maven里面的Jar包经常出现Missing的情况 ...

  3. Hibernate初认识以及HelloWorld

    一.Hibernate初认识 1. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 2.对 ...

  4. maven 控制台乱码

    在pom.xml加一条配置 <project> …… <properties> <argLine>-Dfile.encoding=UTF-8</argLine ...

  5. CodeForces 455A Boredom (DP)

    Boredom 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/G Description Alex doesn't like b ...

  6. CodeForces 173C Spiral Maximum (想法、模拟)

    Spiral Maximum Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Sub ...

  7. NGUI学习笔记(五):缓动

    在Unity3D中可以使用自带的Animation制作任意形式的动画,不过我们这篇笔记主要是学习和使用NGUI提供的Tween动画.NGUI提供的Tween库功能较为简单,主要是用来实现NGUI自身需 ...

  8. mysql5.5主从配置

    mysql主从同步# 一:mysql数据库的主从 mysql数据库5.5之后的版本和5.5以前的版本数据库主从存在差异,这里是针对数据库5.5之后的配置. 1.主库编辑my.cnf(linux的my. ...

  9. VMware的“桥接”、“NAT”、“Host-only”上网方式的区别

    http://liblog.littleyuan.com/archives/9 在说到VMware的网络模型之前,先说一下VMware的几个虚拟设备: VMnet0:这是VMware用于虚拟桥接网络下 ...

  10. 教你50招提升ASP.NET性能(十四):使用startMode属性来减少ASP.NET站点加载时间

    (25)Use the startMode attribute to reduce the load time for your ASP.NET site 招数25: 使用startMode属性来减少 ...