javaSE知识点总结

64 阅读4分钟

1.基本数据类型有哪些?内存大小?
byte-1 short-2 int-4 long-8 float-4 double-8 char-2 boolean-1/4

2.基本数据类型的自动转换? 隐式转换:数据范围小的向数据范围大的转换 显示转换:数据范围大的向数据范围小的转化

3.变量和常量的区别?
变量:程序在运行过程中可能会改变的量 常量:程序在运行过程中不会改变的量

4.基本数据类型和引用类型的区别? 基本数据类型存储的是值,引用类型存储的是地址; 基本数据类型不面向对象,引用类型面向对象

5.++前置和后置的区别?
++i:i先自增,后赋值给表达式 i++:i先赋值给表达式,后自增

6.%可以对小数求余吗?%可以对负数求余吗? 可以,但精度可能会降低 可以

7.什么是短路运算?
逻辑运算符号的左边已经可以确定结果时,逻辑运算符号的右边式子便不再执行

8.&和&&运算符的区别?
在java中,&既是逻辑运算符又是位运算符 &&是逻辑运算符,且当&&左边的式子结果为false时,右边式子不再执行

9.如何快速计算乘以2的n次方?
算术左移n次 <<

10.while和do…while的区别?
while先判定条件,后执行循环语句 do...while先执行循环语句,后判定条件

11.break和continue的区别?
break直接退出循环 continue跳过本次循环

12.如何跳出多重循环? ①给代码块一个标识(break demo;) ②共锁

13.什么是死循环/无限循环? 无限循环是有意义的,是有意而为之,死循环是无意义的,错误的

14.数组的初始化有哪两种方式?
①静态初始化 ②动态初始化

15.二分查找算法?时间复杂度?
o(logn)

16.十大排序算法有哪些? 冒泡、插入、选择 希尔排序、快排、归并排序、堆排序 计数排序、基数排序、桶排序

17.快速排序的算法思想?时间复杂度? o(nlogn)

18.什么是递归调用?
自己调用自己

19.什么是可变参数? 就是方法的参数可变 方法名(int... num) (①必须放在最后一个②只能有一个)

20.面向对象三大特性? 封装、继承、多态

21.什么是重载?
同一个类中重载自己的方法,方法名相同,参数列表不同(类型、个数、顺序)

22.什么是重写?重写的限制有哪些?
子类重写父类的方法; 限制:①修饰符范围要更大②返回值类型要更精确

23.重载与重写的区别? 重载主要是自己重载自己的方法,即同一个类中,可以存在方法名相同,但参数列表不同的方法; 重写主要是子类继承父类,重写父类的方法;

24.权限修饰符有哪些?访问范围? 同一个类中 同一个包下 子孙类(同一包) 子孙类(不同包) 其他 public √ √ √ √ √ protect √ √ √ √/×(只能通过子类实例访问其基类的protected) default √ √ √ private √

25.接口的抽象类的区别? ①抽象类可以有自己的属性和实体方法,接口没有,JDK1.8后,接口有静态 ②抽象类有构造方法,接口没有 ③抽象类用来被继承,接口用来被实现 接口属性:默认 public staic 接口方法:默认public abstract,也可以有静态方法

26.抽象类和抽象方法的关系? 有抽象方法的类一定是抽象类,抽象类不一定有抽象方法

27.如何理解单继承多实现?
一个类只能继承一个父类,但可以实现多个接口

28.接口可以继承吗?接口的继承是单继承吗? 接口可以被接口继承。 接口的继承是多继承

29.static关键字的作用? static修饰的属性和方法从属于类,其生命周期和类相同

30.final关键字的作用?
①对类:类不能被继承 ②对属性:属性不能被重新赋值,但arr[0]=num;数组里面的值可以被修改 ③对方法:方法不能被重写,但可以被重载

31.abstract能与final联用吗?为什么? 不能。 abstract修饰的方法说明要被重写实现,但final修饰的方法说明方法不能被重写,冲突

32.this和super的作用? this是当前对象的引用,super是当前对象里的父对象的引用