8道常用的Java面试题_惠州Java培训
作者:邓华发布时间:2020-12-03分类:Java技术浏览:1160
惠州北大青鸟暨华校区就业部老师科普10道常用的Java面试题,赶紧收藏起来。
1.字符串
A:字符串一旦被赋值就不能被改变。
B:String s = new String("hello")和String s = "hello";的区别
前者创建了2个对象
后者创建了1个对象
2.集合和数组的区别?
集合:
1:长度可以发生改变。
2:只能存储对象类型。引用类型。
3:可以存储任意类型的对象。
数组:
1:长度固定。
2:可以存储基本类型,也可以存储对象类型。
3:只能存储同一种类型的元素。
3.用迭代器遍历集合的时候,用集合修改集合有没有问题?如果有,怎么解决?
会ConcurrentModificationException:并发修改异常。
为什么?
迭代器是依赖于集合而存在的。
我们在通过迭代器迭代的过程中,用集合往集合中添加了元素。
而并没有重新获取迭代器,所以,报错。
原因:
在迭代器迭代的过程中,是不能通过集合去修改集合的。
解决方案:
A:用集合本身遍历集合,用集合去修改集合。
集合实现。添加成功,元素添加到末尾。
B:用迭代器迭代,用迭代器修改元素。
迭代器实现。添加成功,遍历到哪里,添加到哪里。
// 创建集合
List list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
// 有问题
// Iterator it = list.iterator();
// while (it.hasNext()) {
// String s = (String) it.next();
// if ("lisi".equals(s)) {
// list.add("zhaoliu");
// // it = list.iterator();
// } }
// 用集合实现
for (int x = 0; x < list.size(); x++) {
String s = (String) list.get(x);
if ("lisi".equals(s)) {
list.add("zhaoliu");
}
}
// 用迭代器实现
ListIterator lit = list.listIterator();
while (lit.hasNext()) {
String s = (String) lit.next();
if (list.equals("lisi")) {
lit.add("zhaoliu");
} }
LinkedList模拟栈数据结构的集合,并使用。
public void add(Object obj) {
link.addFirst(obj);
}
public Object get() {
// return link.getFirst();
return link.removeFirst();
}
public boolean isEmpty() {
return link.isEmpty();
}
}
A:这个题目的意思是指你应该自己定义一个集合类。
B:你在集合类中可以有一个LinkedList可以使用。
/*
自定义栈使用
*/
public class MyStack {
private LinkedList link;
public MyStack() {
link = new LinkedList();
}
3.Map和Collection集合的区别
A:Map集合存储的是键值对形式的元素。
Collection集合存储的是单个的元素。
B:Map集合的键是唯一的。
Collection的儿子Set集合元素是唯一的。
C:Map集合的值是可以重复的。
Collection的儿子List集合的元素是可以重复的。
4.Hashtable和HashMap的区别?
A:HashMap 线程不安全,效率高。允许null键和null值。
B:Hashtable 线程安全,效率低。不允许null键和null值。
5.flush()和close()的区别?
A:flush() 刷新缓冲区,流对象还可以继续使用。
B:close() 释放资源,但是会先刷新一次缓冲区,保证数据不丢失,操作完毕后,流对象不可以再被使用。
6.多线程程序出现安全问题的原因:
A:是多线程程序。
B:有共享数据。
C:针对共享数据有多条语句操作。
现在的程序存在着问题,所以,我们要改进该程序,让它没有问题。怎么改进呢?
只需要把多线程环境中,操作共享数据的操作给变成单线程就没有问题了。
Java针对这种情况,就提供了同步技术:同步代码块。
格式:
synchronized(对象) {
需要被同步的代码。
}
A:对象?
如果不知道用哪个对象,就用Object对象。同步的锁对象
代码块:任意对象方法:this,静态方法:类名.class。
B:需要被同步的代码?
哪些代码导致出现了问题,就把哪些代码给同步起来。
加入同步后,居然还有问题,为什么呢?
同步代码块中的对象针对多个线程必须是同一个。
其实这个对象被称为同步锁对象。
7. sleep()和wait()方法的区别?
sleep():必须指定时间。不释放锁对象。
wait():可以指定时间,也可以不指定时间。释放锁对象。
8.单例模式
要求:类在内存中的对象只有一个。
举例:打印机,网站访问量计数
分类:
饿汉式 加载就创建对象。
懒汉式 用的时候才去创建对象。
请问我们要掌握哪种方式?
开发:饿汉式
面试:懒汉式
为什么?
因为饿汉式不会出现线程安全问题。
懒汉式:
线程安全问题。你要能够给比人分析出安全问题的原因,并最终提供解决方案。延迟加载思想。(懒加载思想。)
Runtime本身就是一个饿汉式的体现。
- Java技术排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训