栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java八大Wrapper类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java八大Wrapper类

Java八大Wrapper类 包装类
  1. 针对八种基本数据类型相应的引用类型
基本数据类型包装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

有类的特点, 可以调用类方法

包装类和基本数据类型转换

以int和Integer为例

  1. jdk5前, 装箱: 基本数据类型->包装类型, 反之拆箱.
  2. jdk5之后, 自动装箱和拆箱
  3. 自动装箱底层调用的是valueOf方法, 比如Integer.valueOf()

自动装箱和拆箱可以直接将值赋给包装类, 也可以直接将包装类赋给值

  • 包装类和String类型的相互转换

演示Integer和String之间的相互转换.

Integer to String

  • Integer + “”
  • Integer.toString()
  • String.valueOf()

String to Integer

  • Integer.parseInt()
  • Integer() 调用构造器, 也可以

Integer 和 String 常用的方法

Integer.MIN_VALUE

Integer.MAX_VALUE

String.isUpperCase() 判断是否是大写

String.toUpperCase() 转换为大写格式

Character.isDigit()

包装类

-128 到 127 调用的Integer都是在cache中的, 不会重新 new, 这些数据是在创建类的时候提前创建好的

String类结构刨析
  • String类的理解和创建对象.

理解

  1. String对象用于保存字符串

  2. 字符串常量使用双引号括起来的字符序列

  3. 字符串使用Unicode编码, 一个字符占两个字节

  4. String类较常用的构造器

String()
String(String original)
String(char[] a)
String(char[] a, int startIndex, int count)
String(byte[] b)

实现了Serializable, 说明可以串行化, 可以在网络传输.

Comparable, 说明可以比较大小.

常用的构造器有

使用了两个重要的接口

  1. String类是final类, 不能被继承
  2. value, String类保存数据, 实际保存在value数组中
  3. value是一个 final 类型, 一旦赋值后, 不能修改, 指的是value的地址不能再修改
创建String对象的两种方式
  • 方式一:直接赋值 String s = “zhx”;
  • 方式二:调用构造器 String s2 = new String(“zhx”);

区别

  1. 方式一: 先从常量池查看是否有"zhx"数据空间, 如果有, 直接指向, 没有则重新拆功能键, 然后指向, 最终指向的是常量池的空间地址
  2. 方式二: 先在堆中创建空间, 里面维护了value属性, 指向常量池的’zhx’空间. 如果常量池没有’zhx’, 重新创建, 如果有, 直接通过value指向. 最终指向的是堆中的空间地址.
  3. 内存分布图

String中的练习

intern方法将字符串添加到池中, 并返回池中的字符串对象的引用

字符串特性
  1. String是一个final类, 代表不可变的字符序列
  2. 字符串是不可变的, 一个字符串对象一旦被分配, 其内容是不可变的

画出内存布局图

String s1 = "hello";
s1 = "haha";

String a = "hello" + "abc";
// 创建了几个对象, 不是3!!! 只有一个对象
  1. 编译器会优化, 等价于直接 String a = “helloabc”; 判断引用是否有指向
String a = "hello";
String b = "abc";
String c = a + b; // 创建了几个对象, 画出内存图
String c = "hello" + "abc";
// 关键是分析 String c = a + b; 是如何运行的
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885923.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号