(不破不立)迎战秋招面试题第一天(基础篇)
基础篇
1、java语言的特点?
- 面向对象:封装、继承、多态
- 跨平台:java虚拟机实现平台无关性
- 核心类库:集合容器、县城相关类、IO/NIO、异常和安全办等类库
2、java的三大特征?
2.1、封装
封装就是将类的成员属性声明为私有的,用get、set实现。同时提供公共的方法并提供对外访问的接口。
封装的好处
-
隐藏内部细节 -
限制不合理操作 -
增加代码的复用性 -
模块化(属性、方法、类)
2.2、继承
从已知的一个类中派生出一个类,叫子类。子类实现了父类所有非私有化属性和方法,并能根据自己的实际需求扩展出新的行为。
继承的好处
- 继承是传递的,容易在基础上构造,简历和扩充出新的类、
- 简化了人们对实物的认识和描述,能清晰体现相关之间的层次结构关系。
- 避免代码的冗余,减少代码的重复
- 打打增加了代码的可维护性
2.3、多态
多态的概念:多个不同的对象同一消息做出响应,统一消息根据不同的对象而采用各种不同的行为方法。
多态的好处
- 主要是利于扩展
- 消除类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性。
多态是多种形态,父类可以引用指向多个子类对象
多态就是同一个接口,使用不同的实例而执行不同操作。
关键词:instanceof:运算符判断是否属于哪一个类型,然后进行强制转换。
有三种类型
父类作为返回值类型,小转大。 父类作为参数 父类作为方法的返回值。
多态存在的三个必要条件:继承和重写。
3、java有哪些数据类型?
3.1、基本数据类型
- 字符型:char
- 布尔型:boolean
- 数值型:
- 整数类型:
- byte(1字节,8位)
- short(2字节,16位)
- int(4字节,32位)
- long(8字节,64位).
- 浮点类型:
- float(4字节,32位)
- double(8字节,64位)
- 整数类型:
3.2、引用数据类型
- 类:class
- 接口:interface
- 数组:[]
金融项目中常用的数值类型
BigDecimal
java.math的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
4、包装类型的常量池技术了解么?
- java基本类型的包装类的大部分都实现了常量池技术。
- Byte,Short,Integer,Long 这四种包装类默认创建了数值[-128.127]的响应类型的缓存数据。
- Cgaracter 创建了数值在[0,127]范围的缓存数据。
- Boolean 直接返回 True of False。
- 如果超出对应范围会去创建新的对象
- 两种浮点数类型的包装类Float,Double并没有实现常量池技术。
- 推:所有整型包装类对象之间的比较,全部使用equals()方法比较
5、什么是自动装箱与拆箱?原理是什么?
- 拆箱:将基本类型用它们对应的引用类型包装起来;
- 装箱:将包装类型转换为基本数据类型;
- 从字节码中分析,装箱其实就是调用了包装类的valueOf()方法,拆箱其实就是调用了xxxValue()方法。
- 注意:如果频繁拆装箱的话,也会严重影响系统的性能。我们应该尽量避免不必要的拆箱装箱操作。
PS:每日一看