一、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,就代表当前调用本函数的对象。