Java学习笔记-包装类
2024-09-05 04:37:10
基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换
包装类的由来
为了解决8种基本数据类型的变量不能当成Object类型变量使用的问题,Java提供了包装类(Wrapper Class)的概念,为8种基本数据类型分别定义了相应的引用类型,并称之为基本数据类型的包装类
包装类的使用
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
除了int和char,其他的只需将首字母大写即可
在JDK1.5以前
①把基本数据类型变量变成包装类实例需要通过对应包装类的构造器实现
②如果希望得到包装类对象中包装的基本数据类型变量,则可以使用xxxValue()实例方法而JDK1.5以后提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能
- 自动装箱:可以把一个基本数据类型变量直接赋值给对应的包装类变量,或者赋给Object变量。
- 自动拆箱:允许直接把包装类对象直接赋值给一个对应的基本类型变量。
e.g.
···
Integer inObj = 5;
Object boolObj = true;
int it = inObj;
···
基本数据类型变量和字符串之间的转换
把字符串类型转换成基本数据类型的值有两种方式。
- 利用包装类提供的parseXxx (String s)静态方法(除Character)
- 利用包装类提供的Xxx (String s)构造器
String intStr = "123";
int it1 = Integer.parseInt(intStr);
int it2 = new Integer(intStr);
String提供多个重载valueOf()方法,用于将基本数据类型转化为字符串
String ftStr = String.value(2.345f);
String boolStr = String.value(true);
- 将基本数据类型转为字符串最简单的方法是使用 “+” 将 “” 与需要连接的数据相连接
- 注意:虽然包装类的变量是引用数据类型,但是包装类的实例可以与数值型的值直接进行比较,这种比较是直接取出包装类实例所包装的数值来进行比较的,但若两个包装类进行比较,那么只有这两个包装类必须指向同一个对象时才会返回true
Java8增强的包装类
Java8为Integer、Long增加了如下方法:
startic String toUnsignedString (int/long i)
:该方法将指定int或long整数转化为无符号整数对应的字符串startic String toUnsignedString (int/long i , int radix)
:该方法将指定int或long整数转化为指定进制的无符号整数对应的字符串static xxx parseUnsignedXxx (String s)
:该方法将指定字符串解析成无符号整数static xxx parseUnsignedXxx (String s, int radix)
:该方法将指定字符串按指定进制解析成无符号整数static int compareUnsigned (xxx x, xxx y)
:该方法将x、y两个整数转化为无符号整数后比较大小static long divideUnsigned (long dividend, long divisor)
:该方法将x、y两个整数转化为无符号整数后计算他们相除的商static long remainderUnsigned (long dividend, long divisor)
:该方法将x、y两个整数转化为无符号整数后计算他们相除的余数
Java8还为Byte、Short增加了
toUnsignedInt (xxx x)
、toUnsignedLong (yyy x)
两个方法,这两个方法将指定byte或short类型变量或值转化成无符号的int或long值
包装类总结
基本数据类型转成字符串
基本数据类型 + “”
基本数据类型.toString(基本数据类型值);
如: Integer.toString(34); //将34整数变成"34";字符串转成基本数据类型
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();
十进制转成其他进制
toBinaryString();
toHexString();
toOctalString();
其他进制转成十进制。
parseInt(string,radix);
一个现象
Integer m = 128;
Integer n = 128;
//此时m != n
Integer a = 127;
Integer b = 127;
//此时m == n
//因为a和b指向了同一个Integer对象
//因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间
最新文章
- 自己实现简单Spring Ioc
- .NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息
- css动画之波纹
- Android 每天定时提醒功能实现
- JQuery轻量级网页编辑器 选中即可编辑
- Swift - 类型属性(类静态属性)和类方法(类静态方法)
- assembly 基础
- SQLI LABS Challenges Part(54-65) WriteUp
- 解决ASP.NET MVC 接受Request Payload参数问题
- Android为TV端助力 eclipse build project 出现major.minor version 52.0的问题
- python学习笔记-调用接口
- Jetbrains IntelliJ IDEA PyCharm 注册激活(2018最新)
- 一般服务器端口号的反斜杠表示访问webapp下的资源
- js原生函数
- 第11章 拾遗5:IPv6和IPv4共存技术(3)_NAT-PT技术【全书完】
- sqlserver的数据库状态——脱机与联机
- Elasticsearch Java Client连接池
- Ubuntu16.04 搜狗输入法输入汉字时候选栏是一串字符数字乱码问题解决方法
- 关于python-生成HTMLTestRunner测试报告
- 【旋转卡壳】poj3608 Bridge Across Islands
热门文章
- linux ps sample
- ACM-ICPC 2018 沈阳赛区现场赛 E. The Kouga Ninja Scrolls (切比雪夫距离+线段树)
- 2019EC-Final参赛总结
- electron 打包成桌面运用
- animation-timing-function
- PHP mysqli_dump_debug_info() 函数
- word黏贴图片显示不出来
- 关于matlab GUI 的一些总结
- 【概率论】3-9:多随机变量函数(Functions of Two or More Random Variables)
- ECMAScript 5.0 基础语法(下)“稍微重点一点点”