摘要:
Callable 接口类似于 Runnable,从名字就可以看出来了,但是 Runnable 不会返 回结果,并且无法抛出返回结果的异常,而 Callable 功能更强大一些,被线程执 行后,可以返回值,这个返回值可以被 Future 拿到,也就是说,Future 可以拿到 异步执行任务的返回值。 阅读全文
posted @ 2020-07-12 19:11
咔啡
阅读(860)
评论(0)
推荐(0)
摘要:
线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程 的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若 干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它 要使用该资源 阅读全文
posted @ 2020-07-12 18:52
咔啡
阅读(677)
评论(0)
推荐(0)
摘要:
不是,Swing 不是线程安全的。你不能通过任何线程来更新 Swing 组件,如 JTable、JList 或 JPanel,事实上,它们只能通过 GUI 或 AWT 线程来更新。 这就是为什么 Swing 提供 invokeAndWait() 和 invokeLater() 方法来获取其 他线程的 阅读全文
posted @ 2020-07-12 18:50
咔啡
阅读(490)
评论(0)
推荐(0)
摘要:
List、Set 是,Map 不是。Map 是键值对映射容器,与 List 和 Set 有明显的区别, 而 Set 存储的零散的元素且不允许有重复元素(数学中的集合也是如此),List 是线性结构的容器,适用于按数值索引访问元素的情形。 阅读全文
posted @ 2020-07-12 18:40
咔啡
阅读(796)
评论(0)
推荐(0)
摘要:
当 bean 在 Spring 容器中组合在一起时,它被称为装配或 bean 装配。Spring 容器需要知道需要什么 bean 以及容器应该如何使用依赖注入来将 bean 绑定 在一起,同时装配 bean。 阅读全文
posted @ 2020-07-12 18:35
咔啡
阅读(1084)
评论(0)
推荐(0)
摘要:
何为同步容器:可以简单地理解为通过 synchronized 来实现同步的容器,如果有 多个线程调用同步容器的方法,它们将会串行执行。比如 Vector,Hashtable, 以及 Collections.synchronizedSet,synchronizedList 等方法返回的容器。 可以通过 阅读全文
posted @ 2020-07-12 18:02
咔啡
阅读(159)
评论(0)
推荐(0)
摘要:
该问题的关键在于面试者使用的是 ArrayList 的 remove() 还是 Iterator 的 remove()方法。这有一段示例代码,是使用正确的方式来实现在遍历的过程中移 除元素,而不会出现 ConcurrentModificationException 异常的示例代码。 阅读全文
posted @ 2020-07-12 18:00
咔啡
阅读(446)
评论(0)
推荐(0)
摘要:
断言在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一 般来说,断言用于保证程序最基本、关键的正确性。断言检查通常在开发和测试 时开启。为了保证程序的执行效率,在软件发布后断言检查通常是关闭的。断言 是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true;如果表 达式的 阅读全文
posted @ 2020-07-12 17:48
咔啡
阅读(833)
评论(0)
推荐(0)
摘要:
Java 中的 String 不可变是因为 Java 的设计者认为字符串使用非常频繁,将字 符串设置为不可变可以允许多个客户端之间共享相同的字符串。 阅读全文
posted @ 2020-07-12 17:45
咔啡
阅读(255)
评论(0)
推荐(0)
摘要:
ArithmeticException(算术异常)ClassCastException (类转换异常)IllegalArgumentException (非法参数异常)IndexOutOfBoundsException (下标越界异常)NullPointerException (空指针异常)Secu 阅读全文
posted @ 2020-07-12 17:34
咔啡
阅读(491)
评论(0)
推荐(0)
摘要:
Java 中的 TreeMap 是使用红黑树实现的。 阅读全文
posted @ 2020-07-12 17:30
咔啡
阅读(544)
评论(0)
推荐(0)
摘要:
HashSet 的内部采用 HashMap 来实现。由于 Map 需要 key 和 value,所以 所有 key 的都有一个默认 value。类似于 HashMap,HashSet 不允许重复的 key,只允许有一个 null key,意思就是 HashSet 中只允许存储一个 null 对象。 阅读全文
posted @ 2020-07-12 17:24
咔啡
阅读(428)
评论(0)
推荐(0)
摘要:
能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不 是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护, 但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护 作用了。 阅读全文
posted @ 2020-07-12 17:16
咔啡
阅读(1122)
评论(0)
推荐(0)
摘要:
Collection 是一个接口,它是 Set、List 等容器的父接口;Collections 是个一个 工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、 排序、线程安全化等等。 阅读全文
posted @ 2020-07-12 17:11
咔啡
阅读(160)
评论(0)
推荐(0)
摘要:
这需要根据你的经验来回答。一般情况下,你可以说依赖注入,工厂模式,装饰 模式或者观察者模式,随意选择你使用过的一种即可。不过你要准备回答接下的 基于你选择的模式的问题。 阅读全文
posted @ 2020-07-12 17:05
咔啡
阅读(443)
评论(0)
推荐(0)
摘要:
线程调度器选择优先级最高的线程运行,但是,如果发生以下情况,就会终止线 程的运行: 1、线程体中调用了 yield 方法让出了对 cpu 的占用权利 2、线程体中调用了 sleep 方法使线程进入睡眠状态 3、线程由于 IO 操作受到阻塞 4、另外一个更高优先级线程出现 5)在支持时间片的系统中,该 阅读全文
posted @ 2020-07-12 16:46
咔啡
阅读(787)
评论(0)
推荐(0)
摘要:
1、CountDownLatch 2、CyclicBarrier 3、Semaphore 4、Exchanger 阅读全文
posted @ 2020-07-12 16:43
咔啡
阅读(470)
评论(0)
推荐(0)
摘要:
Integer 对象会占用更多的内存。Integer 是一个对象,需要存储对象的元数据。 但是 int 是一个原始类型的数据,所以占用的空间更少。 阅读全文
posted @ 2020-07-12 15:51
咔啡
阅读(2343)
评论(0)
推荐(0)
摘要:
IO 对 Java 应用的性能非常重要。理想情况下,你不应该在你应用的关键路径上 避免 IO 操作。下面是一些你应该遵循的 Java IO 最佳实践: a)使用有缓冲区的 IO 类,而不要单独读取字节或字符。 b)使用 NIO 和 NIO2 c)在 finally 块中关闭流,或者使用 try-wi 阅读全文
posted @ 2020-07-12 15:22
咔啡
阅读(346)
评论(0)
推荐(0)
摘要:
java.lang.Cloneable 是一个标示性接口,不包含任何方法,clone 方法在 object 类中定义。并且需要知道 clone() 方法是一个本地方法,这意味着它是由 c 或 c++ 或 其他本地语言实现的。 阅读全文
posted @ 2020-07-12 13:58
咔啡
阅读(447)
评论(0)
推荐(0)

浙公网安备 33010602011771号