网站页眉尺寸网站开发的架构

web/2025/9/27 17:38:58/文章来源:
网站页眉尺寸,网站开发的架构,英文外链平台,如何注销网站1. ArrayList 与 数组的区别 ArrayList 的底层是数组队列#xff0c;相当于动态数组。与 Java 中的数组相比#xff0c;它的容量能动态增长。在添加大量元素前#xff0c;应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。 …1. ArrayList 与 数组的区别 ArrayList 的底层是数组队列相当于动态数组。与 Java 中的数组相比它的容量能动态增长。在添加大量元素前应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。 2 ArrayList 的初始化容量 // 默认容量是10 private static final int DEFAULT_CAPACITY 10; // 如果容量为0的时候就返回这个数组 private static final Object[] EMPTY_ELEMENTDATA {}; // 使用默认容量10时返回这个数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA {}; // 元素存放的数组 transient Object[] elementData; // 元素的个数 private int size;// 记录被修改的次数 protected transient int modCount 0; // 数组的最大值 private static final int MAX_ARRAY_SIZE Integer.MAX_VALUE - 8 ArrayList有三个构造方法不同的构造方法的容量是不一样的具体可以查看JDK 源码。 如果不传入初始容量就使用默认容量并设置 elementData为DEFAULTCAPACITY_EMPTY_ELEMENTDATA如果传入初始容量会判断这个传入的值如果大于0就 new一个新的Object数组如果等于0就直接设置 elementData为 EMPTY_ELEMENTDATA。如果传入一个 Collection则会调用toArray()方法把它变成一个数组并赋值给elementData。同样会判断它的长度是否为0如果为0设置elementData为EMPTY_ELEMENTDATA。 3. ArrayList 的扩容具体指什么 ArrayList里面有两个概念一个是capacity它表示的就是“容量”其实质是数组elementData的长度。而size则表示的“存放的元素的个数”。 因为 Java 中数组操作不能越界所以我们必须要保证在插入操作的时候不会抛出数组越界异常。 4. ArrayList是如何实现扩容的 扩容主要分两种自动扩容和手动扩容。 自动扩容底层主要是三个私有方法 // 扩容一个 private Object[] grow() {return grow(size 1); }// 保证扩容到期望容量minCapacity及以上 private Object[] grow(int minCapacity) {return elementData Arrays.copyOf(elementData,newCapacity(minCapacity)); }// 根据期望容量minCapacity计算实际需要扩容的容量 private int newCapacity(int minCapacity) {// overflow-conscious codeint oldCapacity elementData.length; // 得到旧容量int newCapacity oldCapacity (oldCapacity 1); // 设置新容量为旧容量的1.5倍if (newCapacity - minCapacity 0) { // 如果新容量仍然小于期望容量if (elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA) // 如果是使用的默认容量return Math.max(DEFAULT_CAPACITY, minCapacity); // 取默认容量和期望容量较大值返回if (minCapacity 0) // overflow // 检查期望容量是否越界int 的范围throw new OutOfMemoryError();return minCapacity; // 返回期望容量}// 如果新容量大于期望容量判断一下新容量是否越界return (newCapacity - MAX_ARRAY_SIZE 0)? newCapacity: hugeCapacity(minCapacity); }可以看到底层其实是调用了Arrays.copyOf方法来进行扩充数组容量的。这里我们主要看一下最后一个方法newCapacity(int minCapacity)的实现。 默认情况下新的容量会是原容量的1.5倍这里用了位运算提高效率。一般情况下如果扩容1.5倍后就大于期望容量那就返回这个1.5倍旧容量的值。而如果小于期望容量那就返回期望容量。这里对默认容量10做了特殊处理。 使用1.5倍这个数值而不是直接使用期望容量是为了防止频繁扩容影响性能。试想如果每次add操作都要扩容一次那性能将会非常低下。 手动扩容主要是一个公有方法ensureCapacity public void ensureCapacity(int minCapacity) {if (minCapacity elementData.length !(elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA minCapacity DEFAULT_CAPACITY)) {modCount;grow(minCapacity);} } 5. ArrayList有缩容吗 ArrayList没有缩容。无论是remove方法还是clear方法它们都不会改变现有数组elementData的长度。但是它们都会把相应位置的元素设置为null以便垃圾收集器回收掉不使用的元素节省内存。

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

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

相关文章

哪里建网站最好博纳网络科技有限公司

建议的Java记录的工作仍在继续。 Brian Goetz 昨天在OpenJDK amber-spec-experts邮件列表上启动了三个新线程,其中两个专注于Java Records。 这两个面向记录的线程之一讨论了Java记录是否应支持varargs 。 另一个线程为提议的类java.lang.Record提供了初始草案规范&…

济南一哥网站建设公司网页升级紧急大通知拿笔记本记好

大家好,给大家分享一下用python编写一个小程序,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python可以写手机应用程序吗? 我想有人曲解意思了,人家说用python开发渣蔽一个手机app,不是…

信息服务平台网站名称企业所得税税前扣除项目有哪些

164. 最大间距 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 输入: [3,6,9,1] 输出: 3 解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差…

网站建设贴吧wordpress基础教程

2000年微软公司收购同名公司后,Visio成为微软公司的产品。Microsoft Visio是Windows 操作系统下运行的流程图软件,它现在是Microsoft Office软件的一个部分。Visio可以制作的图表范围十分广泛,有些人利用Visio的强大绘图功能绘制地图、企业标…

织梦5.7cms照明灯具能源电子产品企业网站源码企业模板带后台餐厅网站源码

1.使用Spring Initializer快速创建Spring Boot项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目; 选择我们需要的模块; 向导会联网创建Spring Boot项目; 默认生成的Spring Boot项目; 主程序已经生成好了&#…

