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");
} }
4. LinkedList模拟栈数据结构的集合,并使用。
* A:这个题目的意思是指你应该自己定义一个集合类。
* B:你在集合类中可以有一个LinkedList可以使用。
/*
* 自定义栈使用
*/
public class MyStack {
private LinkedList link;
public MyStack() {
link = new LinkedList();
}
public void add(Object obj) {
link.addFirst(obj);
}
public Object get() {
// return link.getFirst();
return link.removeFirst();
}
public boolean isEmpty() {
return link.isEmpty();
}
}
5.Map和Collection集合的区别(面试题)
A:Map集合存储的是键值对形式的元素。
Collection集合存储的是单个的元素。
B:Map集合的键是唯一的。
Collection的儿子Set集合元素是唯一的。
C:Map集合的值是可以重复的。
Collection的儿子List集合的元素是可以重复的。
6.Hashtable和HashMap的区别?(面试题)
A:HashMap 线程不安全,效率高。允许null键和null值。
B:Hashtable 线程安全,效率低。不允许null键和null值。
7.flush()和close()的区别?
* A:flush() 刷新缓冲区,流对象还可以继续使用。
* B:close() 释放资源,但是会先刷新一次缓冲区,保证数据不丢失,操作完毕后,流对象不可以再被使用。
8.多线程程序出现安全问题的原因:
* A:是多线程程序。
* B:有共享数据。
* C:针对共享数据有多条语句操作。
现在的程序存在着问题,所以,我们要改进该程序,让它没有问题。怎么改进呢?
* 只需要把多线程环境中,操作共享数据的操作给变成单线程就没有问题了。
* Java针对这种情况,就提供了同步技术:同步代码块。
* 格式:
* synchronized(对象) {
* 需要被同步的代码。
* }
* A:对象?
* 如果不知道用哪个对象,就用Object对象。同步的锁对象
* 代码块:任意对象方法:this,静态方法:类名.class。
* B:需要被同步的代码?
* 哪些代码导致出现了问题,就把哪些代码给同步起来。
* 加入同步后,居然还有问题,为什么呢?
* 同步代码块中的对象针对多个线程必须是同一个。
* 其实这个对象被称为同步锁对象。
9. sleep()和wait()方法的区别?
sleep():必须指定时间。不释放锁对象。
wait():可以指定时间,也可以不指定时间。释放锁对象。
10.单例模式
要求:类在内存中的对象只有一个。
举例:打印机,网站访问量计数
分类:
饿汉式 加载就创建对象。
懒汉式 用的时候才去创建对象。
请问我们要掌握哪种方式?
开发:饿汉式
面试:懒汉式
为什么?
因为饿汉式不会出现线程安全问题。
懒汉式:
线程安全问题。你要能够给比人分析出安全问题的原因,并最终提供解决方案。延迟加载思想。(懒加载思想。)
Runtime本身就是一个饿汉式的体现。
相关推荐
50个Java常用面试题 希望让更多的人因此而学到了更多的知识,更好的掌握相关知识,总结自己的不足,更好的通过面试。
JAVA常用面试题(含答案)JAVA常用面试题(含答案)
java常用面试题.txt
java 常用面试题,面试刷题必备
java常用面试题, 要找java方面工作的朋友尤其值得一看.
java方面的一些常见面试题,希望对各位有用。
各大软件公司JAVA常用面试题
该文档总结了在求职面试过程中常用的问题,鄙人多年收集,非常适合学习!
CoreJava面试题,IT行业公司常用面试题,包含java知识点的全部内容,进入IT行业的法宝,面试者必备,使您有针对性的查缺补漏!
│ Java面试题04.java中int占几个字节.mp4 │ Java面试题05.java面向对象的特征.mp4 │ Java面试题06.装箱和拆箱.mp4 │ Java面试题07.==和equals的区别.mp4 │ Java面试题08.String.mp4 │ Java面试题09.讲一下java...
java面试题,升入灵魂的拷问,从根本上解决面试语言组织困难的困扰,重要知识点,有基础有提高,更容易理解java的原理
阿里巴巴常用面试题。阿里巴巴java面试题
多态的好处,代码中如何实现多态 String s1=”ab”,String s2=”a”+”b”,String s3=”a”,String s4=”b”,s5=s3+s4请问s5==s2返回什么? final,finalize和finally的不同之处 简述进程,线程,协程之间的区别 ...
Git常用命令面试题 60道 Java并发编程最全面试题 123道 Kafka知识汇总 18道 Linux面试题 50道 Memcache 面试题 23道 MyBatis面试题 37道(含答案) MySQL高频面试题 40道(含答案) Netty面试题 20道 Nginx面试题 23...
分享有关常用的JAVA面试合集。
java常见面试题(史上最全最经典-希望对你有用).基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。
Java常见面试题集(免费下载),题目很全
自己收集的一些java和net常用的面试题,包括基础题和概念题。
面试题 常用java工程师面试 面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题