java基础总结2
2018-11-03 本文已影响0人
Lobo_asd
1. 数组
1.1定义:
数组是编程语言中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常可通过数组元素的索引来访问数组元素,包括为数组元素赋值和取出数组元素的值。
1.2数组的特点:
- 一个数组内的所有数组元素具有相同的数据类型
- 一旦数组初始化完成,数组所占的内存空间将被固定下来,因此数组的长度将不可改变,但是数组中的数据是可以改变的
- 数组即可以存储基本类型的数据,也可以存储引用类型的数据,比如String
- 数组本身也是一种数据类型,属于引用类型的。比如int属于基本类型,但是int[] 则是引用类型
- 数组的每个元素都对应一个下标,下标是从0开始计算的,即下标0对应的是第一个元素、下标1对应的而是第二个元素,依次类推。
1.3 初始化
- 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组的长度
- 动态初始化:初始化时由程序员指定数组的长度,由系统为数组元素分配初始值,但是程序员
1.4 排序
- 冒泡排序口诀:
N个数字来排队
两两相比小靠前
外层循环N-1
内存循环N-1-i - 选择排序
- 插入排序
2. 类
2.1 属性:全局变量/成员变量
* 全局变量:创建对象,会给默认值的
* 整数类型:0
* 浮点类型:0.0
* 字符型:' '
* 布尔型:false
* 引用数据类型:null
* 局部变量:方法中的变量
* 全局变量 vs 局部变量
* 全局变量作用域在整个类里
* 局部变量作用域在方法里
*
* 全局变量有默认值
* 局部变量没有默认值
* 局部变量必须有值,才能使用
2.2 构造方法:与类名相同,且没有返回项的方法
应用场景:初始化数据
ps:无参构造 -- java会在没有其他的构造方法的情况下,默认实现
2.3 代码块
- 每次创建该类的对象,都会被调用,且优先级别比构造方法高
- 应用场景:初始化数据
- 代码块 vs 构造方法
代码块:初始化数据,调用一些属性或方法初始化
构造方法:可以从外界传入数据
2.4 访问修饰符:
- public -- 公有的
- private - 私有的
- protected - 受保护的
- private
修饰属性:属性不能被外界调用
修饰方法:方法不能被外界调用 - protected
修饰属性:属性只能被本类和子类调用
修饰方法:方法只能被本类和子类调用
- private
2.5 this关键字
this:本对象
- 调用属性:调用本对象的属性
- 调用方法:调用本对象所属类的方法
- 调用构造方法:调用别的构造方法
- ps:
调用构造方法不能在普通方法中调用
在A构造方法中,调用B构造方法,必须写在第一句
2.5 static关键字:静态的
* 1.修饰属性:类属性(这个属性不属于任何对象)
* ps:全局变量每个对象独享一份,静态全局变量每个对象都共享
* 生命周期:
* 创建 -- 导入字节码文件,系统会扫描字节码文件,把静态全局变量加载到静态常量区
* 销毁 -- 项目结束时
* 应用场景:static + fianl
*
* 2.修饰方法:类方法(这个不方法不属于任何对象)
* ps:静态方法只能调用静态的全局变量
* 应用场景:工具类
* 3.静态代码块
* static{}
* ps:
* 1.在加载类的.class文件时,调用静态代码块
* 2.静态代码块只执行一次
* 3.类的.class文件只加载一次
* 应用场景:初始化数据
* 构造方法 vs 代码块 vs 静态代码块
* 应用场景的区别:
* 构造方法:初始化从外界传入的数据
* 代码块:初始化固定数据(每创建一个对象都被调用)
* 静态代码块:初始化固定数据(类加载时,被调用)
* 优先级别的区别:
* 静态代码块 > 代码块 > 构造方法
2.6 final关键字 : 最终
- 修饰变量 -- 常量
- ps:
1.存储在常量池中,并且要等到整个项目销毁时,常量才会被消费
2.常量全部大写,单词之间用下划线隔开ps: CLASS_ID
2.修饰方法:方法不能被重写
3.修饰类:类不能被继承
2.7 继承
子类通过extends关键字继承父类,可以使用父类的非私有属性和方法,当子类方法和父类相同时,则重写父类方法。
2.8 super关键字
super:父类对象
- 调用属性:调用父类对象的非私有属性
- 调用方法:调用父类对象所属类的非私有方法
- 调用构造方法:调用父类的非私有构造方法,有参无参均可
- ps:
子类只能在构造方法中调用父类的构造方法,且必须写在代码块的第一排