网站建设验收书做资讯网站

目录 1 前言2 本地代码上传2.1 命令行方法2.2 图形界面法2.3 结果 1 前言 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub 。开发者常常将github作为代码管理平台,方便代码存储、版本…

深圳品牌网站策划seo广州工作好吗

前言 作为一名IT从业人员,无论你是开发,测试还是运维,在面试的过程中,我们经常会被数据库,数据库中最经常被问到就是MySql。当面试官问MySql的时候经常会问道一个问题,”MySQL中有哪些锁?“当我…

dedecms妇科医院wap网站模板 v1.0在做网站编代码网页导航条中的文字出现在导航条的下方怎莫解决

上周更新完了之前vue3的shopping项目,接下来,将会开启一个新的项目,效果是类似于移动端的一个伙伴匹配项目,今天这篇文章从需求分析到架构设计再到项目初始化,基本框架搭建几个部分来为大家详细介绍。 从这个项目开始…

成都 php 网站恋家网邯郸房产

解决Android studio 2.3升级到Android studio 3.0 后apt报错问题发布时间:2020-09-16 19:59:42来源:脚本之家阅读:62作者:哈特中尉1.现象描述原来项目在Android studio 2.3一切正常,升级3.0之后报如下错误:…

做网站代码保密协议欧莱雅采用了哪些网络营销方式

起因 最近要搞groovy介绍,准备做成一系列的东西,参考github上的计划。https://github.com/javahub/groovy_hello spock没有找到翻译文档,动手把最重要的一章primer翻译下,想起了c primer。就当作翻译练习了。 目前项目大使用spock…

沈阳网站建设哪里好网站效果图用什么做

工欲善其事,必先利其器。Chrome 可能是前端开发中使用最多的浏览器。在日常开发中,下列几款 Chrome 扩展也许能让你的开发工作事半功倍 🚀 Vue.js devtools ⚙️ vue 官方专为 vue 应用开发的调试工具。 通过使用它,你可以快速查看…

效果图网站推荐大全可以做天猫代码的网站

1. 简介 Vue 在插入、更新或移除 DOM 时&#xff0c;提供多种不同方式的过渡效果&#xff0c;并提供 transition 组件来实现动画效果&#xff08;用 transition 组件将需执行过渡效果的元素包裹&#xff09; 语法&#xff1a;<transition name””>元素或组件&#xff…

网站开发需要大学吗中企动力网站建设 长春

Linux怎么读Linux是一种操作系统&#xff0c;不过很多朋友都不知道Linux怎么读?Linux正确读法 “哩呐克斯”&#xff0c;音标&#xff1a;[li:nэks] 重音在“哩”上。由于大多数的电脑都是安装Windows&#xff0c;其实也可以安装Linux&#xff0c;不过大家都习惯了Windwos&am…

太原模板建站定制微信可以上网

java插入排序Java程序插入示例的排序。 显示了示例仿真以及时间复杂度。 插入排序是一种简单的排序算法&#xff0c;可以一次构建一个最终的排序数组&#xff08;或列表&#xff09;。 它比冒泡排序有效得多&#xff0c;并且在大型列表上的效率比快速排序 &#xff0c;堆排序或…

网站源码推荐伊犁网站制作

一、各种税的计算方式增值税1、一般纳税人应纳税额销项税额—进项税销项税额销售额税率组成计税价格成本(1成本利润率)组成计税价格成本(1成本利润率)(1-消费税税率)2、进口货物应纳税额组成计税价格税率组成计税价格关税完税价格关税(消费税)3、小规模纳税人应纳税额销售额征收…

找网站建设公司抖音制作图片的软件

如何更新MSF1、Windows平台方法1&#xff1a;运行msfupdate.bat在msfconsole里执行命令svn update或者方法2&#xff1a;2、unix/linux平台方法1&#xff1a;运行msfupdate即可。方法2&#xff1a;(比较麻烦)安装subversion客户端(--with-ssl)&#xff0c;之后连接CVS server进…

用asp做的网站打开页面很慢磁县专业做网站

1. 装置概述与目标 在工业和实验室环境中&#xff0c;阀门的准确性和稳定性对于流体控制和实验数据的可靠性非常重要。LabVIEW可以作为开发阀门自动校准装置的理想工具&#xff0c;提供高度可定制化的解决方案。 2. 硬件与设备选择 型号选择&#xff1a;为了实现阀门自动校准…

网站排名优化推广重庆万州网站建设公司电话

问题A&#xff1a;不能整除 题目描述 给你一个长度为 N N N的整数序列 a i a_i ai​,找出满足下列条件的 i ( 1 ≤ i ≤ N ) i(1\leq i \leq N) i(1≤i≤N)的个数&#xff1a; 对于每个 j j j并且 1 ≤ j ≤ N , i ≠ j 1\leq j \leq N, i \neq j 1≤j≤N,ij&#xff0c; a …

网站营销策略有哪些seo检测

UDP 协议&#xff08;用户数据包协议&#xff09; UDP 是无连接通信协议&#xff0c;即在数据传输时&#xff0c;数据的发送端和接收端不建立逻辑连接&#xff0c;简单来说&#xff0c;当客户端向接收端发送数据时&#xff0c;客户端不会确认接收端是否存在&#xff0c;就会发出…

常州百度网站排名安阳网站建设推广优化

一、概述 1、起源 MyBatis本是Apache下的开源项目&#xff0c;名为iBatis,2010年转投谷歌,从iBatis3.x开始更名为MyBatis 2、优点 (1)优秀的数据持久层框架&#xff08;对jdbc做了轻量级封装&#xff09; 3、特点 (1)对jdbc中接口进行封装的同时还提供了一些自己的类实现…