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

网站建设时间计划表怎样制作网页新手自学入门

网站建设时间计划表,怎样制作网页新手自学入门,微分销手机网站制作,郑州网站备案地址目录 一、包装类的作用 二、基本类型与包装类对照表 三、包装类的常用方法 1. 基本数据类型与包装类对象之间的转换 2. 字符串与基本数据类型 / 包装类对象之间的转换 3. 比较两个包装类对象的值 4.Java 包装类拆箱详解(补充说明) ⑴手动拆箱 vs…

目录

一、包装类的作用

二、基本类型与包装类对照表

三、包装类的常用方法

1. 基本数据类型与包装类对象之间的转换

2. 字符串与基本数据类型 / 包装类对象之间的转换

3. 比较两个包装类对象的值

4.Java 包装类拆箱详解(补充说明)

⑴手动拆箱 vs 自动拆箱

⑵关键注意事项

⑶自动拆箱的应用场景

四、Integer 介绍

1.包装类的常量

2.Integer的构造方法

3.Java Integer 类常用方法详解

⑴、数值比较方法

①static int compare(int x, int y)

②int compareTo(Integer anotherInteger)

⑵数值转换方法

①static int parseInt(String s)

②static Integer valueOf(int i) / valueOf(String s)

⑶实用工具方法

①static int max(int a, int b) / min(int a, int b)

② 进制转换方法

③static String toString(int i)

⑷对象操作与拆箱

①int intValue()

② boolean equals(Object obj)

五、关键注意事项


在 Java 中,包装类(Wrapper Class)是为基本数据类型提供的一组对应的引用类型。Java 是一种面向对象的编程语言,但基本数据类型(如 intdouble 等)并不具备对象的特性,为了能在一些需要使用对象的场景中操作基本数据类型,Java 提供了包装类。以下是关于 Java 包装类的详细介绍:

一、包装类的作用

  1. 对象化基本类型
    将基本数据类型(如 int)包装成对象,使其能参与面向对象的操作(如存入集合、使用泛型等)。

  2. 提供功能方法
    包装类内置了丰富的工具方法(如类型转换、进制转换、比较等)。

  3. 支持 null 值
    包装类允许值为 null,适用于可能缺失数据的场景(如数据库字段可为空)。

  4. 支持泛型:泛型只能使用引用类型,不能使用基本数据类型。包装类作为引用类型,可以在泛型中使用。


二、基本类型与包装类对照表

基本类型包装类继承关系
byteByteNumber → Object
shortShortNumber → Object
intIntegerNumber → Object
longLongNumber → Object
floatFloatNumber → Object
doubleDoubleNumber → Object
charCharacterObject
booleanBooleanObject

三、包装类的常用方法

1. 基本数据类型与包装类对象之间的转换

装箱(Boxing):将基本数据类型转换为包装类对象。

拆箱(Unboxing):将包装类对象转换为基本数据类型。

在 Java 5 之前,需要手动进行装箱和拆箱操作,示例代码如下:

// 手动装箱
int num = 10;
Integer integerObj = new Integer(num); //转化为包装类// 手动拆箱
Integer integerObj2 = new Integer(20);
int num2 = integerObj2.intValue();  

Java 5 引入了自动装箱和拆箱机制,使得代码更加简洁,示例代码如下:

// 自动装箱
int num = 10;// 程序在编译的时候底层实际上的代码是:Integer x = new Integer(10);
Integer integerObj = num; // 自动拆箱
Integer integerObj2 = 20;
int num2 = integerObj2; // 底层实际上会调用:int num2 = integerObj2.intValue();/*Integer a = 10000;Integer b = 10000;System.out.println(a == b); // false(堆当中两个Integer对象,内存地址不同。)*/

2. 字符串与基本数据类型 / 包装类对象之间的转换

将字符串转换为基本数据类型:包装类提供了静态的 parseXxx 方法,用于将字符串转换为对应的基本数据类型。

String str = "123";
int num = Integer.parseInt(str);

将基本数据类型 / 包装类对象转换为字符串:可以使用 String.valueOf() 方法或包装类的 toString() 方法。

int num = 123;
String str1 = String.valueOf(num);Integer integerObj = 123;
String str2 = integerObj.toString();

3. 比较两个包装类对象的值

包装类重写了 equals() 方法,用于比较两个对象的值是否相等。

Integer obj1 = 100;
Integer obj2 = 100;
System.out.println(obj1.equals(obj2)); // 输出: true

4.Java 包装类拆箱详解(补充说明)

拆箱是将包装类对象转换为对应的基本数据类型的过程。
Java 为所有包装类提供了 xxxValue() 方法实现拆箱操作,其中:

  • 6 个数值型包装类(继承 Number):byteValue()shortValue()intValue()longValue()floatValue()doubleValue()

  • 非数值型包装类

    • Boolean.booleanValue()

    • Character.charValue()


⑴手动拆箱 vs 自动拆箱

操作类型代码示例说明
手动拆箱int a = integerObj.intValue();显式调用 xxxValue() 方法
自动拆箱int a = integerObj;编译器隐式插入 intValue()

