1、包装类的概述

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

  · 常用的操作之一:用于基本数据类型与字符串之间的转换

  · 基本类型和包装类的对应

  为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。
  byte      Byte
  short    Short 
  int     Integer  
  long    Long 
  float    Float
  double   Double
  char    Character  
  boolean   Boolean
 
2、Integer类
 
/**
* Integer的构造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:这个字符串必须是由数字字符组成
*/
public class IntegerDemo01{
public static void main(String[] args) {
//方式一:
int i =100;
Integer ii = new Integer(i);
System.out.println("ii:"+ii); //ii:100
//方式二:
String s = "100";
Integer iii = new Integer(s);
System.out.println("iii:"+iii); //iii:100
}
}

 
成员方法:
 
public class IntegerDemo02 {
public static void main(String[] args) {
//输出100的二进制,八进制和十六进制
System.out.println(Integer.toBinaryString(100)); //
System.out.println(Integer.toOctalString(100)); //
System.out.println(Integer.toHexString(100)); //
System.out.println(Integer.MAX_VALUE); //
System.out.println(Integer.MIN_VALUE); //-2147483648
}
}

3、int类型和String类型的相互转换

  · public int intValue():以int类型返回该Integer的值            
  · public static int parseInt(String s):将字符串参数作为有符号的十进制整数进行解析           
  · public static String toString(int i):返回一个表示指定整数的String对象           
  · public static Integer valueOf(int i):返回一个表示指定的int值的Integer实例           
  · public static Integer valueOf(String s):返回一个表示指定的String值的Integer实例
//int --> String : String.valueOf(int)
//String --> int : Integer.paraseInt(String)
public class IntegerDemo03 {
public static void main(String[] args) {
//int --> String
int num = 100;
//方式一:
String s1 = "" + num;
System.out.println("s1:" + s1);
//方式二:推荐
String s2 = String.valueOf(num);
System.out.println("s2:"+s2);
//方式三:
//int --> Integer --> String
String s3 = new Integer(num).toString();
System.out.println("s3:"+s3);
//方式四:
String s4 = Integer.toString(num);
System.out.println("s4:"+s4);
System.out.println("----------------");
//String --> int
//方式一:String --> Integer --> int
//public int intValue();
String s = "100";
Integer i = new Integer(s);
int i1 = i.intValue();
System.out.println("i1:"+i1);
//方式二:Integer.paraseInt(s):推荐
int i2 = Integer.parseInt(s);
System.out.println("i2:"+i2);
}
}
 
4、常用的基本进制转换
  A:十进制转成二进制,八进制和十六进制
    · public static String toBinaryString(int i)            
    · public static String toOctalString(int i)            
    · public static String toHexString(int i)       
  B:十进制到其他进制            
    · public static String toString(int i,int radix)           
    范围是从2到36
        C:其他进制到十进制            
    · public static int parseInt(String s,int radix)
public class IntegerDemo04 {
public static void main(String[] args) {
//十进制到二进制,八进制,十六进制
System.out.println(Integer.toBinaryString(100)); //
System.out.println(Integer.toOctalString(100));//
System.out.println(Integer.toHexString(100)); //64
//十进制到其他进制
System.out.println(Integer.toString(100, 10)); //
System.out.println(Integer.toString(100,2)); //
System.out.println(Integer.toString(100,36)); //2s
System.out.println(Integer.toString(100, 37)); //100
//其他进制到十进制
System.out.println(Integer.parseInt("100",10)); //
System.out.println(Integer.parseInt("100",2)); //4
//报错,因为二进制中没有2,3
//System.out.println(Integer.parseInt("123",2));
}
}
 
5、JDK5的新特性:
    自动装箱:把基本类型转成包装类类型
    自动拆箱:把包装类类型转成基本类型
       Integer x = new Integer(4);可以直接写成    Integer x = 4;//自动装箱。    
  x  = x + 5;//自动拆箱。通过intValue方法。    
 需要注意:    
  在使用时,Integer  x = null;上面的代码就会出现NullPointerException。
public class IntegerDemo05 {
public static void main(String[] args) {
//定义了一个int类型的包装类类型变量i
//Integer i1 = new Integer(100);
Integer i2 = 200;
i2 += 300;
System.out.println("i2:"+i2);
//通过反编译后的代码
//Integer i2 = Integer.valueOf(200); //自动装箱
//i2 = Integer.valueOf(i2.intValue() + 200);
//System.out.println((new StringBuilder("i2:")).append(i2).toString());
}
}
 
