旅游网站排名榜php外贸网站源码

diannao/2026/1/22 23:02:23/文章来源:
旅游网站排名榜,php外贸网站源码,石家庄网站优化推广,云南网app我们都知道#xff0c;JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类#xff0c;他们其实都可以理解成工具类#xff0c;比如我们常见的集合类#xff0c;日期相关的类#xff0c;数学相关的类等等#xff0c;有了这些工具类#xff0c;你会发现它能很大…我们都知道JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类他们其实都可以理解成工具类比如我们常见的集合类日期相关的类数学相关的类等等有了这些工具类你会发现它能很大程度的帮你节省时间能很方便的实现你的需求。当然没有这些包你也能实现你的需求但是你需要时间今天我们主要是来学习一下包装类。一、包装类介绍1、为什么需要包装类我们知道 Java 语言是一个面向对象的编程语言但是 Java 中的基本数据类型却不是面向对象的但是我们在实际使用中经常需要将基本数据类型转换成对象便于操作比如集合的操作中这时我们就需要将基本类型数据转化成对象所以就出现了包装类。2、包装类是什么呢包装类顾名思义就是将什么经过包装的类那么是将什么包装起来的呢显然这里是将基本类型包装起来的类。包装类的作用就是将基本类型转成对象将基本类型作为对象来处理。Java 中我们知道基本数据类型有8个所以对应的包装类也是8个包装类就是基本类型名称首字母大写。但Integer 和 Character 例外它们显示全称如下面表格所示基本数据类型对应包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean二、包装类的继承关系通过阅读 Java8 的 API 官方文档或者看源代码我们可以得知8个包装类的继承关系如下通过以上的继承关系图我们其实可以这样记忆包装类里面有6个与数字相关的都是继承自 Number 类而其余两个不是与数字相关的都是默认继承 Object 类。通过看 API 官方文档我们还可以得知这8个包装类都实现了Serializable , Comparable 接口。比如下图的 Integer 类public final class Integer extends Number implements ComparableInteger {}三、包装类的使用方法基本操作接下来关于包装类的讲解我就讲Integer包装类其他的都依此类推用法和操作都是差不多的只是名字不一样而已。1、包装类的构造方法8个包装类都有带自己对应类型参数的构造方法其中8个包装类中除了Character还有构造方法重载参数是String类型的。Integer one new Integer(666);Integer two new Integer(666);2、包装类的自动拆装箱在了解自动拆装箱之前我们得先知道什么是拆箱和装箱。其实拆装箱主要应对基本类型与包装类型的相互转换问题。**装箱**将基本类型转换成包装类型的过程叫做装箱。**拆箱**将包装类型转换成基本类型的过程叫做拆箱。其实在 JDK1.5 版本之前是没有自动拆装箱的开发人员要手动进行装拆箱//手动装箱也就是将基本类型10转换为引用类型 Integer integer new Integer(10); //或者 Integer integer1 Integer.valueOf(10); //手动拆箱也就是将引用类型转换为基本类型 int num integer.intValue();而在在 JDK1.5 版本之后为了减少开发人员的工作提供了自动装箱与自动拆箱的功能。实现了自动拆箱和自动装箱如下方代码所示//自动装箱 Integer one 1; //自动拆箱 int two one 10;其实以上两种方式本质上是一样得只不过一个是自动实现了一个是手动实现了。至于自动拆装箱具体怎么实现的我这里不做深入研究。四、包装类的缓存机制我们首先来看看以下代码例1public static void main(String[] args) {Integer i1 100; Integer i2 100; Integer i3 new Integer(100);Integer i4 new Integer(100);System.out.println(i1 i2); //true System.out.println(i1 i3); //false System.out.println(i3 i4); //false System.out.println(i1.equals(i2)); //true System.out.println(i1.equals(i3)); //true System.out.println(i3.equals(i4)); //true }当我们修改了值为200的时候例2public static void main(String[] args) { Integer i1 200; Integer i2 200; Integer i3 new Integer(200); Integer i4 new Integer(200); System.out.println(i1 i2); //false System.out.println(i1 i3); //false System.out.println(i3 i4); //false System.out.println(i1.equals(i2)); //true System.out.println(i1.equals(i3)); //true System.out.println(i3.equals(i4)); //true }通过上面两端代码我们发现修改了值第5行代码的执行结果竟然发生了改变为什么呢首先我们需要明确第1行和第2行代码实际上是实现了自动装箱的过程也就是自动实现了 Integer.valueOf 方法其次比较的是地址而 equals 比较的是值这里的 eauals 重写了所以比较的是具体的值所以显然最后五行代码的执行结果没有什么疑惑的。既然比较的是地址例1的第5行代码为什么会是true呢这就需要我们去了解包装类的缓存机制。其实看Integer类的源码我们可以发现在第780行有一个私有的静态内部类如下private static class IntegerCache { static final int low -128; static final int high; static final Integer cache[];static { // high value may be configured by property int h 127; String integerCacheHighPropValue sun.misc.VM.getSavedProperty(java.lang.Integer.IntegerCache.high); if (integerCacheHighPropValue ! null) { try { int i parseInt(integerCacheHighPropValue); i Math.max(i, 127); // Maximum array size is Integer.MAX_VALUE h Math.min(i, Integer.MAX_VALUE - (-low) -1); } catch( NumberFormatException nfe) { // If the property cannot be parsed into an int, ignore it. } } high h;cache new Integer[(high - low) 1]; int j low; for(int k 0; k cache.length; k) cache[k] new Integer(j);// range [-128, 127] must be interned (JLS7 5.1.7) assert IntegerCache.high 127; }private IntegerCache() { } }我们知道静态的内部类是在整个 Integer 加载的时候就已经加载完成了以上代码初始化了一个 Integer 类型的叫 cache 的数组取值范围是[-128, 127]。缓存机制的作用就是提前实例化相应范围数值的包装类对象只要创建处于缓存范围的对象就使用已实例好的对象。从而避免重复创建多个相同的包装类对象提高了使用效率。如果我们用的对象范围在[-128, 127]之内就直接去静态区找对应的对象如果用的对象的范围超过了这个范围会帮我们创建一个新的 Integer 对象其实下面的源代码就是这个意思public static Integer valueOf(int i) { if (i IntegerCache.low i IntegerCache.high) return IntegerCache.cache[i (-IntegerCache.low)]; return new Integer(i); }所以 例1 代码里i1 和i2 是100值的范围在[-128, 127]所以直接区静态区找所以i1和i2指向的地址是同一个所以 i1i2而在例2的代码里i1 和i2 是200值的范围不在在[-128, 127]所以分别创建了一个新的对象放在了堆内存里各自指向了不同的地址所以地址都不同了自然 i1 不等于 i2。通过分析源码我们可以发现只有 double 和 float 的自动装箱代码没有使用缓存每次都是 new 新的对象其它的6种基本类型都使用了缓存策略。使用缓存策略是因为缓存的这些对象都是经常使用到的如字符、-128至127之间的数字防止每次自动装箱都创建一次对象的实例。五、包装类和基本数据类型的区别默认值不同包装类的默认值是null而基本数据类型是对应的默认值比如整型默认值是0浮点型默认值是0.0存储区域不同基本数据类型是把值保存在栈内存里包装类是把对象放在堆中然后通过对象的引用来调用他们传递方式不同基本数据类型变量空间里面存储的是值传递的也是值一个改变另外一个不变而包装类属于引用数据类型变量空间存储的是地址(引用)传递的也是引用一个变另外一个跟着变。

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

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

