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

良精企业网站系统/搜索量查询

良精企业网站系统,搜索量查询,莱芜网络推广公司服务,权重网站建设目录 为什么要有包装类 包装类的作用 基本数据类型和包装类的对应关系 包装类的核心功能 装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09; 装箱&#xff1a; 拆箱&#xff1a; 类型转换 字符串<----->基本类型 进制转换 自动装箱与…

目录

为什么要有包装类

包装类的作用

基本数据类型和包装类的对应关系

包装类的核心功能

装箱(Boxing)和拆箱(Unboxing)

装箱:

拆箱:

类型转换

字符串<----->基本类型

进制转换

自动装箱与拆箱(Autoboxing)

128陷阱


为什么要有包装类

Java是面向对象编程的,但是基本类型却没有对象,这就会产生矛盾,于是包装类为了解决这一问题应运而生。

包装类的作用

  1. 让基本类型具备对象的特性

    可以参与面向对象的操作(如存入 List、作为方法参数传递)
  2. 提供丰富的工具方法

    类型转换、进制转换、最大值/最小值常量等
  3. 支持泛型

    泛型只能使用对象(如 List<Integer>,不能是 List<int>

基本数据类型和包装类的对应关系

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

包装类的核心功能

装箱(Boxing)和拆箱(Unboxing)

装箱:

基本类型----->包装类对象

Integer num = Integer.valueOf(10); // 手动装箱(推荐)
Integer num2 = 10;                // 自动装箱(Java 5+)

拆箱:

包装类对象------>基本类型

int n = num.intValue(); // 手动拆箱
int n2 = num;          // 自动拆箱

类型转换

字符串<----->基本类型

int num = Integer.parseInt("123");      // 字符串 → int
String s = Integer.toString(123);       // int → 字符串
double d = Double.parseDouble("3.14");  // 字符串 → double

进制转换

String binary = Integer.toBinaryString(10); // 10 → "1010"(二进制)
String hex = Integer.toHexString(255);      // 255 → "ff"(十六进制)

自动装箱与拆箱(Autoboxing)

// 自动装箱(编译后实际调用 Integer.valueOf(10))
Integer num = 10; // 自动拆箱(编译后实际调用 num.intValue())
int n = num; 

128陷阱

Integer num1=100;
Integer num2=100;
System.out.println(num1 == num2);   Integer num3=200;
Integer num4=200;
System.out.println(num3 == num4);	

大家到文章底部猜一下两个输出分别是什么


答案:

truefalse

原因:因为Integer在编译时,会变为 Integer.valueof(),我们看该方法的原码,会发现其是用一个cache数组来存储数据的,如下:

而对于cache数组,我们查看其源码:

发现其大小是-128~127,也就是说,当Integer的值是出于-128~127之间时,会直接使用cache数组中已经存储好的值,再看valueof的原码,当数据是在这个范围外时,就会在堆内存中新开辟一个Integer的空间所以此时num3==num4的值为false


小练习

接下来我们可以继续通过练习来掌握

public static void main(String[] args) {int a = 10;int b = 10;Integer a1 = 10;Integer b1 = 10;Integer a2 = new Integer(10);Integer b2 = new Integer( 10);System.out.println(a == b);		//trueSystem.out.println(a1==b1);		//true,Integer的值在-128~127之间,所以此时用的是cache数组中的值,所以trueSystem.out.println(a2== b2);	//false,a2和b2都是新开辟的Integer对象,所以地址不同,所以falseSystem.out.println(a1 == a);	//true,当包装类用==与基本数据类型比较时,会自动拆箱	System.out.println(a1.equals(a));	//true,此时会自动装箱,与上一个情况类似System.out.println(a1 == a2);	//false,地址不同,a2是新开辟的,a1是cache数组中的System.out.println(a == a2);	//自动拆箱}

总结

特性说明
基本类型转对象使用 valueOf() 或自动装箱
对象转基本类型使用 xxxValue() 或自动拆箱
类型转换parseXxx() 将字符串转为基本类型,toString() 反之
128陷阱== 比较范围受限(-128~127)
http://www.whsansanxincailiao.cn/news/32056968.html

相关文章:

  • 建设企业网站企业网上银行登录官网/日照高端网站建设
  • 网站设计基本流程第一步/seo营销培训咨询
  • 专门做网站的公司交什么/百度深圳总部
  • 中山做网站/产品推广建议
  • 平阳县城乡规划建设局网站/宁波seo资源
  • 其它区便宜营销型网站建设推荐/网络推广员的工作内容
  • 做问答营销的网站有哪些/沧州网站建设公司
  • 网站开发技术的历史/怎样在百度做广告宣传
  • 电商做网站/国际新闻界
  • 云服务器便宜/windows优化大师有必要安装吗
  • 淘宝网站的论坛做的怎么样/广东最新疫情
  • 想学做蛋糕用哪一个网站/网站建设方案书范文
  • 公司设计网站需要多久/销售平台软件有哪些
  • 建筑网bim二级结构21期全套试题/深圳网站优化软件
  • 网站空间备案流程/晋江友情链接是什么意思
  • 接收新网站如何做诊断/私人做网站建设
  • 深圳2024新冠最新情况/百度谷歌seo优化
  • cf外挂购买网站/百度百度一下一下
  • wordpress去掉评论界面/seo的优化流程
  • 网站管理员是干什么的/免费建站平台
  • 网络存储上做网站/站长工具服务器查询
  • 网站安全认证多少钱/最新app推广项目平台
  • 购物网站功能模块说明/免费网站seo排名优化
  • 手机网站头部/做百度推广的网络公司广州
  • 网站项目建设背景/地推一手项目平台
  • 额尔古纳网站建设/黑河seo
  • 网站制作网站建/外贸营销网站怎么建站
  • 网站建设费计入管理费用/网络营销论文5000字
  • 建设工程合同管理多少分及格/解释seo网站推广
  • 北京自己怎么做网站/厨师培训学校