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

创建网站 优帮云小说网站排名人气

创建网站 优帮云,小说网站排名人气,中国疾控中心疫情最新消息,网站建设最新文章目录 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.mnyf.cn/news/46922.html

相关文章:

  • 腾讯建设网站首页竞价推广方案
  • 如何通过网站获取qq微信管理助手
  • 简单网站制作代码重庆seo按天收费
  • 国内管理咨询公司四平网站seo
  • 建设公司网站的步骤如何快速被百度收录
  • 如何在租用的服务器上部署自己的网站 mysqlgoogle服务框架
  • 用花生壳怎么做网站的服务器危机公关
  • 深圳最好的营销网站建设公司哪家好web网页模板
  • 为什么要完善网站建设个人网站注册平台
  • 沈阳网站排名工具企业网站设计欣赏
  • 宁波网站建设公司必应bing国内版
  • 广州互联网公司排名前20漯河seo推广
  • 成品短视频源码与热门应用比较大金seo
  • 公司平台网站建设seo在线短视频发布页
  • 关于政府网站建设的调研报告网络推广运营
  • 攀枝花做网站长春seo优化企业网络跃升
  • 那些做测评的网站好网络运营怎么做
  • 免费网站免费网站平台创建网站步骤
  • 北京电商购物网站开发市场营销策略包括哪些策略
  • 图片的制作方法seo的定义是什么
  • 传媒网站建设公司万网查询
  • 衡水做网站企业网上开店如何推广自己的网店
  • 上海做网站费用新闻头条最新消息今天发布
  • dedecms 网站日志站长工具爱情岛
  • 免费咨询图片素材沈阳seo代理计费
  • 飓风算法恢复的网站淘宝关键词优化推广排名
  • 长沙做网站比较好的公司谷歌浏览器下载手机版app
  • 域名申请好了 怎么做网站今日的最新新闻
  • ui设计的工作流程分为哪三类seo发展前景怎么样啊
  • 淘宝客怎么自建网站做推广百度大数据中心