⑵关键注意事项

①空指针风险

若包装类对象为 null,拆箱时抛出 NullPointerException

Integer num = null;
int a = num; // 运行时错误:NullPointerException

②精度损失与溢出

跨类型转换时需谨慎(如 Double int):

Double d = 123.456;
int i = d.intValue(); // 结果:123(直接截断小数,非四舍五入)
Long bigNum = 3000000000L;
int risky = bigNum.intValue(); // 溢出:结果为负数!

③缓存机制的影响

自动拆箱的 == 比较与值范围相关:

Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true(缓存范围内,对象复用)Integer c = 128;
Integer d = 128;
System.out.println(c == d); // false(超出缓存范围,新建对象)

⑶自动拆箱的应用场景

①算术运算

Integer x = 10;
Integer y = 20;
int sum = x + y; // 自动拆箱 → x.intValue() + y.intValue()

②条件判断

Boolean flag = true;
if (flag) { // 自动拆箱 → flag.booleanValue()System.out.println("条件成立");
}

③集合遍历

List<Integer> list = Arrays.asList(1, 2, 3);
for (int num : list) { // 自动拆箱System.out.println(num);
}

四、Integer 介绍

1.包装类的常量

/*** 关于包装类的常量*/
public class IntegerTest02 {public static void main(String[] args) {System.out.println("int类型最大值:" + Integer.MAX_VALUE);System.out.println("int类型最小值:" + Integer.MIN_VALUE);System.out.println("byte类型最大值:" + Byte.MAX_VALUE);System.out.println("byte类型最小值:" + Byte.MIN_VALUE);System.out.println(Boolean.FALSE);System.out.println(Boolean.TRUE);System.out.println(Double.MAX_VALUE);System.out.println(Double.MIN_VALUE);}
}

运行结果:

2.Integer的构造方法

构造方法被标记过时的原因

在 Java 9 之前,开发者通常使用构造方法来创建包装类的实例,如 new Integer(10) 或 new Boolean("true")。但从 Java 9 开始,这些构造方法被标记为过时,主要原因是:

浪费资源:每次使用构造方法都会创建一个新的对象,即使对于相同的值也是如此,这可能会造成不必要的内存开销。

自动装箱机制:Java 5 引入了自动装箱机制,使得基本数据类型和包装类之间的转换更加方便,构造方法不再是必需的。

替代方案

对于基本数据类型转换为包装类,推荐使用自动装箱机制;对于字符串转换为包装类,推荐使用包装类的静态工厂方法,如 valueOf()。

public class WrapperClassConstructor {public static void main(String[] args) {// 过时的 Integer 构造方法示例// Integer(int value)// Integer intObj1 = new Integer(10); // Java 9 后不建议使用// Integer(String s)// Integer intObj2 = new Integer("20"); // Java 9 后不建议使用// 替代方案// 自动装箱Integer intObj3 = 10;System.out.println("自动装箱创建 Integer 对象: " + intObj3);// 使用 valueOf 方法Integer intObj4 = Integer.valueOf("20");System.out.println("使用 valueOf 方法创建 Integer 对象: " + intObj4);// 过时的 Boolean 构造方法示例// Boolean(boolean value)// Boolean boolObj1 = new Boolean(true); // Java 9 后不建议使用// Boolean(String s)// Boolean boolObj2 = new Boolean("true"); // Java 9 后不建议使用// 替代方案// 自动装箱Boolean boolObj3 = true;System.out.println("自动装箱创建 Boolean 对象: " + boolObj3);// 使用 valueOf 方法Boolean boolObj4 = Boolean.valueOf("true");System.out.println("使用 valueOf 方法创建 Boolean 对象: " + boolObj4);}
}

3.Java Integer 类常用方法详解

⑴、数值比较方法

static int compare(int x, int y)

功能:比较两个 int 值的大小。
返回值

  • 0:相等

  • 1x > y

  • -1x < y

int result = Integer.compare(5, 3); // 1

②int compareTo(Integer anotherInteger)

功能:实现 Comparable 接口,比较两个 Integer 对象的值。
返回值:同 compare() 方法。

Integer a = 10;
Integer b = 20;
int result = a.compareTo(b); // -1

⑵数值转换方法

static int parseInt(String s)

功能:将字符串转换为 int 值。
异常:若字符串非数字格式,抛出 NumberFormatException

String numStr = "123";
int num = Integer.parseInt(numStr); // 123// 错误示例
try {int invalid = Integer.parseInt("12a3"); // 抛出异常
} catch (NumberFormatException e) {System.out.println("格式错误!");
}

static Integer valueOf(int i) / valueOf(String s)

功能:将 int 或字符串转换为 Integer 对象。
特性

  • 使用缓存机制:数值在 -128 到 127 之间时,返回缓存对象。

