1、Arrays.asList()返回的List的实现类为java.util.ArrayList.ArrayList(私有内部类),固定大小,不能做add,remove操作
2、调用此构造方法ArrayList(Collection c)
new ArrayList(Arrays.asList(str));对str数组的改变不影响产生的新ArrayList
原因:
JDK源码:
public ArrayList(Collection<? extends E> c) {
// 调用了toArray()
elementData = c.toArray();
size = elementData.length;
// c.toArray might (incorrectly) not return Object[] (see 6260652)
if (elementData.getClass() != Object[].class)
elementData = Arrays.copyOf(elementData, size, Object[].class);
}
而toArray()注释中提到:此方法必须重新分配一个数组,尽管这个Collection背后就是一个数组
/**
* Returns an array containing all of the elements in this collection.
* If this collection makes any guarantees as to what order its elements
* are returned by its iterator, this method must return the elements in
* the same order.
*
* <p>The returned array will be "safe" in that no references to it are
* maintained by this collection. (In other words, this method must
* allocate a new array even if this collection is backed by an array).
* The caller is thus free to modify the returned array.
*
* <p>This method acts as bridge between array-based and collection-based
* APIs.
*
* @return an array containing all of the elements in this collection
*/
Object[] toArray();
所以调用以上构造方法产生的ArrayList和原先的数组,实际操纵的是2组不同的对象引用
分享到:
相关推荐
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
本项目是一个典型的Java企业级应用,采用了Spring、SpringMVC和MyBatis(简称SSM)三大框架进行构建,旨在实现一个高效、便捷的企业办公自动化系统。这样的系统能够提升企业内部的工作效率,减少纸质文档的流转,...
JPA是Java EE的一部分,提供了对象/关系映射,而MyBatis则是一种轻量级的SQL映射框架,允许开发者直接编写SQL来操作数据库。 4. **安全控制**:SpringBoot集成了Spring Security,用于身份验证和授权,确保系统的...
Ajax用于异步加载数据,Vue.js则是一个用于构建用户界面的渐进式框架。 #### 三、系统功能模块 助学贷款管理系统主要包括以下几个核心功能模块: 1. **基本信息管理**: - 用户信息管理 - 助学金政策管理 - ...
### Java Web 图书管理系统知识点概览 #### 一、项目背景与目标 - **项目背景**:随着信息技术的发展,图书馆的管理模式也在不断升级。传统的手工记录方式已经无法满足现代图书馆的需求,因此,开发一个高效、易用...
- Tomcat 8.0/9.0:Apache Tomcat是一个免费开源的Servlet容器,用于部署Java Web应用。 10. **浏览器兼容性** - 支持谷歌浏览器/微软Edge/火狐等主流浏览器。 #### 三、系统功能模块 - **管理员功能** - 用户...
提醒功能的实现则需要定时器(如`java.util.Timer`或Java 8的`ScheduledExecutorService`)来定期检查是否有需要提醒的事件。当事件的设定时间与当前时间匹配时,程序会触发提醒,这可以通过弹出对话框、发送邮件、...
Java记事本是一款基于Java编程语言开发的简单文本编辑器,它允许用户创建、打开、编辑和保存文本文件。在Java编程中,实现这样的应用程序涉及多个核心知识点,包括图形用户界面(GUI)设计、事件处理、文件I/O操作...
《阿里Java开发手册-黄山版(2022最新版)》是阿里巴巴集团为了规范Java开发、提升代码质量和团队协作效率而制定的一份权威指南。这份手册覆盖了Java开发的各个方面,包括基本语法、编程规约、设计模式、异常处理、...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
《21天学通J2EE》一书旨在为读者提供一个系统且高效的学习路径,以掌握Java 2 Enterprise Edition(J2EE)的核心概念和技术。J2EE是Sun Microsystems在2000年推出的一套企业级Java平台标准,它提供了一组组件和服务...
10. **EJB中的LocalHome接口**用于创建实体Bean的本地实例,提供了一种在容器内部查找和操作Bean的方法。 **程序测试题**涉及类的继承、构造器、变量作用域、静态变量、方法覆盖等概念,具体答案需要根据题目给出的...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
《阿里巴巴开发手册-Java-华山版》不仅是一份规范,更是一份Java程序员的成长指南,它帮助开发者养成良好的编程习惯,提升代码质量和项目管理效率。通过深入理解和实践这份手册,开发者可以更好地融入到大型企业级...
- **闹钟触发**:使用`ScheduledExecutorService`定期检查当前时间是否与设定的闹钟时间匹配,匹配则触发提醒事件。 - **提醒方式**:提醒可以是弹窗、声音播放或者发送通知。在Java中,可以使用`javax.sound`包来...
parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...