目录
14.什么是嵌套循环?如何跳出循环?你觉得嵌套多了会有什么问题?
15.不写类的构造器可以吗?如果写了类的有参构造器还会有无参构造器吗?
1.面向对象是什么?
面向对象思想概述:
Java是一种面向对象的高级编程语言。
面向对象:是用代码去高度模拟现实世界的事物,从而让软件为任务处理业务,为人类服务。
高级语言:代码看起来很像人类的自然语言。
2.JDK,JRE,JVM有什么区别?
JVM是java虚拟机;我们常说的hotsport是java虚拟机的一种实现. JRE是java最小运行环境;它包含JVM和系统类库. JDK是java最小开发环境;它包含JRE+编译运行工具.
3.Java基本数据类型?
byte(1) short(2) int(4) long(8) float(4) double(8) boolean(1) char(2个字节)
4.在进行小数运算时,可以使用double吗?
对精度要求不高 √
对精度要求较高 ×
例如银行项目中对资金的一些计算,如果使用double可能会丢失精度,导致结果不正确.(可以使用JDK提供的BigDecimal进行计算)
5.什么是逻辑与(&)和短路与(&&)?
A与B 如果A为false 逻辑与继续判断B 短路与则不会继续执行
6.switch...case判断条件可以用字符串类型吗?
在JDK1.7之前只能用整型; 在JDK1.7开始可以用字符串类型;
7.如何定义一个方法
修饰词 返回值类型 方法名 参数列表 方法体
8.你能说明方法中return的用法吗?
方法无返回值时,用于结束方法;
方法有返回值时,用于结束方法并返回值给调用方;
9. 面向对象三大特征是什么?
封装:
封装的作用: 1.可以提高安全性。 2.可以实现代码的组件化。 封装的规范: 1.建议成员变量都私有:用private修饰。 private修饰的方法,成员变量,构造器等只能在本类被直接访问。 2.提供成套的getter+setter方法暴露成员变量的取值和赋值。 public修饰符,是公开的意义。 封装的核心思想:合理隐藏,合理暴露。
继承:
继承的作用? “可以提高代码的复用”,相同代码可以定义在父类中。 然后子类直接继承父类,就可以直接使用父类的这些代码了。 (相同代码重复利用) 子类更强大:子类不仅得到了父类的功能,它还有自己的功能。 继承的特点: 子类继承了一个父类,子类就可以直接得到父类的属性(成员变量)和行为(方法)了。
多态:
多态的形式: 父类类型 对象名称 = new 子类构造器; 接口 对象名称 = new 实现类构造器; 父类类型的范围 > 子类类型范围的。 多态的概念: 同一个类型的对象,执行同一个行为,在不同的状态下会表现出不同的行为特征。 多态的识别技巧: 对于方法的调用:编译看左边,运行看右边。 对于变量的调用:编译看左边,运行看左边。
10.重写和重载有什么区别?
重写发生在父子类,方法名相同,参数列表相同 重载方式在同个类,方法名相同,参数列表不同
11. 接口和抽象类有什么区别?
接口只可包含抽象方法和常量(jdk1.8之前),接口与接口是多继承关系,类与接口是多实现关系. 抽象类可包含抽象方法和其他方法,类与类是单继承关系.
12.Java常用的循环方式有哪些?
while 可能一次都不执行 do...while 至少会执行一次 for 可能一次都不执行
13. break,continue有什么区别?
break 用于结束循环 continue 用于结束本次循环
14.什么是嵌套循环?如何跳出循环?你觉得嵌套多了会有什么问题?
嵌套循环:循环套循环 跳出循环:使用 outer: 标签定义循环,使用break outer跳出整个循环 嵌套循环一般控制在3层以内,如果嵌套太多可读性不好,并且可能存在设计问题
15.不写类的构造器可以吗?如果写了类的有参构造器还会有无参构造器吗?
不写任何构造器 默认有无参构造器 写了有参构造器 不会有无参构造器
16.类的构造器可以被重写,重载吗?
构造器不可以被重写,但是可以被重载
17.基本类型"=="和引用类型"==" 有什么区别?
"==":是否相同 基本类型比较的是 值 引用类型比较的是 堆地址
18.你能说说Java中this和super关键字吗?
this 代表了当前对象的引用(继承中指代子类对象): this.子类成员变量。 this.子类成员方法。 this(...):可以根据参数匹配访问本类其他构造器。 super 代表了父类对象的引用(继承中指代父类对象空间): super.父类成员变量。 super.父类的成员方法。 super(...):可以根据参数匹配访问父类的构造器。
19.请说说final关键字
final用于修饰:类,方法,变量。 1.final修饰类 类不能被继承了。 2.final可以修饰方法 方法就不能被重写了。 3.final修饰变量 变量有且仅能被赋值一次。 final和abstract的关系? 互斥关系,不能同时修饰类或者同时修饰方法!!
20.请说说static关键字
Java是通过成员变量是否有static修饰来区分是类的还是属于对象的。 static == 静态 == 修饰的成员(方法和成员变量)属于类本身的。 成员变量有2种 -- 有static修饰的属于类叫静态成员变量,与类一起加载一次,直接用类名调用即可。 -- 无static修饰的属于类的每个对象的叫实例成员变量, 与类的对象一起加载,对象有多少个,实例成员变量就加载多少份。必须用类的对象调用。 成员方法有2种: -- 有static修饰的属于类叫静态方法,直接用类名调用即可。 -- 无static修饰的属于类的每个对象的叫实例方法,必须用类的对象调用。 静态变量和静态方法存在于方法区(元空间)中