相关文章

汕头网站制作全过程佛山企业网站设计公司

三、2023年12月GESP Python三级编程题 【三级编程题1】 【试题名称】&#xff1a;小猫分鱼 【问题描述】 海滩上有一堆鱼&#xff0c;N只小猫来分。第一只小猫把这堆鱼平均分为N份&#xff0c;多了i<N条鱼&#xff0c;这只小猫把多的i条鱼扔入海中&#xff0c;拿走了一份…

珠海建设集团网站首页网络工程公司的业务

简单查询insert添加insert可以使用数据库支持的自动生成主键策略&#xff0c;设置useGeneratedKeys”true”&#xff0c;然后把keyProperty 设成对应的列&#xff0c;就搞定了。比如说上面的StudentEntity 使用auto-generated 为id 列生成主键.还可以使用selectKey元素。下面例…

成都微网站开发动态电商网站怎么做

选本必看--笔记本主流cpu参数大全现在本本的处理器种类真的太多了&#xff0c;绝对足够让人眼花缭乱的&#xff0c;各式各样的CPU核心、外频、缓存、接口、电压、制作工艺等等&#xff0c;多到让人疯狂&#xff0c;很少认能够对此了如执掌的。这次我们归纳了所有主流的本本处理…

wordpress自适应建站wordpress 指定

Spark事件总线机制 采用Spark2.11源码&#xff0c;以下类或方法被DeveloperApi注解额部分&#xff0c;可能出现不同版本不同实现的情况。 Spark中的事件总线用于接受事件并提交到对应的监听器中。事件总线在Spark应用启动时&#xff0c;会在SparkContext中激活spark运行的事件总…

一个公司优化需要做多少个网站前端开发和后端开发哪个好些

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报道…

工会网站建设可以wordpress for sae 4.3

​在使用jmeter进行接口测试时&#xff0c;我们难免会遇到需要从上下文中获取测试数据的情况&#xff0c;这个时候就需要引入变量了。 定义变量 添加->配置元件->用户自定义的变量 添加->配置元件->CSV 数据文件设置 变量的调用方式&#xff1a;${变量名} 变量的…

齐齐哈尔住房和城乡建设局网站课程网站如何建设方案

