1:java 的最大特点及实现原理
跨平台/可移植性是Java的核心优势,面向对象,安全性,多线程
跨平台是靠JVM(虚拟机)实现的。
2:定义变量的本质,格式。
变量的本质就是代表一个可操作的存储空间,空间位置是确定的,但是里面植入什么值不确定。格式: type varName [=value ][,varName[=value]]
3:数据类型
数据类型:
–基本数据类型,引用数据类型
–基本数据类型:数值型;字符型(char);布尔型(boolean)
数值型: 整数类型(byte,short,int,long)
浮点类型(float,double)
字符型:(char)
布尔型:(boolean)
–引用数据类型: 类(class)接口(interface)数组
4:常量的分类,以及注意的问题。
整型常量:在计算机中准确表示的(十进制,八进制,十六进制)
实型常量;Java 实型常量默认在内存中占 64 位,是具有双精度型(double)的值
布尔型常量;布尔型常量只有两个值,false/true
字符型/字符串型常量: Java 字符串常量值中的单引号和双引号不可混用
5:char 类型的三种赋值方式
使用单引号:‘单引号’
十进制赋值:0~65535,直接赋值
八进制赋值:O000000~O177777,首位有O 表示八进制
十六进制赋值:0x0000~0xffff,首位以0x表示十六进制
6:自增,自减运算符的特点。
int i=0; //定义一个数值型变量i
++i; //先将i+1,然后再赋值
i++; //先将i赋值,然后再+1
–i; //先将i-1, 然后再赋值
i–; //先将i赋值,然后再i-1
7:自动类型转换的规则
容量小的数据类型可以总动转换为容量大的数据类型
可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出表示范围即可
8:float 和 double 的特点
float单精度,占用4个字节,可精确到小数点后7位有效数字
double双精度,占用8个字节。精确小数点位数后比较高
9:while 和 do while 的区别
while:先判断布尔表达式是否循环,
do_while:先循环一次,然后再判断布尔表达式,决定是否再循环
10:while 和 for 的选择使用依据。
有限循环优先选择用for,for循环一般对于循环次数已知的情况下
无限循环优先选择用while,而while一般用于对循环次数无知的情况下。
11:switch 的用法特点,注意问题
根据表达式传进来的参数值的不同,可以执行不同的操作
12:break 的使用特点
13:continue 的使用特点
跳过本次循环
14:return 的使用特点
返回参数;
15:方法出现的意义
方法用于定义该类或该类的实例的行为特征和功能实现
16:方法的定义
public static 返回类型 方法名([参数类型 变量,参数类型 变量, …]){
方法体代码;
return[返回值];
}
17:自定义方法,实现创建指定长度和元素取值区间的数组。
Public static int[] getRandomArray(int length, int min, int max){
}
18: 变参方法自学。
19:数组定义,初始化方式,特点。。
定义:十足十相同类型数据的有序集合,数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成,每一个数据可成为该数组的一个元素,我们可以通过该元素的下标来访问。
初始化方式:静态初始化:动态初始化,默认初始化
静态初始化:int[] a1 = {1,2,3,4,5,6,7,8,9}
动态初始化:int[] a2 = new int[2];
a2[0] = 1; a2[1] = 2;
默认初始化:int[] a3 = new int[3] //默认赋值 {0,0,0}
特点: 1,长度是确定的,数组一旦被创建,它的大小就是不可改变的
2,该数组内的所有元素必须是相同类型,不能有混合类型
3,数组类型可以是任何数据类型,包括基本类型和引用类型
20:类、对象、构造方法、成员变量、成员方法
类:public class 类名{}
构造方法:constructor,用于对象的初始化,也称构造器,构造器是一个创建对象时被自动调用的特殊方法,为了是对象的初始化。构造方法名应与类名一致。
构造方法通过new关键字调用,构造方法有返回值,但不能定义返回值类型,,
成员变量:在类体的变量部分中定义的变量,
成员方法:在类体的变量部分中定义的方法
21:this、static 、super 用法。
this: 当成员变量与局部变量同名时,用来区分成员变量和局部变量, 在构造函数中调用构造函数
static: 被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来
super:访问父类/调用父类
22:方法重载,构造方法重载的意义。
就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,或者参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法
降低模型的复杂程度,可以使不同的参数类型共同使用同一个方法,提高通用性。
23:封装、继承、多态。
封装:对繁琐复杂的内容(程序)进行整合,然后以简单的操作去使用
继承:子类继承父类后,可以访问父类中的全部变量,可以使用父类中未被私有化的成员变量/方法
多态:值得是同一个方法调用,由于对象不同,可能会有不同的行为,同意i俄国方法,具体实现会完全不同。多态是方法的多态,父类引用指向子类对象后,用该父类引用调用子类重写的方法。
24:final 关键字的使用
final修饰变量:被修饰的变量不可改变,一但赋值,则不能重新赋值
final修饰方法:该方法不可被子类重写,但能被重载
修饰类:修饰的类不能被继承。
25:抽象类、抽象方法
抽象方法:使用abstract修饰的方法,没有方法体,只有声明,定义的是一种“规范,告诉子类必须要给抽象方法提供具体的实现。”
抽象类:包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。可以通过严格限制子类的设计,是子类之间更加通用
26:接口
可以更加规范的对子类进行约束,全面地专业的实现:规范和具体实现的分离。接口和实现类是实现规则关系。
27:内部类几种。
静态嵌套类/成员内部类/局部方法内部类/匿名内部类
28:java.lang.Comparable \ java.util.Comparator 两个接口的使用
java.long.Comparable: 此接口强行对实现它的每个类的对象进行整体排序,这种排序成为类的自然排序,方法名为compareTo,称为自然比较方法,实现此接口的对象列表可以通过Collections.sort()/Arrays.sort()进行自动排序
java.util.Comparator:java.util.Comparator接口为一个比较器接口,它提供了一个自定义的比较规则的方法,所以根据需要对不支持比较的对象按自己的逻辑进行排序,一般与Collection.sort()方法一起使用
29:异常体系,分类、处理方式
Java把异常作为一种类,当作对象来处理。所有的异常类的基类是Throwable类,两大子类分别是Error和Exception.这些异常可以分为三种类型:系统错误,异常和运行时异常。系统错误有Java虚拟机抛出,用Error表示。Error类描述的是内部系统错误。异常Exception又分为RuntimeException(运行时异常)和CheckedException(检查异常)。
RuntimeException:程序运行过程中出现错误,才会被检查的异常。
CheckdeException:来自于Exception且非运行时异常都是检查异常,编译器会强制检查并通过try-catch快来对其捕获,或者在方法头声明该异常,交给调用着处理
处理方式:若是运行时异常,则表明程序出错,应该找到错误并修改,而不是对其捕获。若是检查异常,遵循该原则:谁知情谁处理,谁负责谁处理,谁导致谁处理。处理就是对其捕获并处理try{}catch{}
30:常用类。
Object(祖宗)
String类/StringBuffer类/StringBuilder/interesting int对象包装/System系统类/Runtime运行时环境类/Math 数学运算工具类/Date日期类/Calendar日历类/File 文件类