在 java 中为什么会有基本数据类型的包装类?

①:基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类;

   ②:有时候一个函数需要传递一个Object的变量 而你想传递int类型的进去显然不行,怎么办呢,用到了包装类;

   故基本数据类型的包装类用法主要是:实现基本类型之间的转换; 便于函数传值; 在一些地方要用到Object的时候方便将基本数据类型装换

基本数据类型的包装类:

  1. 每一个基本数据类型,在一般情况下分配在栈上面,如果你想把它包装一下,包装成一个对象,就可以分配在堆上面,使用基本数据类型的包装类;

  2. 包装类(如:Integer,Boolean,Double 等)这些封装了一个相应的基本数据类型数值,并为其提供一系列操作;

3. 以 java.lang.Integer 类为例,相应的构造方法:

     Integer(int Value)、Integer(String s)

包装类常见方法:

  1. 以下方法以 java.lang.Integer 类为例:

1.1 public static final int MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值;

      1.2 public static final int MIN_VALUE : 值为 -231 的常量,它表示 int 类型能够表示的最小值;

1.3 public int intValue():以 int 类型返回该 Integer 的值. 其返回的是转换为 int 类型后该对象表示的数值;

1.4 public long longValue():以 long 类型返回该 Integer 的值. 其返回的是转换为 long 类型后该对象表示的数值;

1.5 public double doubleValue():以 double 类型返回该 Integer 的值. 其返回的是转换为 double 类型后该对象表示的数值;

1.6 public static int parseInt(String s) throws NumberFormatException:将字符串参数作为有符号的十进制整数进行解析。

1.7 public static Integer valueOf(String s) throws NumberFormatException:返回 Integer 对象,其中封装的整型数据为字符串 s 所表示.

2. 包装类举例:

public class Test {
public static void main(String[] args){
Integer i = new Integer(100); // 分配在堆内存中
Double d = new Double("12.568"); // 相当于先把字符串转换为double类型的数,然后再封装到Double基本数据类型的对象中去
int j = (int) (i.intValue()+d.doubleValue());
double pi = Double.parseDouble("3.1415926");
double r = Double.valueOf("2.000").doubleValue();
System.out.println(r); //2.0
double s = pi*r*r;
try {
int k = Integer.parseInt("1.25");
} catch (NumberFormatException e) {
System.out.println("数据格式不对"); // 数据格式不对
}
System.out.println(Integer.toBinaryString(123)+'B'); // 1111011B
System.out.println(Integer.toHexString(123)+'H'); // 7bH
System.out.println(Integer.toOctalString(123)+'O'); // 173O
}
}

Java中的基本数据类型包装类的更多相关文章

  1. Java中的变量数据类型补充

    Java中变量的数据类型的补充 变量按照数据类型进行分类 1.基本数据类型 数值型:①整数类型(byte,short,int,long)②浮点型(float,doubbe)③字符型(char)④布尔型 ...

  2. Java中常用类(包装类扩展知识)

    Java常用类有哪些? 八大基本数据类型的包装类 包装类均位于java.lang包中,包装类和基本数据类型的对应关系如下表: 基本数据类型 包装类 byte Byte boolean Boolean ...

  3. Java中特殊的类——包装类

    Java中特殊的类--包装类 包装类就是将基本数据类型封装在类中. 1.包装类 (1)自定义包装类 将基本数据类型包装成一个类对象的本质就是使用Object进行接收处理. 此时IntDemo类就是in ...

  4. JAVA中分为基本数据类型及引用数据类型

    一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...

  5. 二、java中的基本数据类型

    总结: 1.java中的基本数据类型有byte.short.int.long;float.double;char;boolean. 2.基本数据类型与1相对应分别占1.2.4.8;4.8;2;1.(单 ...

  6. java中的基本数据类型一定存储在栈中吗?

    首先说明,"java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的. 下面让我们一起来分析一下原因: 基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型 ...

  7. java中的基本数据类型和引用数据类型

    java中基本数据类型有8种:byte,short,int,long,char,float,double,boolean 整型有四种:byte short,int,long byte:   1字节   ...

  8. JAVA中分为基本数据类型和引用数据类型区别

    一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...

  9. java中8种数据类型和默认值所占字节数

    java 8种基本数据类型的默认值及所占字节数 通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge; 2 3 public class Ceshi { 4 int a; ...

随机推荐

  1. swift3.0 保存图片到本地,申请权限

    1.info中写上 <key>NSCameraUsageDescription</key> <string>需要您的同意才能读取媒体资料库</string&g ...

  2. Spring的绿草丛

    Spring 轻量级框架,JavaEE的春天,当前主流框架 “站立式”的企业应用开发框架 目标 实现有的技术更加易用,推进编码最佳实践 内容:loC容器,AOP实现,数据访问支持:简化JDBC/ORM ...

  3. js 校验身份证号

    根据地区编码.身份证格式.18位身份证需要验证最后一位校验位 //校验身份证 function IdentityCodeValid(code) { var city = { 11: "北京& ...

  4. Vagrant 总结

    引言   本文将讨论Vagrant基础应用,高级应用,基于Vagrant 的虚拟机优化,Vagrant的优势及区别等四部分   参考资料: [阿里云教程中心]Docker学习总结之Docker与Vag ...

  5. 【Java】集合概述Collection、Map

    Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...

  6. Yii2 yiisoft/mongodb 手动安装

    手动将yiisoft/mongodb下载到vendor/yiisoft目录(注意约束条件). 在vendor/yiisoft/extensions.php 中添加 'yiisoft/yii2-mong ...

  7. linux搭建的LNMP环境下的mysql授权远程连接

    用phpstudy搭建的lnmp环境下mysql授权远程连接 简单高效 这是因为mysql 里的优先级不是所有人(提前检查防火墙是关闭状态)1.使用phpstudy安装的mysql没有放置到可以直接调 ...

  8. BZOJ4300_绝世好题_KEY

    题目传送门 刚开始是看到这道题目还以为是序列连续的. 当然了,序列可以不连续. 设f[i]表示到第i位时的序列的最长长度. 取cnt=Max f[j]+1,然后转移回去使f[j]=cnt. 这是为了让 ...

  9. node环境清空控制台的代码

    process.stdout.write( process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H' );

  10. KubeCon深度洞察 | KubeEdge开源首秀

    以下内容根据华为云DJ在KubeCon Shanghai Demo Session演讲实录整理而成. KubeEdge Demo Show 11月15日上午Huawei宣布了KubeEdge项目开源, ...