phpcms做视频网站首页/做网站排名优化的公司

phpcms做视频网站首页,做网站排名优化的公司,人民网做最好内容的网站,什么网站可以找试卷做Java 列表复制与对象引用 一、知识点 1. 对象引用的基本概念 在 Java 中&#xff0c;List<School> 这样的集合存储的并不是真正的对象&#xff0c;而是对象的“地址”&#xff08;引用&#xff09;。就好比你有一个文件柜&#xff0c;文件柜里放的不是文件本身&#x…

Java 列表复制与对象引用

一、知识点

1. 对象引用的基本概念

在 Java 中,List<School> 这样的集合存储的并不是真正的对象,而是对象的“地址”(引用)。就好比你有一个文件柜,文件柜里放的不是文件本身,而是指向文件存放位置的标签。集合中的每个元素都指向堆内存中的实际对象实例。

2. 列表复制与对象引用

当你用 new ArrayList<>(schools) 复制一个列表时,新列表(比如 sortedSchools)只是把原列表(schools)中对象的“地址”复制了一遍,而不是复制对象本身。也就是说,两个列表中的元素都指向同一个对象实例,就像两个标签指向同一个文件。

3. 对象属性修改的影响

因为两个列表中的元素指向同一个对象,所以当你修改复制后的列表(sortedSchools)中对象的属性时,原列表(schools)中对应的对象属性也会跟着变。就好比你通过一个标签修改了文件内容,另一个标签指向的文件内容也会变。

4. 避免原列表被修改的方法

如果你希望修改复制后的列表时不影响原列表,可以在复制列表时创建新的对象,而不是直接复制引用。比如用构造函数重新创建对象:

List<School> sortedSchools = new ArrayList<>();
for (School school : schools) {sortedSchools.add(new School(school.abbreviation, school.totalStudents));
}

这种方法虽然能避免原列表被修改,但会增加内存开销(因为要创建新的对象实例)和处理时间(因为要调用构造函数)。


二、面试题

1. 基础概念题

题目:请解释在 Java 中 List<School> 存储的是 School 对象还是对象的引用?并说明当使用 new ArrayList<>(schools) 复制列表时会发生什么?

答案List<School> 存储的是 School 对象的引用,而不是对象本身。就好比你有一个文件柜,文件柜里放的是指向文件的标签,而不是文件本身。当使用 new ArrayList<>(schools) 复制列表时,新列表只是复制了原列表中对象的引用(标签),而不是创建新的对象实例。也就是说,新列表和原列表中的元素都指向堆内存中同一个对象。

2. 代码分析题

题目:以下是一段 Java 代码,请分析代码的输出结果,并解释原因。

import java.util.ArrayList;
import java.util.List;class School {String abbreviation;int totalStudents;int unassignedStudents;int supervisors;public School(String abbreviation, int totalStudents) {this.abbreviation = abbreviation;this.totalStudents = totalStudents;this.unassignedStudents = totalStudents;this.supervisors = 0;}
}public class Main {public static void main(String[] args) {List<School> schools = new ArrayList<>();School school1 = new School("ABC", 100);schools.add(school1);List<School> sortedSchools = new ArrayList<>(schools);for (School school : sortedSchools) {if (school.unassignedStudents > 0) {school.unassignedStudents -= 20;school.supervisors++;}}System.out.println("原列表 schools 中学校的未分配学生数: " + schools.get(0).unassignedStudents);}
}

答案:输出结果是 原列表 schools 中学校的未分配学生数: 80。原因如下:

  • sortedSchools 是通过 new ArrayList<>(schools) 复制的,它只是复制了 schools 中对象的引用,而不是创建新的对象实例。
  • sortedSchools 中修改对象的属性(比如 unassignedStudentssupervisors),因为引用的是同一个对象,所以 schools 中对应的对象属性也会被修改。因此,schools.get(0).unassignedStudents 的值会从 100 变为 80。
3. 优化策略题

题目:如果希望在上述代码中,对 sortedSchools 中 School 对象属性的修改不影响 schools 列表,应该如何修改代码?请说明这种修改的优缺点。

