Java当中的基本类型包装类

Java当中的基本类型包装类
01
基本数据类型对象的包装类
**什么是基本数据类型对象包装类呢?**就是把基本数据类型封装成对象,这样就可以提供更多的操作基本数值的功能了。
基本数据类型对象的包装类8个:
| 基本数据类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integet |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | character |
java.lang
类 Integer
java.lang.Object
-> java.lang.Number
-> java.lang.Integer
public final class Integer
extends Number
implements Comparable<Integer>
Integer类 是将一个基本类型为int的值包装成为对象的包装类。
Integer类型的对象中包含了一个int类型的字段。
基本数据类型对象的包装类,就是为了提供更多的操作方法,这里的Integer类中Java提供了多个方法,而且Integer类能够在int类型和String类型之间互相进行转换,还可以处理一些int类型有关一些常量和方法等。
一些常量:
| 常量 | 返回的类型 |
|---|---|
| MAX_VALUE | static int 为返回的是静态整数类型,表示为int类型的最大值 |
| MIN _VALUE | static int 为返回的是静态整数类型,表示为int类型的最小值 |
| SIZE | static int 为返回的是静态整数类型,表示int值的比特位数 |
| TYPE | static Class<Integer> 表示返回基本类型Int的Class实例 |
一些构造方法:
| 方法 | 说明 |
|---|---|
| Integer(int value) | 构造一个Integer对象,表示指定int的值 |
| Integer(String s) | 构造一个分配的Integer对象,表示String参数所指的int值 |
| 方法 | 说明 |
|---|---|
| decode(String nm) | static Integer该方法可以将String解码为Integer |
| doubleValue() | 返回为double类型 是以double类型返回该Integer的值 |
| equals(Object obj) | 返回boolean类型 比较此对象与指定对象 |
| floatValue() | 返回float类型 以float类型返回该Integer的值 |
| getInteger(String nm) | 返回的是 static Integer,确定具有指定名称的系统属性的整数值 |
| getInteger(String nm, int val) | 返回的是static Integer,确定具有指定名称的系统属性的整数值 |
| getInteger(String nm, Integer val) | 返回的是static Integer,返回具有指定名称的系统属性的整数值 |
| hashCode() | 返回此Integer的哈希码 |
| intValue() | 返回int类型 以Int类型返回给Integer的值 |
| longValue() | 返回long类型 以long类型返回该Integer的值 |
| toBinaryString(int i) | 返回static String类型,以二进制无符号整数形式返回一个整数参数的字符串表示形式 |
| toHexString(int i) | 返回static String类型,以十六进制无符号整数形式返回一个整数参数的字符串表示形式 |
| toOctalString(int i) | 返回static String类型,以八进制无符号整数形式返回一个整数参数的字符串表示形式 |
| toString() | 返回String类型,返回一个表示该Integer值的String对象 |
| toString(int i) | 返回类型为static String,返回一个表示指定整数的String对象 |
| toString(int i, int radix) | 返回类型为static String,返回用第二个参数指定基数表示的第一个参数的字符串形式 |
| valueOf(int i) | 返回类型为static Integer,返回一个表示指定的int值的Integer实例 |
| valueOf(String s) | 返回类型为static Integer,返回一个表示指定的String值的Integer实例 |
02
基本数据类型对象包装类:用于基本数据和字符串之间的转换。
parseInt(String s)是将字符串参数作为有符号的十进制整数进行解析。
xxx.parseXxx(string);
注意只有Character没有解析的方法,我们举个例子:int parseInt(string); -> byte parseByte(string); -> boolean parseBoolean(string);
System.out.println("12"+3);
// 结果为123
System.out.println(Integer.parseInt("12")+3);
// 结果为 15
parseInt
public static int parseInt(String s) throws NumberFormatException
这个方法是将字符串参数作为有符号的十进制整数进行解析
参数s:包含解析的int表现形式的String。
返回为:带有符号的十进制的整数值。
抛出为NumberFormatException:如果字符串不含有可解析的整数。
异常:
System.out.println(Integer.parseInt("a12")+3);
// 抛出为NumberFormatException
System.out.println("a12",6);
// 这种方法将其他进制转换为别的进制数
基本数值转换为字符串:
- 12+“ ”;
- String.valueOf(12);
- Integer.toString(int);
基本数据类型转换为包装类对象
Integer i = new Integer(2);
Integer i2 = new Integer("2");
Integer i3 = Integer.valueOf(2);
包装类的对象转换为基本数据类型值
// intValue():为以int类型返回该Integer的值
Integer i = new Integer(2);
int num = i.intValue();
基本数据类型包装类的自动装箱和拆箱
int i = 3;
Integer i = new Integer(3);
// 为装箱
在JDK1.5后,java提供了一个包装类的新的特性,为自动装箱。自然有自动拆箱咯~
Integer i = 3;
// 这样表示即为新特性,自动装箱。
// 一般我们是这样写
Integer i = Integer.valueOf(3);
// 如今
Integer i = 3;
// 系统会为它自动装箱
i = i + 2;
// 此时等于这样
i = i.intValue() + 2; // 等同于 i = Integer.valueOf(i.intValue() + 2);
// 为自动拆箱 i.intValue(),然后再次装箱即可
Integer包装类,自动装箱和自动拆箱的重点
为JDK1.5前,没有新特性
Integer a = new Integer(3); // 为手动装箱
Integer b = new Integer(3); // 为手动装箱
System.out.println(a == b); // 结果为:false
System.out.println(a.equals(b)); // 结果为:true
自动装箱和自动拆箱新特性
Integer x = 100; // 自动
Integer y = 100; // 自动
System.out.println(x == y); // 结果为 true
System.out.println(x.equals(y)); // 结果为 true
Integer x = 200; // 自动
Integer y = 200; // 自动
System.out.println(x == y); // 结果为 false
System.out.println(x.equals(y)); // 结果为 true
Integer integer1 = 127;
Integer integer2 = 127;
System.out.println(integer1 == integer2);
// true
Integer integer1 = 128;
Integer integer2 = 128;
System.out.println(integer1 == integer2);
// false
Integer x = 127;
Integer y = 127;
System.out.println(x==y); // 结果为true
System.out.println(x.equals(y)); // 结果为true
Integer x = 128;
Integer y = 128;
System.out.println( x == y); // 结果为false
System.out.println( x.equals(y) ); // 结果为true
因为在JDK1.5中,Java面对在 -128~127 之间的Integer的值,用的是原生基本数据类型int,会在内存中共用,不会再新创建对象空间。就是在这个范围之间的Integer值比较“==”,是进行int原生数据类型的比较,超出范围的比较,就会创建新的对象空间。
有人问这究竟是为啥呢?你问我?
这个是jdk1.5之后的新特性,规定是数值在byte范围内不会创建新的对象空间,而是用原来的空间,这样就可以节省内存空间了哦~
03
案例
// 一堆字符串,定义字符串数字的变量
String nums = "12 34 56 23 7 83";
// 字符串中数值的排序,定义一个方法为排序所要定义的字符串数字的变量,完成任务
nums = sortNumsString(nums);
// 打印排序后的字符串
System.out.println("nums" + nums);
// 静态String类型
public static String sortNumsString(String numsString){
// 空格分割
String[] strs = numsString.split(" ");
// 字符串数组转换int数组,定义了一个方法parseIntArray()
int[] nums = parseIntArray(strs);
// 对数组进行排序
Arrays.sort(nums);
// 将数组转换为字符串
return toString(nums);
}
// 字符串数组转换int数组
private static int[] parseIntArray(String[] strs){
// 定义int数组
int[] arr = new int[strs.length];
// 遍历字符串数组
for(int i = 0; i < strs.length; i++){
arr[i] = Integer.parseInt[strs[i]);
}
return arr;
}
// 将数组转换为字符串
private static String toString(int[] nums){
// 创建StringBuilder对象
StringBuilder sb = new StringBuilder();
// 循环添加
for(int i = 0; i < nums.length; i++){
if(i != nums.length-1){
sb.append(nums[i]+" ");
}else{
sb.append(nums[i]);
}
}
// 返回sb.toString();方法
return sb.toString();
}
往后余生,唯独有你
简书作者:达叔小生
90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通
简书博客: https://www.jianshu.com/u/c785ece603d1
结语
- 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
- 小礼物走一走 or 点赞
Java当中的基本类型包装类的更多相关文章
- 第47节:Java当中的基本类型包装类
Java当中的基本类型包装类 01 基本数据类型对象的包装类 什么是基本数据类型对象包装类呢?就是把基本数据类型封装成对象,这样就可以提供更多的操作基本数值的功能了. 基本数据类型对象的包装类8个: ...
- JAVA基础之基本类型包装类、System类、Math类、Arrays类及大数据运算
个人理解: 为了方便运算及调用一些方法,我们需要将基本类型的数值转换为对象:不过转换的时候需要特别注意好它们的类型到底是什么,需要调用方法的类名是哪个!特别注意是Byte常量池的相关问题(==):gc ...
- Java基础知识点1:基本类型包装类
基本类型的包装类 简介 通常来说我们在程序中经常会使用元类型,比如 int data = 1; float data = 2.1F; 但是在有些场景中不能直接使用元类型,比如如果我们想要建立一个int ...
- Java基础知识强化64:基本类型包装类的引入
1. 基本类型包装类概述 (1)将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据. (2)常用的操作的之一:用于基本数据类型与字符串之间的转换. (3)基本类型和包装类的对应 ...
- Java基础学习笔记十四 常用API之基本类型包装类
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...
- 13-03 Java 基本类型包装类概述,Integer类,Character
基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据.常用的操作之一:用于基本数据类型与字符串之间的转换.基本类型和包装类的对应Byte,Short,Inte ...
- java学习笔记18(基本类型包装类,system类)
基本类型包装类 定义:程序界面用户输入的数据都是以字符串类型存储的,如果需要操作这些字符串进行运算,需要转成基本数据类型,这时就要用到基本类型包装类,例: public class Demo { pu ...
- java常用API之基本类型包装类
基本类型包装类概述: 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的. 而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型. 想实现字符串与基本数据之间转换,需 ...
- java 基本类型包装类
一 基本类型包装类 1.包装类概述 Java中提供了相应的对象来解决实现字符串与基本数据之间转换问题,基本数据类 型对象包装类:java将基本数据类型值封装成了对象. 8种基本类型对应的包装类如下: ...
随机推荐
- Unknown custom element: <swiper>
刚开始使用VUE,一直提示这个,后来才发现是注册组件时注册反了:先新建VUE实例再注册组件是问题根源,调转一下顺序即可解决
- 北电之死:谁谋杀了华为的对手?——银湖资本(Silver Lake)董事总经理爱德华·詹德出任CEO,既不了解华为,也不重视中国,直截了当地否决了收购华为
作者:戴老板:微信公众号:饭统戴老板(ID: worldofboss) 2003年5月,北京SARS疫情紧张,摩托罗拉集团总裁迈克·扎菲罗夫斯基(Mike Zafirovski)却准备不走寻常路,决定 ...
- Codeforces 1236B. Alice and the List of Presents
传送门 显然每种礼物是互相独立的,一个礼物的分配不会影响另一个礼物 对于某个礼物 $x$ , 对于每个盒子来说,要么选要么不选,那么可以看成长度为 $m$ 的二进制序列 这个序列第 $i$ 位的数就代 ...
- 空格 ACSII码 160 32
ascii160和ascii32都表示空格,但是在IE里,160就不是显示空格,firefox里会显示空格,32不管是firefox里,还是IE里都显示空格.
- WebClient小结
webclient功能有限,特别是不能使用身份验证证书,这样,上传数据时候问题出现,现在许多站点都不会接受没有身份验证的上传文件.尽管可以给请求添加标题信息并检查相应中的标题信息,但这仅限于一般意义的 ...
- luogu P1552 [APIO2012]派遣 题解--可并堆/贪心
题目链接: https://www.luogu.org/problemnew/show/P1552 分析: 一开始愣是没看懂题,后面发现就是你要找一个树上点集使得各点权值之和小于\(M\),并且找一个 ...
- Scrapy 爬取某网站图片
1. 创建一个 Scrapy 项目,在命令行或者 Pycharm 的 Terminal 中输入: scrapy startproject imagepix 自动生成了下列文件: 2. 在 imagep ...
- js中with的作用
js中with的作用当一个对象有多个需要操作的属性或方法时,可以使用如<体>试验<script type=“text/javascript”>var o=文件.创建元素(“DI ...
- Ajax与JSON,XML,PHP
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- im_master_search_specification
中文 http://accel-archives.intra-mart.jp/2014-winter/document/iap/public_zh_CN/im_master/im_master_sea ...