牛客0718B——Arraylist 和LinkedList static修饰变量和方法

目录

Q1:currentTimeMillis是什么?

Q2:比较Arraylist 和LinkedList的查找时间

3、相关对比Vector和Arraylist

底层扩容的原理:

Q4:static修饰静态代码块

修改1:

修改2:

修改3:

修改1:

修改2:

Q5:super和this

继承中的构造方法


Q1:currentTimeMillis是什么?

java中System.currentTimeMillis()返回的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数。

语句:

 long t1=System.currentTimeMillis();
//执行程序long t2=System.currentTimeMillis()-t1;//t2就是程序执行的时间

Q2:比较Arraylist 和LinkedList的查找时间

LinkedList每次增加的时候,会new 一个Node对象来存新增加的元素,所以当数据量小的时候,这个时间并不明显,而ArrayList需要扩容,所以LinkedList的效率就会比较高,但当ArrayList不需要扩容的时候它的效率应该是比LinkedList高的,当数据量很大达到千万级别的时候,new对象的时间大于扩容的时间,那么就会出现ArrayList的效率比Linkedlist高的情况了。

3、相关对比Vector和Arraylist

Arraylist——ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。

ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法 。 添加并遍历元素如下:

Vector——这也是List接口实现类,它和Arraylist一样,底层使用数组来实现,区别在于Vector是线程同步,效率稍低,ArrayList线程不同步,效率稍高

底层扩容的原理:

ArrayList底层数组如果满了,就扩容:创建一个新数组,长度是原数组的1.5倍,将原数组拷贝到新数组,使用新数组

Vector 底层也是数组,如果满了就就扩容:创建一个新数组,根据指定的扩容量进行创建,如果没有指定扩容量,那么新数组的长度就是旧数组的两倍,将原数组拷贝到新数组,使用新数组

Q4:static修饰静态代码块

public class Test2 {static int x = 10;static { x += 5; }public static void main(String[] args) {System.out.println("x =" + Test2 .x);}
static
{x /= 3; }
}

求输出结果:考察的是代码执行的顺序。 第5、12行属于static修饰的静态代码块。所以A、B说法错误。 静态代码块以及静态变量自上而下的顺序依次随着类加载而执行,所以依据题目的变量初始化: x初始为10 x+5赋值x,结果为15 x/3赋值给x,结果为5

几种修改:

修改1:

public class Test2 {int x = 10;static { x += 5; }public static void main(String[] args) {System.out.println("x =" + Test2 .x);}{x /= 3; }
}

报错:无法执行:

static { x += 5; }

java: 无法从静态上下文中引用非静态 变量 x

修改2:

public class Test2 {int x = 10;{ x += 5; }public static void main(String[] args) {System.out.println("x =" + Test2 .x);}{x /= 3; }
}

报错:

 public static void main(String[] args) {System.out.println("x =" + Test2 .x);}

java: 无法从静态上下文中引用非静态 变量 x

修改3:

public class Test2 {static int x = 10;{ x += 5; }public static void main(String[] args) {System.out.println("x =" + Test2 .x);}{x /= 3; }
}

结果:10会跳过:没有用static修饰的两个代码块

Q5:还是静态变量修饰的问题

静态方法内要调用方法外的变量,变量必须是静态的,如static方法内不能调用random函数

public class Arraytest{int a[] = new int[6];public static void main ( String arg[] ) {System.out.println ( a[0] );}
}

报错:java: 无法从静态上下文中引用非静态 变量 a

修改1:

public class Arraytest{//  int a[] = new int[6];public static void main ( String arg[] ) {int a[] = new int[6];System.out.println ( a[0] );}
}

输出0

修改2:

public class Arraytest{static   int a[] = new int[6];public static void main ( String arg[] ) {System.out.println ( a[0] );}
}

输出0

Q5:super和this

在使用super和this关键字时,以下描述错误的是()

A、在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过

B、super()和this()不一定要放在构造方法内第一行

C、this()和super()可以同时出现在一个构造函数中

D、this()和super()可以在static环境中使用,包括static方法和static语句块

答案:BCD

C:

