文章分类 -  java面试题

汇总2017比较流行的java面试题
@Before 和 @BeforeClass 有什么区别
摘要:@Before 在每一个测试方法运行前都会运行一次,只需要声明成为public。 @BeforeClass 在类中只运行一次,并且必须声明为public static 阅读全文

posted @ 2017-05-27 07:31 辰_雨_ 阅读(525) 评论(0) 推荐(0)

列出 5 个应该遵循的 JDBC 最佳实践
摘要:1、使用批量处理来更新和新增数据。 2、使用preparedStatement来避免SQL语句异常,并提高性能。 3、使用数据库连接池。 4、通过列名来获取结果集,不要使用下标来获取。 阅读全文

posted @ 2017-05-27 07:17 辰_雨_ 阅读(316) 评论(0) 推荐(0)

Java 中怎么创建 ByteBuffer?
摘要:ByteBuffer buffer = ByteBuffer.allocate(256); 阅读全文

posted @ 2017-05-27 00:10 辰_雨_ 阅读(141) 评论(0) 推荐(0)

写一段代码在遍历 ArrayList 时移除一个元素
摘要:Iterator iterator = list.iterator; while(iterator.hasNaxt()){ String s = iterator.next(); if(s.equals("b")){ iterator .remove(); } } 阅读全文

posted @ 2017-05-26 23:59 辰_雨_ 阅读(261) 评论(0) 推荐(0)

Hashtable 与 HashMap 有什么不同之处
摘要:Hashtable是同步的比较慢,而HashMap没有同步策略所以速度比较快。 Hashtable不允许有空值,HashMap可以有一个空值。 阅读全文

posted @ 2017-05-26 23:52 辰_雨_ 阅读(80) 评论(0) 推荐(0)

Java 中的 TreeMap 是采用什么树实现的?
摘要:红黑树。 阅读全文

posted @ 2017-05-26 23:50 辰_雨_ 阅读(120) 评论(0) 推荐(0)

ArrayList 与 LinkedList 的不区别?
摘要:最明显的区别是 ArrrayList 底层的数据结构是数组,支持随机访问, 而 LinkedList 的底层数据结构书链表,不支持随机访问。使用下标 访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。 阅读全文

posted @ 2017-05-26 23:48 辰_雨_ 阅读(75) 评论(0) 推荐(0)

poll() 方法和 remove() 方法的区别?
摘要:poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。 阅读全文

posted @ 2017-05-26 23:46 辰_雨_ 阅读(246) 评论(0) 推荐(0)

List、Set、Map 和 Queue 之间的区别
摘要:List是一个有序集合,允许可以元素重复。 Set是无序集合。 Map是独立的合集 它使用键值对的方式来储存数据 键不能有重复的 值可以用 Queue用于模拟"队列"这种数据结构(先进先出 FIFO)。 阅读全文

posted @ 2017-05-26 23:45 辰_雨_ 阅读(209) 评论(0) 推荐(0)

final、finalize 和 finally 的不同之处?
摘要:final是修饰符,可以用于修饰方法,变量和类等,通过final修饰的变量,就意味该变量值在初始化候就不能在改变。 finalize方法是对象在被回收之前调用的方法,给对象自己一个复活自己的机会。 finally是关键字,他通try,catch一样用于异常处理,finally块一定会被执行的,无论t 阅读全文

posted @ 2017-05-26 23:40 辰_雨_ 阅读(90) 评论(0) 推荐(0)

3*0.1 == 0.3 将会返回什么?true 还是 false?
摘要:false,因为有些浮点数不能完全精确的表示出来。 阅读全文

posted @ 2017-05-26 23:21 辰_雨_ 阅读(219) 评论(0) 推荐(0)

我能在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量吗?
摘要:不行,你不能在没有强制类型转换的前提下将一个 double 值赋值给 long 类型的变量,因为 double 类型的范围比 long 类型更广,所以必须要进行强制转换。 阅读全文

posted @ 2017-05-26 23:20 辰_雨_ 阅读(584) 评论(0) 推荐(0)

Java 中 ++ 操作符是线程安全的吗?
摘要:不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差 阅读全文

posted @ 2017-05-26 23:18 辰_雨_ 阅读(232) 评论(0) 推荐(0)

a = a + b 与 a += b 的区别
摘要:+= 隐式的将加操作的结果类型强制转换为持有结果的类型。如果两这个整型相加, 如 byte、short 或者 int,首先会将它们提升到 int 类型,然后在执行加法操作。 如果加法操作的结果比 a 的最大值要大,则 a+b 会出现编译错误,但是 a += b 没问题,如下: 阅读全文

posted @ 2017-05-26 23:18 辰_雨_ 阅读(122) 评论(0) 推荐(0)

Java 中应该使用什么数据类型来代表价格?
摘要:如果不是特别关心内存和性能的话,使用BigDecimal,否则使用预定义精度的 double 类型。 阅读全文

posted @ 2017-05-26 23:10 辰_雨_ 阅读(155) 评论(0) 推荐(0)

Java 中 sleep 方法和 wait 方法的区别?
摘要:虽然两个都是对当前运行的线程进行的暂停,但sleap是对线程的短暂的暂停,他是不释放锁。 而wait是意味着条件等待,所以他需要释放锁,因为这样其他等待的线程才能满足条件是获取 到该锁。 阅读全文

posted @ 2017-05-26 23:08 辰_雨_ 阅读(85) 评论(0) 推荐(0)

用 Java 写一个线程安全的单例模式(Singleton)?
摘要:public class Singleton{ private static Singleton singleton; private Singleton (){ } public static Singleton getInstance(){ if(singleton ==... 阅读全文

posted @ 2017-05-26 23:04 辰_雨_ 阅读(217) 评论(0) 推荐(0)

用 wait-notify 写一段代码来解决生产者-消费者问题?
摘要:public class EventStorage { private int maxSize; private List storage; public EventStorage(){ maxSize = 10; storage = new LinkedList(); } public s... 阅读全文

posted @ 2017-05-26 22:52 辰_雨_ 阅读(191) 评论(0) 推荐(0)

什么是线程局部变量?
摘要:线程局部变量就是局限于线程的内部变量,属于线程自身所有,不在多个线程间的共享。 Java提供ThreadLocal的类来支持线程局部变量,是一种实现线程安全的方式。但是在 管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下, 工作线程的生命周期比任何应用变量的生命周期都要 阅读全文

posted @ 2017-05-26 22:23 辰_雨_ 阅读(143) 评论(0) 推荐(0)

Swing 是线程安全的?
摘要:不是,Swing 不是线程安全的。 你不能通过任何线程来更新 Swing 组件,如 JTable、JList 或 JPanel,事实上, 它们只能通过 GUI 或 AWT 线程来更新。这就是为什么 Swing 提供 invokeAndWait() 和 invokeLater() 方法来获取其他线程的 阅读全文

posted @ 2017-05-26 22:16 辰_雨_ 阅读(136) 评论(0) 推荐(0)

导航