黑马程序员技术交流社区
标题:
基础班day05-07个人知识点总结
[打印本页]
作者:
刻苦的小黑马
时间:
2018-6-12 13:35
标题:
基础班day05-07个人知识点总结
day05
一、数组
一种容器,可以存放多个数据值
特点:
1.数组是一种数据类型
2.数组当中的多个数据,类型必须统一
3.数组的长度在程序运行期间不可改变
动态初始化数组
数据类型[] 数组名称 = new 数据类型[数组长度];
静态初始化数组
数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...}
静态初始化省略格式
数据类型[] 数组名称 ={元素1,元素2,...}
索引:一个int数字,代表数组当中元素的编号
【注意】索引值从0开始,一直到"数组的长度-1"为止
数组赋值
数组名称[索引值] = 数据值;
使用动态初始化的时候其中的元素将会有一个默认值,规则如下:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为'\u0000';
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null;
获取数组长度:数组名.length
二、java内存划分为个部分:
1.栈(Stack):存放的都是方法中的局部变量
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超过作用域,立即从栈内存中消失
2.堆(Heep):凡是new出来的东西,都在堆内存当中
堆内存里面的东西都有一个地址值:16进制
堆内存里面的数据,都有默认值,规则:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为'\u0000';
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null;
3.方法区(Method Area):存储.class相关信息,包含方法的信息
4.本地方法栈(Native Method Stack):与操作系统相关
5.寄存器(pc Register):与CPU相关
方法中,任何类型都可以做参数,任何类型都可以做返回值
数组做参数的时候 地址传递
数组做返回值的时候 地址传递
day06
面向过程:强调步骤
面向对象:强调对象
一、类:是一组相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
属性:该事物的状态信息
行为:该事物能做什么
二、局部变量和成员变量
1.定义的位置不一样
局部变量:定义在方法中
成员变量(属性):直接定义在类当中,在方法外面,不需要写static关键字
2.作用范围不一样
局部变量:只有方法当中才可以使用,出了方法就不能用
成员变量:整个类全部可以通用
3.默认值不一样
局部变量:没有默认值,如果要使用,必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样
4.内存的位置不一样
局部变量:位于栈内存
成员变量:位于堆内存
5.生命周期不一样
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失
成员方法:不要static关键字
写在没有main方法的类中
普通方法写在有main方法中的类中
三、标准的类 java bean
private 私有的,被private修饰的成员变量和成员方法只能在本类中访问
this this.成员变量名(对象自己的引用)
构造方法:
public 类名称(参数列表){
方法体
}
注意:
如果没提供构造方法,系统会给出无参构造方法
如果提供了构造方法,系统将不在提供无参构造方法
构造方法可以重载,既可以定义参数,也可以不定义参数
示例:
public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}
day07
一、API文档
1.从搜索框填写需要查找的类
2.看类的包路径
3.看构造方法
4.看方法
二、使用java定义好的类
1.导包
import 包路径.类名称
2.创建
类名称 对象名 = new 类名称();
3.使用
对象名.成员方法名();
三、匿名对象:只有右边的对象,没有左边的名字赋值运算符
格式:new 类名称();
注意:匿名对象只能使用唯一的一次,下次再用不得不创建一个新对象
四、Scanner类
包 util
int nextInt();
String next();
使用:Scanner sc = new Scanner(System.in);
注意: 先获取一个数值,再获取一个字符串,会出现问题
解决方案:1.先获取一个数值后,再创建一个新的键盘录入对象获取字符串
2.把所有的数据都先按字符串获取,然后要什么,就对应转换为什么
五、Random类
包 util
int nextInt();
int nextInt(int a);
六、ArrayList<E e>
包 util
创建对象
ArrayList<引用数据类型> 集合名 = new ArrayList<>();
boolean add(引用数据类型 变量名);
引用数据类型 remove(int index);
引用数据类型 get(int index);
int size();
ArrayList<>做方法的参数和返回值
注意事项:
1.ArrayList 的尖括号中只能用【引用类型】 不能用基本数据类型
2.ArrayList 尖括号中的类型一旦确定,下面添加的数据必须和尖括号中的类型一致
七、系统错误
编译错误:在IDea中出现红色下划线的 不能运行
运行错误:在IDea中没有错误,可以运行,但是在控制台会打印错误
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2