public Cat(String name, String color) {super(name);this.color = color;}

继承中的构造方法

①在子类对象构造的过程中,必须先构造其父类对象

②在子类的构造方法中,自动调用父类的构造方法,然后才会继续往下执执行构造子类对象

④如果写了super(参数列表),则必须写在子类构造方法 的第一行,否则报错

⑤如果子类中没有写super(参数列表),而父类中又没有无参的构造方法,则编译报错

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

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

相关文章

入坑树莓派(2)——树莓派4B与手机蓝牙通信

入坑树莓派(2)——树莓派4B与手机蓝牙通信 1、引言 在入坑树莓派(1)中已经搞掂了可视化问题。现在继续开展下一步,尝试与手机通信,一开始是想弄wifi连接的,但发现基于wifi的APP比较难弄,为了降低开发的难度,又因为树莓派板子自带蓝牙模块,所以直接选用蓝牙连接手机…

LabVIEW多串口通信

随着现代工业控制对数据采集和处理效率的要求不断提升,传统的单串口通信已无法满足多通道数据传输与大规模数据存取的需求。开发一种基于LabVIEW的多串口通信及数据存储系统,以提升数据处理速度和存储效率,保障生产线的稳定运行显得尤为重要。…

达梦+flowable改造

原项目springbootflowablemysql模式现需改造springbootflowable达梦&#xff0c; 1.在项目中引入达梦jpa包 引入高版本包已兼容flowable&#xff08;6.4.2&#xff09;liquibase&#xff08;3.6.2&#xff09; 我没有像网上做覆盖及达梦配置 <dependency> …

数据结构之树的存储结构详解与示例(C/C++)

文章目录 树的存储结构1. 顺序存储结构2. 链式存储结构结论 树&#xff08;Tree&#xff09;是一种非常常见的数据结构&#xff0c;它模拟了一种层级或分支结构。树由节点&#xff08;或称为顶点&#xff09;组成&#xff0c;每个节点包含一个值&#xff0c;并且可能有多个子节…

SpringDoc2问题汇总

在项目中尝试使用SpringDoc进行文档生成&#xff0c;在使用过程中遇到一系列的问题加以记录. 1.引入依赖 只是单纯的使用SpringDoc的话不需要引入一些乱七八糟的依赖&#xff0c;如今各种增强和拓展依赖层出不穷&#xff0c;但是随着这些依赖的出现带来的不仅是增强&#xff0…

在学习使用LabVIEW的过程中,需要注意哪些问题?

在学习使用LabVIEW的过程中&#xff0c;需要注意以下问题&#xff1a; 1. 基础知识 图形化编程思维&#xff1a; LabVIEW采用图形化编程方式&#xff0c;与传统的文本编程语言有很大不同&#xff0c;需要适应这种新的编程思维方式。数据流概念&#xff1a; 理解LabVIEW的核心数…

调用第三方接口-OkHttpClient

请求方式 POSTGET POST 单个新增 例如后端接口接收参数为 User user 使用OkHttpClient发送post请求 //封装body信息 JsonObject jsonObject new JsonObject(); jsonObject.put("userName","张三"); jsonObject.put("city","北京");…

服务器借助笔记本热点WIFI上网

一、同一局域网环境 1、当前环境&#xff0c;已有交换机组网环境&#xff0c;服务器已配置IP信息。 设备ip服务器125.10.100.12交换机125.10.100.0/24笔记本125.10.100.39 2、拓扑图 #mermaid-svg-D4moqMym9i0eeRBm {font-family:"trebuchet ms",verdana,arial,sa…

AFAC2024-基于保险条款的问答 比赛日记 llamafactory qwen npu 910B1

AFAC2024: 基于保险条款的问答挑战——我的实战日记 概述 在最近的AFAC2024竞赛中&#xff0c;我参与了基于保险条款的问答赛道。这是一次深度学习与自然语言处理的实战演练&#xff0c;旨在提升模型在复杂保险文本理解与问答生成方面的能力。本文将分享我的参赛过程&#xf…

Git技巧:如何重命名你的分支

