黑马程序员技术交流社区

标题: 基础班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