2.基本数据类型数据的包装类

局部变量中基本数据类型直接分配在栈中,而对象分配在堆中

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法来操作该数据

包装类主要功能:用于基本数据类型与字符串之间的转换

2.1 Integer类

2.1.1构造方法

Integer 类在对象中包装了一个基本类型 int 的值。
此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。

2.1.2包装类和基本数据类型和字符串的转化

        Interger i1=5;//自动装箱
        Interger i2=new Interger(1);
        Interger i3=Interger.valueOf(3);

        int i4 = i1;//自动拆箱
        int i5 = i2.intValue();

        String s1 = 5+"";自动装箱
        String s2 = String.valueOf(3);

String转换成int值的几种方式:
1.int i1 = Integer.parseInt("12");
2.int i2 = new Integer("12").intValue();
推荐第一种方式,这也是包装类的最常用的场景

字符串转换为其它基本数据类型
byte b = Byte.parseByte("15");
float f = Float.parseFloat("1.5");
double d = Double.parseDouble("3.14");

      .toString方法

    Integer i8 = new Integer("3");

2.1.3版本说明

2.1.4int值转换成String

  int值转换成String的4种方式:

  1. String s1 = "" + 10;
  2. String s2 = String.valueOf(10);
  3. String s3 = new Integer(10).toString();
  4. String s4 = Integer.toString(10);

  推荐使用第一,二种方式

2.1.5 debug自动装箱

查看一下拥有调用这个方法所在这个类:

2.1.6练习题

/*
* 不使用构造方法去创建Integer对象(自动装箱)
* 当值在-128 到 +127之间时,实际返回的是缓冲区中的对象的引用.
*
* 反之调用的是valueOf方法-->new Integer(int value)
*
*/
public class IntegerDemo5 { public static void main(String[] args) {
Integer i1 = new Integer(10);
Integer i2 = new Integer(10);
System.out.println(i1 == i2);//比较的是内存地址 false Integer i3 = 200;
Integer i4 = 200;
System.out.println(i3 == i4);//false Integer i5 = 100;
Integer i6 = 100;
System.out.println(i5 == i6);//true
} }

2.2BigInteger类

针对超出Integer表数范围的大数场景,Java提供了BigInteger类,用于大整型数的计算(加减乘除余

BigInteger add(BigInteger val)
  返回其值为 (this + val) 的 BigInteger
BigInteger subtract(BigInteger val)
  返回其值为 (this - val) 的 BigInteger。
BigInteger multiply(BigInteger val)
  返回其值为 (this * val) 的 BigInteger。
BigInteger divide(BigInteger val)
  返回其值为 (this / val) 的 BigInteger。
BigInteger[] divideAndRemainder(BigInteger val)
  返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。

2.3BigDecimal类

针对精确计算的场景,Java提供了BigDecimal类,用于浮点数的精确计算

构造方法:
BigDecimal(double value)
  直接使用double参数的构造方法有一定的不预支性
BigDecimal(String value)
  必须把他转成String类型才会准确

2.4Character类

Character 类在对象中包装一个基本类型 char 的值。

构造方法(只有一个):
Character(char value)
构造一个新分配的 Character 对象,用以表示指定的 char 值。

此外,该类提供了几种方法,

  1. 以确定字符的类别(小写字母,数字,等等),
  2. 并将字符从大写转换成小写,反之亦然。

都是静态方法
boolean isUpperCase(char ch)
boolean isLowerCase(char ch)
boolean isDigit(char ch)
char toUpperCase(char ch)
char toLowerCase(char ch)

java常用类与包装类--包装类的更多相关文章

  1. Java常用类:包装类,String,日期类,Math,File,枚举类

    Java常用类:包装类,String,日期类,Math,File,枚举类

  2. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

  3. Java 常用类总结(SE基础)

    本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...

  4. Java基础 —— Java常用类

    Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...

  5. Java常用类之要点总结

    Java常用类之要点总结

  6. Java常用类的使用

    Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...

  7. Java常用类归纳(Object、System、Properties、包装类和工具类等等)

    Object类 Object 是类层次结构的根类.每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法.了解Object的方法是很有必要的. protected Object ...

  8. Java工具类之:包装类

    Java工具类--包装类 我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工 ...

  9. java常用类-上

    一,常用类之一包装类 java开发中习惯把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lan ...

  10. 第十四章 Java常用类

    14.常用类 14.1 字符串相关的类 1课时 14.2 JDK 8之前时间日期API 1课时 14.3 JDK8中新时间日期API 1课时 14.4 JDK8中的Optional类 1课时 14.5 ...

随机推荐

  1. 如何在win10上运行httpRunner的api_server服务

    将下载的api_server.py放在d:/code文件夹下 安装flask :pip install flask 切换到d:/code文件夹下 浏览器打开地址:http://127.0.0.1:50 ...

  2. java:Servlet(Create,LifeCycle,ServletWeb.xml文件的配置,交互式,Tomcat文件分析,单例安全模式)

    1.Servlet: Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容.这个过程为: 客户端发送请求至服务器端: 服务器将请求信息发送至 Servlet: Servlet ...

  3. python基础学习笔记-切片难点

    numbers = [1,2,3,4,5,6,7,8,9,10] print(numbers[5::-2]) print(numbers[10:5:-2]) print(numbers[:5:-2]) ...

  4. SVM之KKT条件理解

    在SVM中,我们的超平面参数最终只与间隔边界上的向量(样本)有关,故称为支持向量机. 求解最优超平面,即求最大化间隔,或最小化间隔的倒数:||w||2/2,约束条件为yi(wTxi+b)>=1 ...

  5. noi.ac-CSP模拟Day5T2 灯

    算是一道思维题吧,没有什么算法在里面. 之前想的是,能走的话就尽量走远,走过去开灯然后再回去关灯,然后再走,每一段路要走3次. 然而,“能走的话就尽量走远”只是yy的一个贪心,没有任何依据.假设在中间 ...

  6. linxu passwd 给linux用户设置密码 命令

    [root@localhost ~]# passwd # 修改 root 用户的密码 passwd 给linux用户设置密码 命令 passwd www 直接passwd是当前用户设置密码 非交互式修 ...

  7. axios中设置Content-Type不生效的问题

    Api:axios(config): config中无data字段时,headers里的Content-Type无效果,这应该出于优化的层面,此时的Content-Length=0,无需向服务端提供C ...

  8. numpy数组的索引和切片

    numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...

  9. div距离左边设置

    margin-right:不加负号, margin-left:必须加负号,理解为倒数 margin-left:-10px;

  10. P3964 [TJOI2013]松鼠聚会

    传送门 首先题意就是求一个点到所有其他点的切比雪夫距离和最小 考虑枚举所有点作为答案,那么我们需要快速计算切比雪夫距离和,发现不太好算 根据一些奇怪的套路,我们把坐标系变化,把 $(x,y)$ 变成 ...