java分装_java

1. 冒泡排序的优化算法

(1) 冒泡排序的基础算法有哪些缺点?

运算过程存在重复操作(判断的重复)

(2) 可以从哪几个方面来对基础算法进行优化?

运算方法的简化

2. 二分法

(1) 折半查找算法的原理是什么?

有序排列中 折中比大小

(2) 简述如何进行折半查找?

(第一个数索引+最后一个数的索引)/2的数进行比较

大于去右边找 小于去左边找

3. 异常概念_分类

(1) 什么叫异常?

程序在运行过程所发生的不正常的事件 会中断正在运行的程序

(2) 请简述异常的分类?

Checked异常,程序必须处理该类异常

Error 仅靠程序本身无法恢复的严重错误

Exception 由java应用程序抛出和处理的非严重错误

RuntimeException 运行时异常 不要求程序必须做出处理

4. 异常处理方式之一_捕获异常

(1) 捕获异常所使用的关键字有哪些?

try, catch , finally

(2) try-catch-finally有几种结合形式,每种组合形式的执行顺序是什么?

try-catch

try-finally

try-catch-finally

5. 异常处理方式之二_声明异常

(1) 继承关系中如何声明异常?

父类方法声明了exception类型的异常,子类在重写方法时,可以声明也可以不声明,但如果子类重写后的方法使用super关键字调用父类的方法,那么要求必须对异常进行处理

父类无异常那么子类方法一定会有exception或checked异常 要求子类必须自己使用try-catch处理或给父类方法加异常声明

如子类方法在重写父类方法时,产生的异常是RuntimeException异常时,可不用处理

(2) throw与throws的区别是什么?

1> throws 用于声明犯法可能会产生的异常类型

throw 手动抛出异常对象

2> throws写在方法名称后面

throw用于写在方法里

1. 常见简单异常的解决办法

(1) 请你列举出五个常见的运行时异常?

算数异常 ArithmeticException

空指针异常NullPointerException

类型转换异常ClassCastException

数组下标越界 ArrayIndexOutOfBoundsException

期望的数据类型与实际输入类型不匹配InputMismathException

(2) 请你列举出五个常见的检查时异常?

SQLException

IOException

ParseException

2. 自定义异常

(1) 为什么需要自定义异常?

在程序中 可能会遇到任何标准异常类都没有充分描述清楚问题 这种情况下可以创建自己的异常类

(2) 自定义异常的步骤是什么?

继承Exception或RuntimeException

定义构造方法

使用异常

3. 包装类的基本用法

(1) 为什么需要包装类?

Java并不是纯面向对象的语言 java语言是一个面向对象的语言 但是java中的基本数据类型却是不面向对象的 但是我们在实际使用中曾经需要将基本数据转化为对象 便于操作

4. 自动装箱和拆箱

1) 请你简述什么叫自动装箱?什么叫自动拆箱?

基本类型就自动地分装到与它相同的类型的包装中

Integer i=100;

编译器调用了valueOf()的方法

Integer I = Integer.valueOf(100);

Integer中的缓存类InterCache

Cache为[-128.127].IntegerCache有一个静态的Integer数组 在类加载时就将-128到127的Integer对象创建了 并保存在cache数组中 一旦程序调用valueOf方法 如果取的值是在-128到127之间就直接在cache缓存数组中去取Interger对象 超出范围就new一个对象

自动拆箱 包装类对象自动转换成基本数据类型

5. String类底层分析_JDK源码分析

(1) String类的底层数据结构是什么?

底层数据类型是char类型的数组

String的相应方法的实现实际上就是对数组的一个操作

(2) 为什么String类的值只能被共享不能被更改?

String等immutable类型因为没有提供自身修改的函数,每次操作都是新生成一个对象,所以要特殊对待。

6. StringBuilder,Stringbuffer用法_jdk底层源码分析

(1) StringBuffer与StringBuilder的异同点是什么?

StringBuilder 效率高,安全性低

StringBuffer 效率低,安全性高

(2) String与StringBuffer的异同点是什么?

在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。

在StringBuffer类中存在很多和String类一样的方法,这些方法在功能上和String类中的功能是完全一样的。

但是有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。

另外由于StringBuffer是线程安全的,所以在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。

7. 不可变字符序列和可变字符序列的使用陷阱

(1) String为什么称为不可变字符?

这个类的实例创建的时候初始化所有的信息,并且这些信息不能够被修改

(2) StringBuffer与StringBuilder为什么称为可变字符?

StringBuffer 是字符串缓冲。 适用于复杂的字符串增删改操作。

StringBuilder 是与 StringBuffer 兼容的 API 简化。 该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值