LED流水灯 循环左移右移函数 crol(a,b):循环左移函数&#xff0c;a是左移的值&#xff0c;b是左移的位数。包含在instrins.h库函数里面。 cror(a,b):循环右移函数&#xff0c;a是右移的值&#xff0c;b是右移的位数。包含在instrins.h库函数里面。 实验代码 #include "…

网站建设投标书报价表湘潭网站建设厦门网站制作

IP地址定位能够精确到的位置级别取决于多种因素&#xff0c;包括IP地址的分配方式、数据库的质量和更新频率、用户的移动性等。一般而言&#xff0c;IP地址定位可以精确到市级&#xff0c;甚至可以达到街道级别 https://www.ip66.net/?utm-sourceLJ&utm-keyword?1146 但需…

网站建设与维护经营范围惠州网站策划建设

【工业智能】音频信号相关场景 DcaseDcase introduction&#xff1a;dcase2024有10个主题的任务&#xff1a; ASD硬件设备产品商 方法制造业应用场景 zenodo音频事件检测 与计算机视觉CV相对应&#xff0c;计算机听觉computer audition&#xff0c;简称CA。 Dcase 这里推荐一个…

免费域名注册哪个网站好网站开发根目录建在哪

一、关于面向对象 1.1简介 Java 是一种面向对象编程语言&#xff0c;其核心思想是面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;。 面向对象编程是一种程序设计范式&#xff0c;它将数据与操作数据的方法&#xff08;函数&#xff09;捆…

韩国做游戏的电影 迅雷下载网站企业查询网站

HTTP传输协议缺点 之前几篇文章中详细讲解了TCP/IP协议栈中的几个协议&#xff0c;其中个就有对HTTP做了一个比较详细的讲解。HTTP是基于TCP进行传输的&#xff0c;其中传输的内容都是明文报文数据&#xff0c;如果我是一个黑客&#xff0c;我会想办法获取这个HTTP消息体&…

资源网站不好找了wordpress好看的友情链接页面

2016年.NET Core首个正式版本问世&#xff0c;如今已发布到了.NET Core3.1&#xff0c;再有2个月.NET5也将如约而至&#xff0c;跨平台开发已经快5年。微软 .NET 程序管理总监 Scott 表示&#xff0c;.NET 5 是 .NET Framework 和 .NET Core 的未来&#xff0c;最终将成为一个统…

手机网页版微信登录入口深圳网站seo哪家快

通讯网关 api网关这些年来&#xff0c;API网关正在经历一些身份危机 。 它们是否是集中的共享资源&#xff0c;从而促进了API对外部实体的公开和治理&#xff1f; 它们是集群入口哨兵&#xff0c;可以严格控制哪些用户流量进入或离开集群吗&#xff1f; 还是他们根据自己拥有…

山西太原建站怎么做网站建设蓝色工匠

当然是为实现功能而设计, 这句话没错. 但是还不够, 针对具体的应用场合, 应该采取不同的设计策略. 例如GUI Client程序, 必须重点注意用户的体验, 为提高易用性而设计 而一般后台应用程序, 就必须在高性能和可靠性方面加强设计 只创建一次的对象, 我们不必在乎其构造时间, 而频…

网站运营一个月多少钱wordpress po

下载的Matlab R2016b软件安装包(文末附有下载地址)目录如下所示: 安装过程: 1. 安装主程序R2016b_win64_dvd1.iso和R2016b_win64_dvd2.iso 由于目前大多数及其都是Win8或10系统,所以选中R2016b_win64_dvd1.iso,右键→Windows资源管理器打开。Win7系统可以安装好压软件之后…

做电商网站一般要多少钱diy图片制作

详情点查看公众号&#xff1a;技术科研吧 链接&#xff1a;如何用ChatGPT绘图&#xff1f; 一&#xff1a;AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百度-文心一言 6.MoonshotAI-Kimi 7.智谱AI-GLM-…

做网站在经营范围内属于什么中国logo设计公司排名

一、功能 for 循环提供了python中最强大的循环结构&#xff08;for循环是一种迭代循环机制&#xff0c;而while循环是条件循环&#xff0c;迭代即重复相同的逻辑操作&#xff0c;每次操作都是基于上一次的结果&#xff0c;而进行的&#xff09; Python for循环可以遍历任何序列…

网站推广优化排名做网站用什么域名好

目录 1、回显模式 2、成果显示 3、知识点 1&#xff09;FormLayout布局添加addRow方法 2&#xff09;在输入框显示灰色提示字体&#xff0c;输入内容时消失setPlaceholderText 3&#xff09;设置回显模式setEchoMode 4、完整代码 1、回显模式 QLineEdit控件的主要功能是输…

申请注册网站域名.商城重庆市建设信息网站

文章目录 前言简介第一步&#xff1a;引入依赖第二步&#xff1a;编写文件解析处理类第三步&#xff1a;Word解析类第四步&#xff1a;PDF解析类第五步&#xff1a;Txt解析类总结 前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博客&#xff1a;南国以南i、 提示&a…