答案

  • 修改方法:在复制列表时创建新的 School 对象,而不是直接复制引用。修改后的代码如下:
    List<School> sortedSchools = new ArrayList<>();
    for (School school : schools) {sortedSchools.add(new School(school.abbreviation, school.totalStudents));
    }
    
  • 优点:这样可以保证原列表 schools 不会被 sortedSchools 的操作所影响,数据的独立性更好。就像你复制了一份文件,修改副本不会影响原始文件。
  • 缺点:会增加内存开销(因为需要创建新的对象实例),同时也会增加处理时间(因为每次复制都要调用构造函数来创建新对象)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何理解 Apache Iceberg 与湖仓一体(Lakehouse)?

一、什么是湖仓一体&#xff08;Lakehouse&#xff09;&#xff1f; 湖仓一体是一种融合了数据湖的灵活存储能力与数据仓库的高效分析功能的现代数据架构。它通过整合两者的优势&#xff0c;解决了传统架构的局限性&#xff0c;为企业数据处理提供了更全面的解决方案。 数据湖…

【鸿蒙开发】Hi3861学习笔记- TCP客户端

00. 目录 文章目录 00. 目录01. TCP概述02. TCP应用场景03. TCP和UDP比较04. TCP相关API05. TCP编程流程06. 硬件设计07. 软件设计08. 实验现象09. 附录 01. TCP概述 TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接、可靠的传输层协议&#xff0c;旨…

2025-03-25 学习记录--C/C++-PTA 习题9-3 平面向量加法

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 习题9-3 平面向量加法 本题要求编写程序&#xff0c;计算两个二维平面向量的和向量。 输入格式: ❀ 输入在…

23种设计模式-桥接(Bridge)设计模式

桥接设计模式 &#x1f6a9;什么是桥接设计模式&#xff1f;&#x1f6a9;桥接设计模式的特点&#x1f6a9;桥接设计模式的结构&#x1f6a9;桥接设计模式的优缺点&#x1f6a9;桥接设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是桥接设计模式…

go:前后端分离

1.前端代码 新建一个前端文件夹&#xff0c;在该文件夹下新建一个.html文件&#xff0c;写入自己的html代码。 前端搞定。 2.后端代码 其核心是挂载路由接受前端传来的数据核心代码如下&#xff1a; func main() { // 服务运行提示 fmt.Println("go web server is runn…

JetsonNano —— 4、Windows下对JetsonNano板卡烧录刷机Ubuntu20.04版本(官方教程)

介绍 NVIDIA Jetson Nano™ 开发者套件是一款面向创客、学习者和开发人员的小型 AI 计算机。按照这个简短的指南&#xff0c;你就可以开始构建实用的 AI 应用程序、酷炫的 AI 机器人等了。 烧录刷机 1、下载 Jetson Nano开发者套件SD卡映像 解压出.img文件并记下它在计算机上的…

文件I/O--C++的文件操作

一、打开文件&#xff0c;从文件中读取、写入文件 从文件中读取数据&#xff1a; #include<fstream> //fstream File stream:文件流 #include<iostream> //fstream包含了 iostream&#xff0c;所以这句可以省略&#xff0c;现在不能了 using namespace std;i…

C语言贪吃蛇实现

When the night gets dark,remember that the Sun is also a star. 当夜幕降临时&#xff0c;请记住太阳也是一颗星星。 ————《去月球海滩篇》 目录 文章目录 一、《贪吃蛇》游戏介绍 二、WIN32部分接口简单介绍 2.1 控制台窗口大小设置 2.2 命令行窗口的名称的变更 2…

基于vue.js开发的家庭装修管理系统开发与设计(源码+lw+部署文档+讲解),源码可白嫖!

摘要 本家庭装修管理系统采用B/S架构&#xff0c;数据库是MySQL&#xff0c;网站的搭建与开发采用了先进的Node.js语言进行编写&#xff0c;使用了VUE框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。用户的功能包括&#xff1a;注册、登录、浏览首页…

