当前位置: 首页 > news >正文

企业门户网站开发任务书网站开发线上销售技巧

企业门户网站开发任务书,网站开发线上销售技巧,购物网站建设珠海,手工制作大全废物利用包装类 为什么要有包装类? 在面向对象中,“一切皆为对象”,但是基本数据类型不符合这一理念,为了让基本类型也称为对象 便于类型之间的转化,数据类型之间的基本操作 转换方式: int ——> Integer ne…

包装类

为什么要有包装类?

  1. 在面向对象中,“一切皆为对象”,但是基本数据类型不符合这一理念,为了让基本类型也称为对象

  2. 便于类型之间的转化,数据类型之间的基本操作

转换方式

  1. int ——> Integer new Integer ()

  2. Integer ——>int Integer对象.xxValue()

  3. String ——> Integer new Integer ("5")

  4. Integer ——> String Integer对象.toString()

  5. String ——> int Integer.parseXxx()

  6. int ——> String String.valueOf()

装箱:基本类型包装成包的类型

int a = 5;
// 装箱
Integer b = new Integer(a);
// 装箱
Integer c = Integer.valueOf(a);

拆箱:包装类对象转换为对应的基本数据类型

Integer a_package = new Integer(5);
// 拆箱
int a = a_package.intValue();

👇Java5之后,基本类型与包装类型的转换不需要手动进行了,提供了自动装箱(AutoBoxing)、拆箱(AutoUnBoxing)

自动装箱

指将基本数据类型自动地转换为对应的包装类对象

int a = 5;
// 自动装箱
Integer a_AutoBoxing = a;

自动装箱时,编译器会自动调用对应的包装类型的 valueOf() 方法来将基本数据类型转换为对应的包装类型。例如,将 int 类型的变量 i 转换为 Integer 类型的变量 obj,编译器会自动调用 Integer.valueOf(i) 方法。

包装对象 变量 = 包装对象.ValueOf(数值);

在装箱过程中,valueOf() 方法会创建一个新的包装类对象,并将基本数据类型的值封装到这个对象中

自动拆箱

指将包装类对象自动转换为对应的基本数据类型

Integer aa = new Integer(5);
// 自动拆箱
int aa_AutoUnBoxing = aa;

自动拆箱时,编译器会自动调用对应的包装类型的 xxxValue() 方法将包装类型转换为基本数据类型。例如,将 Integer 类型的变量 obj 转换为 int 类型的变量 i,编译器会自动调用 obj.intValue() 方法。

基本数据类型 名称 = xxxValue();

在拆箱过程中,xxxValue() 方法会从包装类对象中提取出相应的基本数据类型值,并返回给调用者

下表列出了基本类型及其对应的包装类,Java 编译器会使用它们进行自动的装箱和拆箱:

基本类型包装类型
byteByte
shortShort
charCharacter
floatFloat
intInteger
longLong
booleanBoolean
doubleDouble

自动装箱和拆箱的实现是通过 Java 编译器在编译时进行的。具体来说,Java 编译器会将自动装箱和拆箱操作转换为对应的方法调用,以实现基本数据类型和包装类型之间的转换。

需要注意的是,在进行自动装箱和拆箱的过程中,编译器会生成一些额外的代码,因此可能会对性能产生一定的影响。因此,在对性能要求较高的场景下,应尽量避免使用自动装箱和拆箱。

在Java中怎样避免自动装箱和拆箱?

  1. 使用基本数据类型

  2. 使用静态常量

  3. 使用StringBuilder 或 StringBuffer进行字符串拼接

128陷阱

看这两段代码,结果猜一猜是什么呢?

第一个结果为 true,第二个结果为 false

为什么会有这样的差异呢???

我们就要去看看Integer的valueOf方法的源码了

Integer的valueOf方法当中,存储一个catch数组,该数组相当于一个缓存,范围再-128~127闭区间,当在该范围中进行自动装箱的时候,直接返回该值的内存地址(即catch数组的地址),所以在-128~127之间的数值用 == 进行比较时结果是相等(true),而不在该区间的数,需要开辟一个新的内存空间,此时地址就不相同了,所以不相等。

以上就称为 “128陷阱”:

使用Integer类时,如果值的范围在127以上或-128以下时,即便两个对象值相同,但是使用“==”比较时,返回的是false。

http://www.yayakq.cn/news/783469/

相关文章:

  • 新乡市网站建设有哪些公司seo网站诊断价格
  • 做网站手机青岛制作
  • 人力资源网站建设秦皇岛黄页大全秦皇岛本地信息网
  • 自学软件网站开发企业备案做电影网站的后果
  • 做网站为什么不要源代码东莞设计网站推荐
  • 比较有设计感的网站怎么做代刷网站长
  • 山东联通网站备案企业网络推广的简介
  • 适合vue做的网站类型企业网站模板图片
  • 网站开发成appwordpress如何配置opcache
  • 金山做网站网站 手机版 电脑版 怎么做
  • 传世网站建设绿化公司和苗圃做网站
  • 浙江省建设厅地址在哪里山东seo网络营销推广
  • 网站建设的教材网站建设合同交什么印花税
  • 即刻搜索收录网站学校网站的建设目标是什么意思
  • 站牛网做网站的镜像是什么意思
  • 品牌网站运营wordpress xml生成
  • 做平面设计必知的网站渭南韩城
  • 泰安肥城建设局网站守游网络游戏推广平台
  • 服务器网站建设实训报告八戒网设计官网
  • 诸暨市建设局行业管理网站用ps做网站切片
  • 网站的专区怎么建设WordPress 整合源码
  • 女生做网站编辑怎么样细胞医疗 网站模版
  • 随州做网站生意怎么样赤峰公司做网站
  • 建设网站涉及哪些问题下载了wordpress进不了网页
  • 淘宝标题优化网站国外网站网页设计
  • 苏州网站建设集团电子商务网站规划开发实训教程
  • 哪些大型网站有做互联网金融少儿编程培训机构
  • 网站怎么制作的网件路由器初始密码
  • 江西网站建设公司排名wordpress 签到功能
  • 苏州市网站建设公司一般做网站费用