摘要: 1. 请你简述一下synchronized与java.util.concurrent.locks.Lock的相同之处和不同之处? 主要相同点:Lock能完成synchronized所实现的所有功能 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized 阅读全文
posted @ 2021-07-20 09:28 一只爱好编程的程序猿 阅读(20) 评论(0) 推荐(0)
摘要: 1. 创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可以创建线程:继承Thread类;实现Runnable接口;应用程序可以使用Executor框架来创建线程池。实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继 阅读全文
posted @ 2021-07-19 09:33 一只爱好编程的程序猿 阅读(36) 评论(0) 推荐(0)
摘要: 1. 如何保证线程安全? 通过合理的时间调度,避开共享资源的存取冲突。另外,在并行任务设计上可以通过适当的策略,保证任务与任务之间不存在共享资源,设计一个规则来保证一个客户的计算工作和数据访问只会被一个线程或一台工作机完成,而不是把一个客户的计算工作分配给多个线程去完成。 2. 请你简要说明一下线程 阅读全文
posted @ 2021-07-16 10:32 一只爱好编程的程序猿 阅读(29) 评论(0) 推荐(0)
摘要: 1.请解释为什么集合类没有实现Cloneable和Serializable接口? 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的。因此,应该由集合类的具体实现来决定如何被克隆或者是序列化。 实现Serializable序列化的作用:将对象的状态保存在 阅读全文
posted @ 2021-07-15 13:24 一只爱好编程的程序猿 阅读(30) 评论(0) 推荐(0)
摘要: 1. 请你说明List、Map、Set三个接口存取元素时,各有什么特点? List以特定索引来存取元素,可以有重复元素。Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一。Set和Map容器都有 阅读全文
posted @ 2021-07-14 13:37 一只爱好编程的程序猿 阅读(27) 评论(0) 推荐(0)
摘要: 1. 请说明静态变量存在什么位置? 静态变量存在方法区。 2. 请你谈谈StringBuffer和StringBuilder有什么区别,底层实现上? StringBuffer线程安全,StringBuilder线程不安全,底层实现上的话,StringBuffer其实就是比StringBuilder多 阅读全文
posted @ 2021-07-13 09:12 一只爱好编程的程序猿 阅读(22) 评论(0) 推荐(0)
摘要: 1. 请你讲讲abstract class和interface有什么区别? 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类 阅读全文
posted @ 2021-07-12 11:30 一只爱好编程的程序猿 阅读(20) 评论(0) 推荐(0)
摘要: 1. 若对一个类不重写,它的equals()方法是如何比较的? 比较是对象的地址。 2. 请解释hashCode()和equals()方法有什么联系? Java对象的equals方法和hashCode方法是这样规定的: l 相等(相同)的对象必须具有相等的哈希码(或者散列码) l 如果两个对象的ha 阅读全文
posted @ 2021-07-10 08:52 一只爱好编程的程序猿 阅读(31) 评论(0) 推荐(0)
摘要: 1. 请你讲讲Java里面的final关键字是怎么用的? 当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法 阅读全文
posted @ 2021-07-09 08:40 一只爱好编程的程序猿 阅读(23) 评论(0) 推荐(0)
摘要: 1. 请你谈谈大O符号(big-O notation)并给出不同的数据结构的例子? 大O符号描述了当数据结构里面的元素增加的时候,算法的规模或者是性能在最坏的场景下有多么好。 大O符号也可用来描述其他的行为,比如:内存消耗。因为集合类实际上是数据结构,我们一般使用大O符号基于时间,内存和性能来选择最 阅读全文
posted @ 2021-07-08 11:24 一只爱好编程的程序猿 阅读(41) 评论(0) 推荐(0)