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类 是将一个基本类型为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 表示返回基本类型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当中的基本类型包装类相关推荐

  1. java返回给前端的包装类型_Java当中的基本类型包装类

    Java当中的基本类型包装类 01 基本数据类型对象的包装类 **什么是基本数据类型对象包装类呢?**就是把基本数据类型封装成对象,这样就可以提供更多的操作基本数值的功能了. 基本数据类型对象的包装类 ...

  2. java中的图形界面编辑界面_第58节:Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  3. java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上

    标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class  ...

  4. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  5. java返回给前端的json数据中带有转义符号如何处理

    情景描述: 有的场景我们存的是String字符串但是不能每次都固定的实体进行封装,这时候我们如果直接返回给前端对应的字符串,其中就会出现对应的 "\ 的转义符号,如何去掉呢? 解决方法 在获 ...

  6. 数据库decimal对应java什么类型_数据库类型和java类型对应关系 | 学步园

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述 VARCHAR  L+N  VARCHAR  java.lang.String 12 CHAR N CHAR java. ...

  7. java编写桌球游戏素材小球图片_你学不好Java还是有原因的!拿走这套Java系统教程,自学必备...

    很多同学都遇到过一种情况:就是无论自己怎么学Java,到头来发现学的都是皮毛,当真正去用python去做一个项目的时候,脑袋里面一片空白.完全不知道从何做起! 那是你没有系统的学过一次Java,现在的 ...

  8. java lt t gt 是什么意思_关于泛型:Java 7中的菱形运算符(&lt;&gt;)有什么意义?...

    Java 7中的菱形操作符允许如下代码: List list = new LinkedList<>(); 然而,在Java 5/6中,我可以简单地写: List list = new Li ...

  9. java mysql单库多表_第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...

最新文章

  1. Python基础教程:正则表达式re高级用法与案例
  2. linux权限776代表,Linux 权限设置chmod
  3. 灵图天行者9 pc版_原神PC预下载现已开启
  4. df -h 显示100%的解决办法
  5. c 中=和==的区别有哪些?
  6. PHP+jquery 树状菜单
  7. 简单复读机LR如何成为推荐系统精排之锋?
  8. 优秀!90后博士做出世界级成果,发32篇SCI,四拿国奖,两获国际荣誉
  9. ecs服务器数据迁移_免费服务器迁移上云实践分享!一键迁云,自动同步
  10. 【转】oracle回闪操作
  11. 将hls生成的IP添加到vivado2018
  12. 引用 一个较优雅的GridView隐藏列取值解决方案
  13. 我的创作纪念日——文章汇总
  14. FreeRTOS软件定时器
  15. 股票数据Scrapy爬虫-Python网络爬虫与信息提取-北京理工大学嵩天教授
  16. 理解 this.initialize.apply ( this, arguments )
  17. php主机卫士,Bypass 360主机卫士SQL注入防御(多姿势)
  18. OA系统的主要功能和作用是什么
  19. oracle服务器配置端口,服务端配置一个多端口号(如1521/1526)监听器
  20. 为什么使用 LinkedIn 进行联盟营销活动?

热门文章

  1. 动态规划背包问题之多重背包详解
  2. python作业--使用turtle()库实现“流汗黄豆”表情
  3. FBX格式mesh解析与加载(二)
  4. 电信网上用户自管理系统的设计与实现
  5. 银河麒麟V10部署iServer
  6. Swagger(Api接口管理)
  7. python如何读取文件指定行_Python读取文件、大文件和指定行内容的几种方法
  8. Winserver 2016搭建AD域
  9. 有人把微信“跳一跳”玩到10000分,高分秘籍是…
  10. tar 压缩与解压缩