Java知识点总结
1、Java中的数据类型有哪些?
基本数据类型
- byte
- short
- int
- long
- float
- double
- boolean
- char
引用数据类型
- 接口Interface
- 数组Array
- 枚举 Enum
- 注解Annotation
2、如何实现Java中的多态? 一个对象的多种形态
通过使用继承、抽象(接口)、重写Override来实现
public interface Animal {
void move();
}
public class Main implements Animal{
public static void main(String[] args) {
new Main().move();
new Bird().move();
new Cat().move();
}
@Override
public void move() {
System.out.println("动物在移动");
}
}
class Bird extends Main{
@Override
public void move() {
System.out.println("小鸟在移动");
}
}
class Cat extends Main{
@Override
public void move() {
System.out.println("小猫在移动");
}
}
3、Java中try-catch机制是什么?有什么用处?
try-catch为异常处理机制,类似于检测器,出问题进行检测,保证程序的运行
4、Java中异常处理有哪些常见的异常?
编译时异常,运行时异常
常见异常
1、空指针异常 NullPointException
2、数组下标越界异常 ArrayIndexOutOfBoundsException
3、算数异常 ArithmeticException
…
5、什么是Java中的接口?为什么要使用接口?
接口本质是抽象 ,具体是要对各个不同类型的事物进行分出,其中具体事物的不同状态
接口是一种抽象类型,它定义了一组方法, 但不定义方法的实现,接口不能实例化对象,只能
通过类来实现接口,类实现接口时必须实现接口中定义的所有方法,否则这个类就必须定义为抽象类
使用接口的原因:
1、多继承,接口可以实现多继承的效果,一个类也可以实现多个接口
2、抽象:抽象和实现是分开的,
3、灵活性:接口可以使代码更灵活,方便拓展及维护
4、统一标准,接口可以统一系统中不同类的标准,使代码符合规范
6、Java中的泛型是什么?它的用处是?
由于平时书写代码时,有时候我们并不清楚我们具体需要使用什么类型,在此我们使用泛型对于需要使用类型的
一种替代,做到方便程序员分类的目的
7、什么是Java中的自动拆箱和自动装箱
(基本数据类型和封装数据类型的转换)
Integer integer = new Integer(10);//自动装箱 int --> Integer
int it = integer.intValue();//自动拆箱 Integer --> int
8、请简述一下Java中的多线程
实现多线程有两种方式
1、继承Thread类 重写run方法(不写看不到东西)
2、实现(implement) Runnable接口 重写run方法(强制)
如何启动线程?
一种方式两种状态
1、创建需要进入线程的对象
2、创建Thread对象,把需要进入线程对象装配到其中
3、调用start()方法
1、创建线程对象
2、创建需要进入线程的对象
3、把对象引用传入到线程对象中
4、调用start()方法
9、什么是面向对象?
当前编程方式分为面向过程和面向对象,面向过程投入时间对比面向对象要少
同时,面向过程的耦合度也高于面向对象,不利于程序的拓展性,同时也不符合OOP原则
10、面向对象的三大特征是什么?
封装、继承、多态
11、什么是封装?它的好处是什么?
private int date;//private修饰
public int getDate(){return date;}
public void setDate(int date){this.date = date;}
好处:不然用户直接访问数据,需要通过set/get访问,变相提高了数据的安全性
11、什么是继承?它的好处是什么?
- 继承"基本"作用是代码复用
- 继承最重要的作用是:有了继承才有以后"方法的覆盖"和"多态机制"
- 继承能够继承的东西:
- -私有的不支持继承
-构造方法不支持继承
-其他数据都可以被继承
12、什么是多态?它的好处是什么?
一种事物的不同形态
好处:推进了事物的多元化
13、什么是抽象类?它与接口有什么区别?
public interface Date { //接口
}
abstract class Date { //抽象类
}
13、什么是抽象类?
类和类之间具有共同特征,讲这些共同特征提取出来,形成了的就是抽象类。
类本身是不存在的,所以抽象类无法创建对象《无法实例化》
14、抽象类属于什么类型?
抽象类也属于引用数据类型。
15、抽象类怎么定义?
语法:
[修饰符列表] abstract class 类名{
类体;
}
16、抽象类特点
- 抽象类是无法实例化的,无法创建对象的,所以抽象类是用来别子类继承的
- final和abstract不能联合使用,这两个关键字是对立的
- 抽象类的子类可以使抽象类
- 抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是提供给子类使用的
- 抽象类关联到一个概念:抽象方法
- 抽象方法表示没有实现的方法,没有方法体的方法 抽象类当中不一定有抽象方法,抽象方法必须出现在抽象类中
17、什么是方法重载?
class Bird extends Main{
@Override
public void move() {
System.out.println("小鸟在移动");
}
}
class Cat extends Main{
@Override
public void move() {
System.out.println("小猫在移动");
}
}
18、什么是接口?它的好处是什么?
1、接口也是一种"引用数据类型"。编译之后也是一个class字节码文件
2、接口是完全抽象的。(抽象类是半抽象) 或者可以说是特殊的抽象类。
3、接口怎么定义 [修饰符列表] interface 接口名();
4、接口支持多继承,一个接口可以继承多个接口
5、接口中只包含两部分:
一部分是:
常量
一部分是:
抽象方法
6、接口中所有的元素都是public修饰的(公开的)
7、接口中的抽象方法定义是:public abstract修饰符可以省略
在接口中存在常量:public static finnal int PI = 3.1415926;
public static final这段修饰符可以省略
因为无论怎么写最后都是常量,并且final是不可变的
8、接口中的方法都是抽象方法
接口中的方法不能有方法体
什么是抽象方法?
public interface Animal {
void move();
}
19、什么是静态代码块?它的用处是什么?
static{
String date = "静态代码块";
System.out.println(date);
}
作用:让一些常量、变量初始化
注:类中静态语句块仅在类加载时被执行一次
20、请简要描述 Java 的关键字super 和 this 的作用。
super()只能出现在构造方法第一行,通过当前的构造方法去调用"父类"
中的构造方法,目的是:创建子类对象的时候,先初始化父类型特征
21、什么是包装类?它的作用是什么?
Integer i = 300;//自动装箱 int -自动转换-> Integer
int i1 = i;//自动拆箱 Integer -自动转换-> int