OpenCV图像拼接(5)图像拼接模块的用于创建权重图函数createWeightMap()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::detail::createWeightMap 是 OpenCV 库中用于图像拼接模块的一个函数&#xff0c;主要用于创建权重图。这个权重图在图像拼接过程中扮演着重…

LangGraph 怎么控制递归次数

这一节我们讲讲langgraph图的递归限制 Recursion Limit&#xff0c;递归限制设置了图在单次执行过程中可以执行的最大超级步骤数。一旦达到该限制&#xff0c;LangGraph 将引发 GraphRecursionError 错误。默认情况下&#xff0c;此值设置为 25 步。递归限制可以在运行时为任何…

Milvus WeightedRanker 对比 RRF 重排机制

省流:优先选择WeightedRanker 以rag为例,优先选择bm25全文检索,其次选择向量检索 Milvus混合搜索中的重排机制 Milvus通过hybrid_search() API启用混合搜索功能&#xff0c;结合复杂的重排策略来优化多个AnnSearchRequest实例的搜索结果。本主题涵盖了重排过程&#xff0c;…

在K8S中使用ArgoCD做持续部署

一、了解argocd ArgoCD是一个基于Kubernetes的GitOps持续交付工具&#xff0c;应用的部署和更新都可以在Git仓库上同步实现&#xff0c;并自带一个可视化界面。本文介绍如何使用GitArgocd方式来实现在k8s中部署和更新应用服务。关于ci这一块这里不多介绍。主要讲解argocd如何实…

可视化图解算法:删除有序(排序)链表中重复的元素

1. 题目 描述 删除给出链表中的重复元素&#xff08;链表中元素从小到大有序&#xff09;&#xff0c;使链表中的所有元素都只出现一次 例如&#xff1a; 给出的链表为1→1→2,返回1→2. 给出的链表为1→1→2→3→3返回1→2→3. 数据范围&#xff1a;链表长度满足 0≤n≤100…

ETL:数据清洗、规范化和聚合的重要性

在当今这个数据呈爆炸式增长的时代&#xff0c;数据已成为企业最为宝贵的资产之一。然而&#xff0c;数据的海量增长也伴随着诸多问题&#xff0c;如数据来源多样、结构复杂以及质量问题等&#xff0c;这些问题严重阻碍了数据的有效处理与深度分析。在此背景下&#xff0c;ETL&…

spring boot jwt生成token

1、引入jwt依赖 <!--jwt的依赖--> <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.3</version> </dependency> 2、创建TokenUtils工具类 package com.pn.utils;import com.…

豪越科技:融合低空经济的消防一体化安全管控解决方案

在科技飞速发展的当下&#xff0c;2025 年低空经济正处于规模化商用的关键节点&#xff0c;其在应急救援、物流配送等多领域展现出巨大潜力。豪越科技凭借其先进的消防一体化安全管控方案&#xff0c;与低空经济深度融合&#xff0c;打造出一套更为高效、智能的消防解决方案&am…

清华大学 | DeepSeek第十版!《DeepSeek政务应用场景及解决方案》

清华大学发布的《DeepSeek政务应用场景及解决方案》研究报告&#xff0c;聚焦人工智能技术DeepSeek在政府治理与公共服务中的创新实践&#xff0c;系统阐述了其如何通过智能化技术赋能政务数字化转型&#xff0c;推动治理能力现代化。报告指出&#xff0c;DeepSeek作为融合大数…

R语言双Y轴折线图+相关性注释

目录 包和数据 作图代码及详解 包和数据 rm(list ls()) library(ggpubr) library(scales) library(ggplot2)data <- iris##鸢尾花数据集 data1 <- data[1:30,c(1,2,3)] > head(data1)Sepal.Length Sepal.Width Petal.Length 1 5.1 3.5 …

2024年3月全国计算机等级考试真题(二级C语言)

&#x1f600; 第1题 下列叙述中正确的是 A. 矩阵是非线性结构 B. 数组是长度固定的线性表 C. 对线性表只能作插入与删除运算 D. 线性表中各元素的数据类型可以不同 题目解析&#xff1a; A. 矩阵是非线性结构 错误。矩阵通常是二维数组&#xff0c;属…