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. global和nonlocal的用法

    1 nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量.写在内部嵌套函数里面,它实质上是将该变量定义成了全局变量,它等价于用两个global来定义该变量.只不过用两个gl ...

  2. java:LeakFilling (Mybatis)

    1.实体类属性与数据库中字段名字不一样时,或者起别名时: TbOrderMapper.xml配置文件中,配置resultMap标签: 其它相同的标签也需要配,否则查询不出来对应数据. 2.一对一关联: ...

  3. 【Qt开发】布局控件之间的间距设置

    void QLayout::setContentsMargins ( int left, int top, int right, int bottom ) Sets the left, top, ri ...

  4. Python 正则匹配网页内的IP地址及端口号

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2017-08-30 20:38:23 # @Author : EnderZhou (z ...

  5. C语言Ⅰ博客作业03

    一. 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8718 我在这个课 ...

  6. layer弹出框的简易封装和使用

    1. 封装layer 下载layer绿色版和jquery引入页面 <!DOCTYPE html> <html lang="zh-CN"> . . . < ...

  7. 使用ActiveMQ实现JMS消息通信服务

    PTP(点对点的消息模型) 在点对点模型中,相当于两个人打电话,两个人独享一条通信线路.一方发送消息,一方接收消息. 在p2p的模型中,双方通过队列交流,一个队列只有一个生产者和一个消费者. 1.建立 ...

  8. APT高持续渗透攻击-后门篇

    APT是指高级持续性威胁, 利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式,APT攻击的原理相对于其他攻击形式更为高级和先进,其高级性主要体现在APT在发动攻击之前需要对攻击对象的业务流 ...

  9. RabbitMQ入门教程(十一):消息属性Properties

    原文:RabbitMQ入门教程(十一):消息属性Properties 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  10. [转载]Ubuntu下apache的安装与配置

    原文地址:https://blog.csdn.net/gatieme/article/details/53025505 1 安装apache 在 Ubuntu 上安装 Apache,有两种方式 使用源 ...