一、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. 第二百七十二、三天 how can I 坚持

    昨天加班回来都很晚了,也忘了些日志了.其实感觉加班也没什么啊,一个团队在一块说说闹闹,愉快的完成工作挺好. 今天是2015年的最后一天,2015的愿望啊,只怪自己太怂了.不怂会是什么结果. 其实更应该 ...

  2. Linux cat命令参数及使用方法详解

    cat是Linux系统下用来查看文件连续内容用的指令,字面上的含意是“concatenate”(连续)的缩写.除了用来作为显示文件内容外,cat指令也可用于标准流上的处理,如将显示的信息转入或附加另一 ...

  3. oracle中in与exists的区别

    exists是用来判断是否存在的,当exists中的查询存在结果时则返回真,否则返回假.not exists则相反. exists做为where 条件时,是先对where 前的主查询询进行查询,然后用 ...

  4. 【C++专题】static_cast, dynamic_cast, const_cast探讨

    首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion ...

  5. Spring Data JPA教程, 第七部分: Pagination(未翻译)

    The previous part of my Spring Data JPA tutorialdescribed how you can sort query results with Spring ...

  6. 集合引入(ArrayList、LinkedList)

    1.引入 代替数组固定大小操作不变 2.ArrayList 常用的操作(add,remove) 3.LinkedList 能实现一些特殊的操作(pop)

  7. 【JDBC】预编译SQL与防注入式攻击

    在JDBC编程中,常用Statement.PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedS ...

  8. C# 解压RAR压缩文件

    此方法适用于C盘windows文件夹中有WinRAR.exe文件 /// 解压文件(不带密码) RAR压缩程序 返回解压出来的文件数量 /// </summary> /// <par ...

  9. PC/UVa 题号: 110101/100 The 3n+1 problem (3n+1 问题)

     The 3n + 1 problem  Background Problems in Computer Science are often classified as belonging to a ...

  10. centos环境配置

    1. centos上安装开发环境 yum groupinstall "Development Tools" "Legacy Software Development&qu ...