  • 字符串参数需为有效数字格式。

Integer a = Integer.valueOf(100);  // 使用缓存
Integer b = Integer.valueOf("200"); // 新建对象
System.out.println(a == Integer.valueOf(100)); // true(缓存范围内)
System.out.println(b == Integer.valueOf(200)); // false(超出缓存)

⑶实用工具方法

static int max(int a, int b) / min(int a, int b)

功能:返回两个值的最大或最小值。

int max = Integer.max(5, 8); // 8
int min = Integer.min(5, 8); // 5

② 进制转换方法

方法

  • toBinaryString(int i):十进制 → 二进制

  • toHexString(int i):十进制 → 十六进制

  • toOctalString(int i):十进制 → 八进制

String binary = Integer.toBinaryString(10); // "1010"
String hex = Integer.toHexString(255);      // "ff"
String octal = Integer.toOctalString(8);    // "10"

static String toString(int i)

功能:将 int 转换为字符串。等价于 String.valueOf(int)

String str = Integer.toString(123); // "123"

⑷对象操作与拆箱

int intValue()

功能:将 Integer 对象拆箱为 int

Integer num = 456;
int primitiveNum = num.intValue(); // 456

② boolean equals(Object obj)

功能:重写 Object.equals(),比较两个 Integer 对象的值是否相等。

Integer x = 100;
Integer y = 100;
Integer z = new Integer(100);System.out.println(x.equals(y)); // true
System.out.println(x.equals(z)); // true

五、关键注意事项

  1. 对象比较必须用 equals
    包装类是对象,== 比较的是内存地址,而非值:

    Integer x = 128;
    Integer y = 128;
    System.out.println(x == y);       // false(超出缓存范围)
    System.out.println(x.equals(y));  // true
  2. 空指针风险
    自动拆箱时若对象为 null,会抛出 NullPointerException

    Integer num = null;
    int value = num; // 运行时抛出 NPE!
     

3.String、int、Integer三种类型之间的互相转换(String,double,Double转换原理相同)

/*** String,int,Integer三种类型之间的转换。*/
public class IntegerTest04 {public static void main(String[] args) {// String ---> intString s1 = "123";int i1 = Integer.parseInt(s1);System.out.println(i1 + 1);// int ---> String// 第一种int i2 = 123;String s2 = i2 + "";System.out.println(s2 + 1); // "1231"// 第二种String s3 = Integer.toString(i2);System.out.println(s3 + 1); // "1231"// String --> IntegerString s4 = "123";Integer i3 = Integer.valueOf(s4);// Integer --> StringString s5 = String.valueOf(i3);// int --> Integerint i4 = 100;Integer i5 = Integer.valueOf(i4);// Integer --> intint i6 = i5.intValue();}
}

4.面试题

/*** 面试题*/
public class IntegerTest06 {public static void main(String[] args) {Integer x = 10000; // Integer x = new Integer(10000);Integer y = 10000; // Integer x = new Integer(10000);System.out.println(x == y); // false// 整数型常量池。// [-128 ~ 127] 这些数字太常用了。// 为了提高效率,Java提供了一个整数型常量池。// 这个常量池是一个数组:Integer[] integerCache;// 这个数组中存储了256个Integer的引用。// 只要没有超出这个范围的数字,直接从整数型常量池中取。Integer a = 127;Integer b = 127;System.out.println(a == b); // true}
}

http://www.dtcms.com/wzjs/146137.html

相关文章:

  • 河北网站建设报价网页设计工作室长沙
  • 自己做网站要学什么软件下载推推蛙贴吧优化
  • 哪些做任务的网站靠谱东莞推广平台有哪些
  • 网站建设与部署阿里云大学网络营销推广方案ppt
  • 交易平台网站制作seo网站推广培训
  • 营销网站定制的优势搜索引擎优化技术有哪些
  • 南宁cms建站seo外包如何
  • 网站制作学生信息管理百度主页
  • 怎么用电脑做网站服务器吗视频号排名优化帝搜软件
  • 老域名重新做网站郑州seo方案
  • 大麦网网站建设的功能定位旅游网站的网页设计
  • 中小学生在线做试卷的网站搜索引擎营销的模式有哪些
  • 苏州化妆品网站建设怎么创建网站教程
  • 张家港网站建设服务日照seo优化
  • 揭阳商城网站建设数据分析师培训机构
  • 网站商城微信支付接口申请资源搜索引擎搜索神器网
  • 去年做啥网站致富友情链接交换网站
  • 为什么选php语言做网站网络营销理论包括哪些
  • 科技小巨人培育企业北京seo排名外包
  • 云南建设项目招标公告发布网站无锡网站建设优化公司
  • 合肥论坛网站建设b站推广网站2024下载
  • 建设银行 网站友情链接发布网
  • 优秀的网站设计图片网络营销师资格证报名
  • 做任务网站整站营销系统
  • app要有网站做基础知识竞价推广遇到恶意点击怎么办
  • asp做网站好不好2020最成功的网络营销
  • 做adsense对网站有什么要求北京seo外包 靠谱
  • 景德镇网站建设网络营销的应用
  • 广州做响应式网站萌新seo
  • 设计一个网站花多少时间竞价托管服务公司