第47节: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 点赞
第47节:Java当中的基本类型包装类的更多相关文章
- Java当中的基本类型包装类
Java当中的基本类型包装类 01 基本数据类型对象的包装类 **什么是基本数据类型对象包装类呢?**就是把基本数据类型封装成对象,这样就可以提供更多的操作基本数值的功能了. 基本数据类型对象的包装类 ...
- 第55节:Java当中的IO流-时间api(下)-上
Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...
- 第54节:Java当中的IO流(中)
Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...
- 第53节:Java当中的IO流(上)
Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字符串和基 ...
- JAVA基础之基本类型包装类、System类、Math类、Arrays类及大数据运算
个人理解: 为了方便运算及调用一些方法,我们需要将基本类型的数值转换为对象:不过转换的时候需要特别注意好它们的类型到底是什么,需要调用方法的类名是哪个!特别注意是Byte常量池的相关问题(==):gc ...
- 第51节:Java当中的集合框架Map
简书作者:达叔小生 Java当中的集合框架Map 01 Map提供了三个集合视图: 键集 值集 键-值 映射集 public String getWeek(int num){ if(num<0 ...
- 第48节:Java当中的集合框架
Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...
- 第46节:Java当中的常量池
Java当中的常量池 在Java虚拟机jvm中,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区. 程序计数器是jvm执行程序的流水线,是用来存放一些指令的,本地方法栈是jvm操作系统方 ...
- 第45节:Java当中的变量,面向对象
Java当中的变量 01 Java当中的实例变量和类变量 什么是实例变量和类变量呢? 实例变量为没有用static修饰符修饰的变量,而类变量为用static修饰符修饰的变量. public class ...
随机推荐
- CentOS开机提示kernel panic - not syncing: Attempted to kill init! 解决方法
1.重新启动linux 系统,看见如图见面迅速按E键 2.看见如图界面在按E键编辑 3.如图界面使用上下键选择第二个在按E键 4.在最后一行后面添加 enforcing=0 按回车保存退出 5.在此 ...
- MUI 添加自定义图标(注意点)
参考: https://blog.csdn.net/qq_39759115/article/details/79436606 注意: 1. 将这个原来的逗号改成分号 2. 这些图标的名字都可以改名字
- leetcode5:最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...
- 我的第一个flink_java程序
之前看了视频学习第一个flink word count使用,但是对于socket发送数据作为数据源我这里有点忘记了,加上最近有个项目要发布,一直在忙,所以迟迟无法完成: 1.首先我们要有数据源,因为 ...
- Vmware Workstation - linux系统下 VmTools 安装
程序版本 : VMware® Workstation 14 Pro 系统环境 : win10 64位下 ubuntu-14.04.5-desktop-amd64 问题:在运行linux系统过程中,de ...
- sql_calc_found_rows原理
- eclipse新建servers时选中tomcat版本后next是灰色的解决
有时在编辑器里删除server后就不能重新new了,因为不能点next. 试了下面的方法,可以用. 1.退出2.到[工程目录下]/.metadata/.plugins/org.eclipse.core ...
- 结果集ResultSet
我们访问数据库时候经常见到这样遍历结果集 conn = DBHelper.getConnection(); String sql = "select * from items"; ...
- #2019-2020-4 《Java 程序设计》第七周总结
2019-2020-4 <Java 程序设计>第七周知识总结 第八章:常用实用类 一.String类 String类的构造方法 public String(byte[] bytes); p ...
- Oracle 中DATE类型的计算
select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) f ...