Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含J

数组的内存状态,
new出来的在堆里,程序从main开始到结束在栈里。
Java内存分配
●栈
方法运行时使用的内存,
比如main方法运行,
进入方法栈中执行
●堆
new来创建的,
都存储在堆内存

当两个数组指向同一个小空间时,其中一个数组对小空间中的值发生了改变,那么其他数组再次访问的时候都是修改之后的结果了。
方法调用的基本内存原理:细节如下
调用main,加入栈;
main中调用eat(),将eat方法加入栈;
eat中调用study(),将study方法加入栈;

study方法执行输出,结束,study出栈;

回到调用study处,执行输出;
执行sleep,sleep进栈;

sleep执行输出,结束,sleep出栈;

回到调用处,eat结束,eat出栈;
main结束,main出栈。

基本数据类型、引用数据类型的分类和本质

本质:
基本数据类型中变量存储的是真实的数据,传递时传递的时真实的数据

引用数据类型中存储的是地址值。修改了值,其他引用数据也是变化后的值。

面向对象:
1.一些规则

2.对象在内存中的运行机制
03、面向对象:内存机制 P72 - 01:00

- 对象存在堆内存中,其成员变量的数据也存在堆内存中。
- Car c = new Car(); 中c存储的是对象在堆内存中的地址。
3.构造器

4.this关键字
●this关键字是什么?
出现在构造器和成员方法中,代表当前对象的地址。
●this关键字在构造器中、成员方法中可以做什么?
可以用于指定访问当前对象的成员。
5.封装
基本思想是绝对属性和行为归属谁的问题。


6.标准javaBean
也称实体类,为了创建对象,封装数据。
书写要求:
- 成员变量用private修饰;
- 提供成员变量的set get方法;
- 必须提供一个无参构造器,有参构造器可写可不写。
7.成员变量与局部变量的区别

小知识
- 垃圾回收
注意:当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”。
java存在自动垃圾回收器,会定期清理垃圾。
编程思路
1.根据需求分析步骤,再想 1)我要干啥?2)需要啥数据?3)需要返回值嘛? 2.在一堆没有规律的数据中随机抽取,可以先把数据放入数组中,随机抽取索引。
编程习惯
1.写代码写的不要太绝对,防止后面更改需求的时候太麻烦 //如i < sc.length;虽然知道sc.length是6,但为了以后,用sc.length 2. //判断当前奖项是否已经存在,不用flag=0 ,是个很好的思想。 public static boolean isHave(int[] arr, int a){ for (int i = 0; i < arr.length; i++) { if(arr[i] == a){ return true; } } return false; }
IDEA快捷键:
1. alt+回车 创建未定义的方法 addGoods();//用alt+回车创建该方法 private static void addGoods() { } 2. ctrl+alt+T :可以给选中的范围添加surround with。while、if...