当前位置: 首页 > 面试题库 >

如果不考虑线程安全性,则使用Java中的ArrayList与Vectors

洪宏硕
2023-03-14
问题内容

Vector和的性能之间确实有很大的不同ArrayList吗?在线程安全不是问题的情况下,始终使用ArrayLists是一种好习惯吗?


问题答案:

Vector起源于Collections之前的API时代,自从成为Vector的一部分以来就进行了改造。根据我的阅读,不赞成使用它的原因是因为核心API依赖于它。

ArrayList是从头开始编写的,它是Collections API的一部分,因此应使用ArrayList,除非您需要支持Java 1.2以下的版本。

如果需要线程安全的ArrayList,则可以使用静态工厂方法Collections.synchronizedList(new ArrayList<type>);来生成列表。



 类似资料:
  • 作为一个灵活的可扩展的框架,OAuth的安全性考量依赖于许多因素。 以下小节提为实现者提供了聚焦在2.1节所述的三种客户端配置上的安全指南:Web应用、基于用户代理的应用和本地应用程序。 全面的OAuth安全模型和分析以及该协议设计的背景在[OAuth-THREATMODE]中提供。 10.1. 客户端身份验证 10.2. 客户端仿冒 10.3. 访问令牌 10.4. 刷新令牌 10.5. 授权码

  • 10.1. Server Authority 10.1. 服务器授权 HTTP/2 relies on the HTTP/1.1 definition of authority for determining whether a server is authoritative in providing a given response (see [RFC7230], Section 9.1). T

  • 下面是一个解释线程安全性的示例方法: 为了提供线程安全,有几种方法,我更喜欢使用方法。然而 1.我还想知道是否可以通过对必要的变量使用来提供线程安全。如果是,我如何执行此操作? 2.Java中经常使用作为变量和方法参数来提供线程安全性,这是原因之一吗?

  • 问题内容: 我有一个正在实例化并填充在后台线程上的代码(我用它来存储数据)。同时,可以在主线程上对其进行访问,并通过使用foreach对其进行迭代。因此,这显然可能导致引发异常。 我的问题是使此类类字段成为线程安全的而不每次都复制它或不使用标志的最佳实践是什么? 问题答案: 通常,对不是线程安全的数据结构进行并发操作是一个非常糟糕的主意。您无法保证将来的实现不会改变,这可能会严重影响应用程序的运行

  • 我尝试使用ArrayList解决生产者和消费者问题(我知道ArrayList是nt threadsafe),我确保使用关键字放置列表,但仍然进入。这就是错误 启动生产者请提供作业详细信息:TestJob作业完成:TestJob Exception位于java.util.ArrayList$itr.checkforcoModification(未知源)位于test.thread.consumer.r

  • 我找到了关于线程安全的代码,但它没有来自给出示例的人的任何解释。我想知道为什么如果我不在“count”之前设置“synchronized”变量,那么count值将是非原子的(总是=200是期望的结果)。谢谢