Java学习笔记

 一、Java的内存需要划分为5个部分:

1、栈(Stack):存放的都是方法中的局部变量。          //自动释放

            局部变量:方法的参数,或者是方法{}内部的变量

            作用域:一旦超出作用域,立刻从栈内存当中消失。   

2、堆(Heap):凡是new出来的东西,都在堆当中。        //程序员手动清除释放,由JAVA虚拟机中垃圾回收器清除

            堆内存里面的东西都有一个地址值:16进制

            堆内存里面的数据,都有默认值。规则:如果是整数,默认为0    浮点数默认为0.0    字符默认为..    布尔值默认为false  引用类型默认为null

简言之是:在堆中创建了一个数组或对象后,在栈中创建一个特殊变量,特殊变量指向堆中数组或对象的首地址值,以便访问堆中的数据

3、方法区: 存储.class相关信息,包含方法的信息

4、本地方法栈:与操作系统相关

5、寄存器:与CPU相关

ps: 方法区的函数要执行,必须使它入栈

 

example如上:(9月7日解读!!!)

 

二、Java面向对象oop

2.1 类和对象

类包括属性和行为,例如:猫--> 属性:名字、体重、年龄、颜色       行为:走、跑、叫   类名更像是我们要实现的目标

成员变量(属性):

string name;   //猫姓名

int age;   //猫年龄

成员方法(行为)

public void eat() {}   //成员函数不加static    

对象:是一类事物的实例,是具体的(类是一类事物的描述,是抽象的)

 

封装性:1、方法就是一种封装

               2、关键字private也是一种封装

封装就是将一些细节信息隐藏起来,对于外界不可见

 

this关键字:当方法的局部变量和类的成员变量重名时,根据就近原则,优先使用局部变量

                    这时候就可以用this.name指向当前对象的变量

 

构造函数:分为无参构造函数、全参构造函数,不设返回值

 

只有java.lang下的内容不需要导入

Scanner sc = new Scanner (System.in);   //system.in表键盘输入

 匿名对象每次都相当于是新建,适用于只需要使用一次的对象

 

字符串常量池:双引号直接写的字符串在常量池中,新建的不在,但同在堆中!

 

静态static关键字!

 

final关键字:1、修饰参数时,只允许被赋一次值,不能被修改;如果是方法成员参数,则是在生命周期内无法被改变!

                     2、修饰方法时,表示该方法不能被覆盖

                     3、修饰类时,表示该类无法被继承(2,3要谨慎使用)

posted @ 2020-09-06 21:38  热爱前端的韩梅梅  阅读(100)  评论(0编辑  收藏  举报