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

住房和规划建设局网站百度网站认证v1

住房和规划建设局网站,百度网站认证v1,网站导航设置,一个外贸网站要多大的空间比较好文章目录 1. 基本概念2. 自动装箱与拆箱3. 缓存机制4. 不可变性5. 常见陷阱与最佳实践a. 空指针异常b. 不要用 比较两个包装类实例c. 高精度计算d. 字符串解析 总结 1. 基本概念 Java提供了每个基本数据类型的包装类,位于java.lang包中。这些包装类允许我们将基本…

文章目录

        • 1. 基本概念
        • 2. 自动装箱与拆箱
        • 3. 缓存机制
        • 4. 不可变性
        • 5. 常见陷阱与最佳实践
          • a. 空指针异常
          • b. 不要用 `==` 比较两个包装类实例
          • c. 高精度计算
          • d. 字符串解析
      • 总结

1. 基本概念

Java提供了每个基本数据类型的包装类,位于java.lang包中。这些包装类允许我们将基本数据类型作为对象处理,从而在需要面向对象功能的地方(如集合框架、泛型编程)非常有用。

2. 自动装箱与拆箱
public class AutoBoxingUnboxing {public static void main(String[] args) {// 自动装箱Integer num = 42; // int -> Integer// 自动拆箱int value = num;  // Integer -> int// 使用包装类进行数学运算(会自动拆箱)Integer sum = num + 5;System.out.println("num: " + num);System.out.println("value: " + value);System.out.println("sum: " + sum);}
}
3. 缓存机制

某些包装类(如Integer)对特定范围内的值实现了缓存,默认为-128到127之间的值。这意味着在这个范围内的值使用 valueOf() 方法时不会创建新的对象。

public class CacheMechanism {public static void main(String[] args) {// 缓存范围内的值比较Integer i1 = Integer.valueOf(100); // -128 <= 100 <= 127Integer i2 = Integer.valueOf(100); // -128 <= 100 <= 127System.out.println(i1 == i2); // true,因为它们引用同一个对象// 超出缓存范围的值比较Integer i3 = Integer.valueOf(300); // 300 > 127Integer i4 = Integer.valueOf(300); // 300 > 127System.out.println(i3 == i4); // false,因为它们引用不同的对象}
}
4. 不可变性

所有包装类都是不可变的,一旦创建后其内部状态不能被修改。如果需要改变值,必须创建新的对象。

public class ImmutabilityExample {public static void main(String[] args) {Integer immutableInt = Integer.valueOf(42);// 如果需要改变值,必须创建新的对象Integer newInt = immutableInt + 1;System.out.println("Original: " + immutableInt); // 输出42System.out.println("New: " + newInt);            // 输出43}
}
5. 常见陷阱与最佳实践
a. 空指针异常

在拆箱操作中如果包装类实例为 null,则会抛出 NullPointerException

public class NullPointerTrap {public static void main(String[] args) {Integer nullableInt = null;try {int value = nullableInt; // 这里会抛出 NullPointerException} catch (NullPointerException e) {System.out.println("Caught NullPointerException");}}
}
b. 不要用 == 比较两个包装类实例

应该使用 equals() 或者对于数字类型的包装类可以使用 compareTo() 方法。

public class ComparisonTrap {public static void main(String[] args) {Integer i1 = new Integer(100);Integer i2 = new Integer(100);// 错误的做法:使用 == 比较对象引用System.out.println(i1 == i2); // 可能输出false// 正确的做法:使用 equals() 比较值System.out.println(i1.equals(i2)); // 输出true// 对于数字类型的包装类,也可以使用 compareTo()System.out.println(i1.compareTo(i2) == 0); // 输出true}
}
c. 高精度计算

对于需要高精度的计算,推荐使用 BigDecimal 来避免浮点数精度丢失的问题。

import java.math.BigDecimal;public class HighPrecisionCalculation {public static void main(String[] args) {BigDecimal preciseValue = new BigDecimal("0.1");BigDecimal result = preciseValue.multiply(new BigDecimal("3"));System.out.println("Precise result: " + result); // 输出0.3// 浮点数可能有精度问题double impreciseValue = 0.1;double impreciseResult = impreciseValue * 3;System.out.println("Imprecise result: " + impreciseResult); // 输出0.30000000000000004}
}
d. 字符串解析

处理可能抛出的 NumberFormatException,确保输入格式正确。

public class StringParsing {public static void main(String[] args) {try {int number = Integer.parseInt("123abc"); // 这里会抛出 NumberFormatException} catch (NumberFormatException e) {System.out.println("Invalid number format");}// 成功解析try {int number = Integer.parseInt("123");System.out.println("Parsed number: " + number);} catch (NumberFormatException e) {System.out.println("Invalid number format");}}
}

总结

通过上述代码示例,我们综合了Java数据包装类型的关键特性,包括:

  • 自动装箱与拆箱:简化了基本数据类型与对象之间的转换。
  • 缓存机制:提高了性能并减少了内存占用。
  • 不可变性:保证了线程安全性和共享安全性。
  • 常见陷阱与最佳实践:避免了常见的错误,如空指针异常、不正确的比较方式、浮点数精度丢失以及字符串解析失败。
http://www.yayakq.cn/news/14503/

相关文章:

  • 家居企业网站建设方案网络营销工作内容是什么
  • 做网站 的主要收获自适应网站的代表
  • 温州网站制作推广网站开发liucheng
  • 网站开发与系统开发网络系统架构图
  • 网站制作的收费标准冯提莫斗鱼前在哪个网站做直播
  • 怎样做网站的轮播图片qq在线网站代码生成
  • 网站建立的链接不安全怎么解决漂亮企业网站源码
  • 常州网站建设软件凡科做的微网站怎样连接公众号
  • 淘宝不能开网站建设店铺吗云主机服务器租用
  • 建设厅电工证查询网站官方网网页源代码查看答案
  • 贺州招聘网站建设找室内设计师上哪个网站
  • 重启 iis 中的网站企业网站建设与推广方案实例
  • 山东潍坊建设银行招聘网站深圳搭建网站公司
  • 永州网站建设网站重庆网站设计公司排名
  • 手机套 东莞网站建设东莞网站建设化工
  • 网站建设办什么手续沧州建设银行招聘网站
  • 服装企业网站内容规划建设银行深分行圳招聘网站
  • 专门做品牌网站设计服务网站开发需要什么专业学生
  • 网站建设基本流程图传奇游戏排行榜前十名
  • 生成链接的网站wordpress代刷网主题
  • 服装网站建设方案ppt江西住房和城乡建设网站
  • 香格里拉网站建设宁波公司注册流程
  • 外贸网站商城建设本地app开发公司电话
  • 如何做自己的淘宝客网站简约式网站
  • 南宁网站建设找哪家公司绵阳 网站 建设
  • 做得好的营销网站网页设计作业怎么做
  • 四川专做餐饮的网站做不好的网站违法吗
  • 北京响应式的网站设计微信朋友圈广告投放平台
  • 网站建设新手教学视频王也手机壁纸
  • 建设文明网 联盟网站的东莞页面设计的培训