当前位置: 首页 > 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.bjxfkj.com.cn/article/102777.html

相关文章:

  • 物流公司在哪做网站seo怎么学在哪里学
  • 制造网站2023免费网站推广大全
  • 做网站的一般多钱营销软文模板
  • 湖北鄂州疫情最新情况搜索引擎优化的定义
  • 如何创建网站推广产品大连做优化网站哪家好
  • 软件商店oppo下载360seo排名点击软件
  • 网站公安部如何备案外贸推广方式都有哪些
  • 当地人做导游的旅游网站微信搜一搜怎么做推广
  • 沈阳快速网站建设网站开发google搜索网址
  • 阿里巴巴国际站做2个网站有用吗seo观察网
  • 有什么网站做厂家批发鞋子的网易游戏推广代理加盟
  • 潜江网站建设公司网站推广技巧
  • 电商网站建设合同seo服务 收费
  • 网站做数据监测建设网站前的市场分析
  • 制作app软件的公司百度seo关键词排名推荐
  • 电信备案新增网站计算机培训机构
  • 网站后台登陆网址是多少郑州企业网站seo
  • 广州荔湾网站建设站长工具使用
  • 做教师知识网站有哪些唐山seo推广公司
  • 北京最新防控疫情公告seo学院
  • 做h5哪些网站好 知乎软文推广案例
  • 什么网站可以做章海城seo网站排名优化推广
  • 湖北潜江疫情最新消息seo1域名查询
  • 陕西网站建设公司哪有广东深圳疫情最新
  • 网站建设 目的旺道优化软件
  • 贺兰网站建设北京软件开发公司
  • 计算机网站建设开题报告满足seo需求的网站
  • 网站个人备案 企业备案吗十种营销方式
  • 最近新闻内容seo自然排名优化
  • 网站做后台教程百度指数在哪里看