没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、基础
和 有什么区别?
是 的开发工具包包含各种类库并且包含了 是在 中的
程序的运行环境安装过程中自动添加
和 的区别是什么?
一 对于比较的是值是否相等如果比较的是基本数据类型的变量则直接比较其存
储的值是否相等
如果比较的是引用数据类型则比较的是所指向的对象的地址值
二 不能作用于基本数据类型它比较的是是否是同一个对象
如果没有对 方法进行重写则比较的是引用类型的变量所指向的对象的地
址值
如 等类对 方法进行了重写比较的则是所指向的对象的内容
两个对象的 !!"#$%&相同,则 %&也一定为 ,对吗?
首先两个对象 相等!!#$ 一定相等但是 !!#$ 相等时 不一定相
等
其次两个不同的对象因为可能存在哈希碰撞所以 !!#$ 可能是相等的但是显然
不为
还有就是在 #' 类中 方法还是用的来判断的对于对象而言比较的是地址
值所以 相等
!!#$ 一定一样反之就不一定了
()在 中有什么作用?
) 关键字可作用于类类属性和方法
作用于类上时该类不能被继承
作用于属性时该属性不能被重新复制
作用于方法时该方法不能被重写
*中的 +!#$%,*&等于多少?
+! 的 #$ 方法是四舍五入如果参数是负数则往大的数如+!#$%,*&,
-属于基础的数据类型吗?
不是 是一个类是引用数据类型
.中操作字符串都有哪些类?它们之间有什么区别?
有 /$/0
是不可变的每次对 的操作都会产生一个 对象
/$ 和 /0 是可变的能够被多次修改并不会产生新的对象
/$ 是线程不安全的/0 是线程安全的
( /$ 的处理速度比 /0 要快
122与 3%45&一样吗?
他们的值相等用 得到 但是他们是两个对象如果用判断返回 6
且 22是直接在常量池中引用字符串而 3%22&是在堆中根据 再创建一个对象
7如何将字符串反转?
通过 /$ 的 %&方法可以直接反转
/$'3/$%2'2&
'%&#%&
通过 的 #"!8 方法可以获得字符串每一个字符并且转换为字符数组
然后循环从后往拼接即可
递归的方法反转%当只有一个字符时返回原字符当有两个以上的字符时返回结果
为第二个字符串开始的子串9第一个字符&
:'%&;
6%%&<<!%&=&;
>
%'%&&9!%?&
>
?类的常用方法都有那些?
!%$@&返回指定索引处的字符
!%&返回字符串长度
:%&根据给定的正则表达式拆分字符串
#%&返回此对象本身
抽象类必须要有抽象方法吗?
抽象类可以没有抽象方法但是如果一个类已经声明为抽象类那么它也不能再实例化不能直
接构造该类对象
普通类和抽象类有哪些区别?
抽象类不能被实例化普通类反之
抽象类的访问权限限于 :' 和 :#$如果为 : 的话就不能被子类
继承了
如果一个类继承于抽象类则它必须实现父类的抽象方法如果不想实现那么子类也
必须是抽象类
抽象类能使用 )修饰吗?
不能) 修饰的类是不能被继承的如果抽象类不能继承就没有意义了
(接口和抽象类有什么区别?
抽象类可以有构造方法接口不能有构造方法
抽象类可以包含非抽象方法接口则不能
抽象类方法访问权限是 :'、:#$接口中只能是 :'
( 只能单继承但是可以多实现
*中 AB流分为几种?
大的方面来说有两种C字节流和字符流
字节流继承于 A:D、B:D
字符流继承于 $、E
-/AB、FAB、AB有什么区别?
/AB 表示同步阻塞式 AB交互方式是同步、阻塞方式即客户端有连接请求时服务端
就需要启动一个线程进行处理
如果这个连接不做任何事情会造成不必要的开支
FAB 表示同步非阻塞 AB客户端发送的连接请求都会注册到多路复用器上多路复用
器轮询到连接有 AGB 请求
时才启动一个线程处理
AB 表示异步非阻塞 AB客户端的 AGB 请求都是由操作系统先完成 AB 操作后再通知
服务器应用来启动线程处理
.H 的常用方法都有哪些?
FD%&C返回 H 对象所表示的文件名或文件路径
!%&C返回 H 对象所对应的相对路径
'##@%&C判断 H 对象的文件或者目录是否存在
'###8%&C判断 H 对象是否是目录
二、容器
1容器都有哪些?
数组以及 下面的集合类
IC存放有序列表存储元素可重复
8I IJ$IK#
C无序元素不可重复
!
+:C无序元素可重复
!+: +: IJ$!+:
!'
7"##和 "##有什么区别?
"## 是集合类的一个顶级接口它提供了对集合对象进行基本操作的通用接口方法
"## 是集合类的一个工具类它提供了一系列的静态方法用于对集合中元素进行排序
搜索以及线程同步等操作
?I、、+:之间的区别是什么?
IC 可以允许重复的对象
可以插入多个 元素
有序输入顺序就是输出顺序
C 不允许重复对象
无序且只允许一个 对象
+:C 存储键值对只能有唯一的 J8 可以重复
只能有一个 键
!+:和 !'有什么区别?
一 !+: 可以接受 键和值!' 不行
二 !' 是线程安全的通过 8!#L$ 来保证而 !+: 线程不安全
三 !+: 的迭代器是 6,6 迭代器而 !' 的 D# 迭代器不
是 6,6
如何决定使用 !+:还是 +:?
!+: 基于散列表实现适用于查询频繁的情况
+: 基于红黑树实现适用于创建比较多的情况且 +: 存储数据是按照字母表的
顺序存储的
如果对顺序有要求也可以选用 +:
说一下 !+:的实现原理?
数组9链表初始 -.* 扩容数据存在内部类 +:8 中其中包含 J8
!!#$ 和 @
(说一下 !的实现原理?
! 基于 !+: 实现默认构造函数是构造一个初始容量为 - 的 !+:所有放
入 !
集合的元素实际上由 !+: 的 J8 来保存而 则保存了一个 F 的静态
B' 对象因为元素都保存在 J8
中所以才能不重复
*8I和 IJ$I的区别是什么?
8I 底层基于动态数组IJ$I 基于链表实现底层是循环双向链表
对于随机访问 和 8I 优于 IJ$I
对于新增 $$ 和删除 D#IJ$I 比较快
-如何实现数组和 I之间的转换?
I 转数组C#8%&方法在方法参数中指定原集合的长度的数组即可
数组转 IC8 的 I%&方法
.8I和 K#的区别是什么?
K# 的方法都是同步的是线程安全的8I 则不是
在进行扩容的时候K# 扩容至原来的一倍8I 增加至原来的 ?* 倍
18和 8I有何区别?
8%数组&可以包含基本数据类型和对象类型8I 只能包含对象类型
8I 可以自动扩容8 则不行
7在 M中 :#%&和 D#%&有什么区别?
M 中$$ 方法和 #0 方法都可以添加元素而 D# 和 :# 都是删除队列的头元素
区别在于C
$$ 方法在队列满的情况下抛异常而 #0 方法则返回 6
D# 方法在队列为空时抛异常:# 方法将返回
?哪些集合类是线程安全的?
K#!'"#!+:
J
迭代器 A#是什么?
A# 是个接口它提供了很多对元素进行迭代的方法迭代器可以在迭代过程中删除
底层集合的元素可以直接调用 A# 的 D#%&方法来删除
因为在 "## 接口中定义了获取集合迭代器的方法所以每一个集合都包括了可以返回
迭代器实例的方法
A#怎么使用?有什么特点?
每个集合都可以用 #%&方法一个 A# 实例
使用 @%&方法获取序列中的下一个元素使用 !F@%&方法检查序列中是否有元素
使用 D#%&方法将迭代器新返回的方法删除
特点CA# 将集合的遍历和其底层的结构分离
A#和 IA#有什么区别?
IA# 是 A# 的子接口用于扩展 A#
在 A# 中我们只能向前移动无法操纵或者修改集合中的元素IA# 弥补了这种
缺点
区别C 范围不同A# 适用于所有集合而 IA# 只适用于 I 及其子类
IA# 有 $$ 方法可以添加元素A# 则不行
IA# 可以实现双向遍历A# 则不行
(IA# 可以实现对象的修改A# 不行
*IA# 可以获取集合中的所有A# 不行
(怎么确保一个集合不能被修改?
可以使用 "## 或者 N 来快速实现如
"##D#$)'+:%@@@+:&
三、多线程
*并行和并发有什么区别?
并行是多个事件同时进行并发是多个事件在某一时间段内间隔发生
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。
-线程和进程的区别?
进程是操作系统资源分配的基本单位线程是任务调度和执行的基本单位
进程有独立的地址空间一个进程崩溃后在保护模式下不会对其他进程产生影响而线程只是
一个进程中的
不同执行路径线程有自己的堆栈和局部变量在操作系统中能同时运行多个进程而在同一个
进程内有多个
线程同时执行
.守护线程是什么?
守护线程是服务其他线程的在 中线程有两种C守护线程和用户线程
中的 D 垃圾回收线程就是一个典型的守护线程当用户线程全部执行完包括 D 线
程也执行完毕那么
D 会自动退出此时守护线程也就停止了
1创建线程有哪几种方式?
三种C 继承 !$ 类重写 方法用子类实例调用 %&方法
实现 ' 接口并重写 方法创建 !$ 实例并传
入 ' 实例代用 !$ 的 %&方法
创建 "' 接口的实现类重写 方法
构造此实现类的实例将其作为参数构造一个 HJ 类
的实例
以 HJ 的实例为参数构造一个 !$ 对象执行
%&方法
第三种方式可以允许有返回值也可以声明抛出异常类
7说一下 '和 '有什么区别?
' 方式时多个线程间可以共享实例变量' 方式则不行
' 方式没有返回值' 有返回值
' 方式 方法的异常只能在内部消化' 的 %&方法允许抛出异常
(?线程有哪些状态?
FE 新建状态此时线程还没有运行线程中的代码
OFF/I 就绪状态处于就绪状态的线程并不一定立即运行 方法必
须还要和其他线程竞争 "O 时间
OFFAFN 运行状态线程获得 "O 时间后才进入运行状态开始执行
方法
( /IB" 阻塞状态线程运行过程中会有各种原因来进入阻
塞状态如C调用 : 方法进入休眠
在 AB 操作中被阻塞试图得到
一个锁该锁正被其他线程持有等待某个触发条件
阻塞状态的线程此时没有结束
暂时让出 "O 时间给其他线程
* 死亡状态有两个原因导致线程死亡C第一是 方法正常退出
自然死亡第二是一个未捕获的
异常终止了 方法使线程
死亡
剩余26页未读,继续阅读
资源评论
秀儿丶
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功