一、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. [5] Zygote

    Android设备中的两大进程,如下图 1,由init进程创建的Daemon进程 2,由 Zygote进程创建的应用程序进程 什么是Zygote? zygote是“受精卵”的意思.在Android里, ...

  2. Mysql中关于 group_concat函数详解

    group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Sepa ...

  3. Codeforces Round #313 (Div. 2) B. Gerald is into Art 水题

    B. Gerald is into Art Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/560 ...

  4. lightOJ 1030(期望)

    题意:有一个迷宫是1×n的格子,一个人每到一个格子就能够把这个格子内的金子所有拿走,刚開始站在第1个格子,然后開始掷骰子得到点数x,他就要从当前位置走到加x的位置.假设发现位置是大于n的就又一次掷骰子 ...

  5. delphi 修改Hint的字体和颜色

    //修改Hint的字体和颜色   public    { Public declarations }    procedure Sshowhint(var hintstr:string;var can ...

  6. Unity NGUI 描点控件的位移动画

           要让一个描点的控件动画移动到一个Position,能够用TweenPosition.可是这个仅仅能用在Position是固定的情况下.并且不能依据分辨率适配来进行移动. 以NGUI自带的 ...

  7. iOS开发——适配篇&App适配简单概括

    App适配简单概括 1:适配:适应.兼容各种不同的情况 系统适配 针对不同版本的操作系统进行适配 屏幕适配 针对不同大小的屏幕尺寸进行适配 在用户眼中 屏幕是由无数个像素组成的 像素越多,屏幕越清晰 ...

  8. MapReduce原理讲解

    简介 本文主要介绍MapReduce V2的基本原理, 也是笔者在学习MR的学习笔记整理. 本文首先大概介绍下MRV2的客户端跟服务器交互的两个协议, 然后着重介绍MRV2的核心模块MRAppMast ...

  9. Jordan Lecture Note-11: 典型相关分析(Canonical Correlation Analysis, CCA).

    典型相关分析 (一)引入 典型相关分析(Canonical Correlation Analysis)是研究两组变量之间相关关系的一种多元统计方法.他能够揭示出两组变量之间的内在联系. 我们知道,在一 ...

  10. Computer skills one can learn within one day

    Computer related technical skills are usually thought as complicated and difficult to understand. It ...