0. 引言 本文将介绍如何在本地以及远程仓库中安全地重命名 Git 分支。 1. 在本地重命名分支 在本地重命名分支可以通过 git branch 命令完成&#xff0c;具体有两种方法&#xff1a; 方法1&#xff1a;当前分支重命名 如果你当前正在 old 分支上工作&#xff0c;想要将其重…

numpy的一些基本操作

文章目录 1.numpy数组的多种创建方式1.1使用np.array()创建1.2使用plt创建1.3使用np的routine函数创建 2.numpy的常用属性2.1shape2.2ndim2.3size2.4dtype 3.numpy的索引和切片3.1切出前两列数据3.2切出前两行数据3.3切出前两行的前两列的数据3.4数组数据翻转3.5练习&#xff1…

【权威发布】2024年生物技术与医学国际会议(IACBM 2024)

2024年生物技术与医学国际会议 2024 International Conference on Biotechnology and Medicine 【1】会议简介 2024年生物技术与医学国际会议旨在为全球生物技术与医学领域的专家学者提供一个交流最新研究成果、分享技术进展和探讨未来发展方向的平台。会议旨在加强国际间的学术…

阿里云 https证书部署

一.申请证书 二.查看状态 查看状态&#xff0c;已签发是完成了申请证书 三.部署 我在nginx服务器上部署 具体操作链接:阿里云文档 修改前 修改后 四.重启ngnix 五.验证是否成功 在浏览器输入域名查看

vue2关于Object.defineProperty实现响应式

实现步骤&#xff1a; 1. 初始化阶段 当 Vue 实例化时&#xff0c;会遍历data 选项中的属性&#xff0c;并使用 Object.defineProperty 将它们转换为 getter 和 setter。这样一来&#xff0c;每当访问或修改这些属性时&#xff0c; Vue就能捕获到这些操作&#xff0c;从而实现…

【JavaScript 算法】最长公共子序列:字符串问题的经典解法

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理状态转移方程初始条件 二、算法实现注释说明&#xff1a; 三、应用场景四、总结 最长公共子序列&#xff08;Longest Common Subsequence&#xff0c;LCS&#xff09;是字符串处理中的经典问题。给定两个字符串…

ETL电商项目总结

ETL电商项目总结 ETL电商业务简介及各数据表关系 业务背景 ​ 本案例围绕某个互联网小型电商的订单业务来开发。某电商公司&#xff0c;每天都有一些的用户会在线上采购商品&#xff0c;该电商公司想通过数据分析&#xff0c;查看每一天的电商经营情况。例如&#xff1a;电商…

【React Hooks原理 - useSyncExternalStore】

概述 在React项目中说到状态管理&#xff0c;我们第一时间想到的就是使用useState、useReducer这种Hooks来进行状态管理。但是这种是针对React内部的状态&#xff0c;如果有时候我们需要订阅外部的状态并影响React组件的更新的话&#xff0c;那通过这种内部状态管理API显然不能…

通信协议_C#实现CAN通信

CAN协议 CAN&#xff08;Controller Area Network&#xff09;即控制器局域网络。特点&#xff1a; 多主网络&#xff1a;网络上的任何节点都可以主动发送数据&#xff0c;不需要一个固定的主节点。双绞线&#xff1a;使用双绞线作为通信介质&#xff0c;支持较远的通信距离。…

时序数据库如何选型?详细指标总结!

工业物联网场景&#xff0c;如何判断什么才是好的时序数据库&#xff1f; 工业物联网将机器设备、控制系统与信息系统、业务过程连接起来&#xff0c;利用海量数据进行分析决策&#xff0c;是智能制造的基础设施&#xff0c;并影响整个工业价值链。工业物联网机器设备感知形成了…

C++那些事之依赖注入

C那些事之依赖注入 最近星球里面有个小伙伴让更新一下依赖注入&#xff0c;于是写出了这篇文章&#xff0c;来从实际的例子讲解&#xff0c;本文会讲解一些原理与实现&#xff0c;完整的实现代码懒人版放在星球中&#xff0c;我们开始正文。 大纲&#xff1a; 直接依赖接口依赖…