1.列举全部的java基本类型
整型:byte、short、int 、long
浮点型:float、double
字符型:char
布尔型:boolean
这些基本数据类型开头大写,就变成了封装类。
例如Long,是封装类,不是基本数据类型
2.重载与重写
重写:1)发生在子父类中
2)方法名、参数列表、返回值类型均相同
3)方法体不同
4)权限修饰符可以不同,但是子类重写方法的修饰符权限必须比父类
重载:是指在同一个类中,方法名相同的方法调用。通过参数(参数个数不同、参数数据类型
不同,参数顺序不同(参数的数据类型需要不同))区分方法名相同的方法此处参考
1)发生在同一个类中
2)方法名相同
3)参数列表不同(类型,个数,顺序)。注意,参数列表跟参数名称没有关系
4)不能用方法的返回值类型作为重载的依据(参数列表是重载的唯一依据)
3.面向对象三要素:继承、多态、封装
4.StringBuffer(线程安全)、StringBuilder、String
1)修改String的值,内存地址会改变(产生新的对象,原对象被销毁)
2)修改StringBuffer的值,不会产生新的对象,即内存地址不会改变
3)StringBuffer是线程安全的,StringBuilder是线程不安全的
4)StringBuilder的执行速度比StringBuffer更快
5.接口:set、List
set接口对象不重复、无序
List接口对象重复、有序
6.ArrayList与与linkedList
1)ArrayList是基于动态数组的,在未声明长度时,默认长度为10.当数组填满时,会自动扩充原
数组长度的50%
2)linkList是基于链表的
3)在查找元素时,ArrayList支持随机访问,查找速度优于linkList
4)在增删元素时,linkList基于链表,通过修改指针增删,速度优于ArrayList
7.Map存储键值对
8.final:
final修饰的类不能被继承、
修饰的方法不能重写
final修饰常量,常量值不能被修改,且常量名称必须为大写(final修饰的变量为局部变量或者成员变量(成员变量在定义时被赋值,或者用构造函数赋值))
9.static
static声明的变量只能初始化一次
静态全局变量
静态方法只能调用静态资源,静态资源可以直接通过类名调用
10.java的相等性规则
1)==:比较基本数据的值是否相等;比较引用型的内存地址是否相等
2)equals():默认的equals方法与 = =一样,比较的是内存地址;String的equals比较的是值是否相等
1.append(),相当于+
2.static静态资源先于main资源加载,多个静态资源顺序加载。
static int a =1;//静态变量
static{…} //静态块
4.this和super
5.不属于类的构造方法:
可以直接通过类名调用的只有静态成员
6.+=会强制类型转换
多种数据类型混合运算时,会先低精度向高精度转换
强制类型转换发生在:高精度向低精度转换;+=等强制类型转换符
10.分号是断句,一句话
1.System.out.println()时,
字符串在前面,后面的+都是字符串拼接
字符串在后面,前面的+是加减乘除
2.静态资源先被加载
先加载父类,再加载子类
创建对象时,先加载构造方法
3.int arr[3] ={1,2,3};
4.==是去判断内存地址
5.try中没有异常,就不会走catch,但不管有没有异常,都会走finally
6.System.out.println()会打印换行。
选择第一题:
String和StringBuffer:
String变量不可以改变
对于String s = “abc”;
s+=“d”; 第一句创建了一个s变量,第二句话其实是开辟一个新的内存空间,创建了另一个变量,值为abcd;前面的abc被回收。
所以String效率很低,数据量小的时候适合用
而StringBuffer是字符串变量