6、Integer直接赋值的面试题
    注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里直接获取数据
public class IntegerDemo06 {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2); //false
System.out.println(i1.equals(i2)); //true
System.out.println("---------------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4); //false
System.out.println(i3.equals(i4)); //true
System.out.println("---------------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6); //false
System.out.println(i5.equals(i6)); //true
System.out.println("---------------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8); //true
System.out.println(i7.equals(i8)); //true
Integer i = Integer.valueOf(127);
//通过查看源码,针对-128到127之间的数据做了一个数据缓冲池,
//如果一个数据是在该范围内的,每次都并不创建新的空间,
//如果不在这个范围里面的就会创建新的对象
// public static Integer valueOf(int i) {
// assert IntegerCache.high >= 127;
// if (i >= IntegerCache.low && i <= IntegerCache.high)
// return IntegerCache.cache[i + (-IntegerCache.low)];
// return new Integer(i);
}
}
 
 
 
 
 

Java API ——包装类的更多相关文章

  1. 泛型接口、JAVA API、包装类

    泛型接口就是拥有一个或多个类型参数的接口 语法: public interface 接口名<类型形参>{ 方法名(类型形参 类型形参实例); } 示例: public interface ...

  2. Java API 快速速查宝典

    Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...

  3. 浅谈Java的包装类

    一.什么是Java包装类 所谓Java包装类,就是将Java中的8种基本数据类型分别包装成为类的形式.包装类与基本数据类型的对应关系如下表所示. 基本数据类型 包装类 byte Byte short ...

  4. mybatis Java API

    既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDBC 相比, MyB ...

  5. Java数据持久层框架 MyBatis之API学习八(Java API详解)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  6. Java开发知识之Java的包装类

    Java开发知识之Java的包装类 一丶什么是包装类 包装类的意思就是对基本数据类型封装成一个类.这些类都是Number的子类.区别就是封装数据类型不同.包含的方法基本相同. 具体可以查询JAVA A ...

  7. MyBatis——Java API

    Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDB ...

  8. Mybatis学习--Java API

    学习笔记,选自Mybatis官方中文文档:http://www.mybatis.org/mybatis-3/zh/java-api.html#directoryStructure 既然你已经知道如何配 ...

  9. Java-MyBatis: MyBatis3 | Java API

    ylbtech-Java-MyBatis:  MyBatis3 | Java API 1.返回顶部 1. Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升 ...

随机推荐

  1. C++与Lua交互(三)

    通过上一篇的热身,我们对C++调用lua变量有了一个认识,现在让我们再深入一点,去探索一下如何调用lua的函数.表. Lua与宿主通讯的关键--栈 lua是个动态脚本语言,它的数据类型如何映射到C++ ...

  2. C语言函数参数既做出参又做入参的代表

    //使用fcntl对文件进行加锁 #include "stdio.h"#include "unistd.h"#include "fcntl.h&quo ...

  3. php学习问题记录

    1.微信应用开发,Token认证失败,解决方法php页面加上一句代码: header('content-type:text');

  4. dom4j api 详解--XPath 节点详解

    dom4j api 详解 http://871421448.iteye.com/blog/1546955 XPath 节点 http://www.w3school.com.cn/xpath/xpath ...

  5. MYSQL 多表更新 UPDATE SET like concat('%',abc,'%');

    SQL语句为:select * from table1 where `text` like CONCAT('%',(select name from table2 where id =3),'%'); ...

  6. 安装 php 转

    一 安装 php 命令: sudo apt-get install libapache2-mod-php5 php5 出现了如下错误: 按照方案一 解决了此问题. 一下 from   http://w ...

  7. Ducci Sequence

    Description   A Ducci sequence is a sequence of n-tuples of integers. Given an n-tuple of integers ( ...

  8. gulp前端自动化构建工具入门篇

    现在我们通过这3个问题来学习一下: 1.什么是gulp? 2.为什么要用gulp? 3.怎么用?   什么是gulp 答:是一个前端自动化的构建工具,直白点说,如果没有这个工具,我们利用人工依旧可以做 ...

  9. PHP 对数组数值进行排序,使用另一个容器

    <?php /* 排序方式::事实上只需要将要循环的数组进行N次循环,然后每次取最大的一个值*/ $array = array(100,25,10,258,33,48,10,5,13,58,33 ...

  10. Create CSS3 Buttons Compatible with All Browsers

    Create CSS3 Buttons Compatible with All Browsers http://www.ourtuts.com/create-css3-buttons-compatib ...