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. NTT研发

    2.研发标准 stead---大型机 css terasolunt---反向自动生成设计书 3.开发阶段做好设计,确定需求,测试阶段只是做产品有多差或者完成了多少需求,不是用来提高产品质量的过程

  2. javascript-对象的函数(一)

    Date.prototype.Format = function(fmt) { //author: meizz var o = { "M+" : this.getMonth()+1 ...

  3. nodejs remote链接mysql数据库总结

    nodejs链接远端mysql,这个折腾了一个上午才搞定.本以为,直接使用就OK了,但是发现不行,后来查阅各种资料后,终于找到了方法. nodejs链接远端数据库主要分为几个步骤: 1)安装node- ...

  4. laravel扩展xls处理maatwebsite/excel

    github地址:https://github.com/Maatwebsite/Laravel-Excel 安装: sudo composer require maatwebsite/excel 配置 ...

  5. uniquery 配合 mssql 自带存储过程实现分页

    --使用系统存储过程实现的通用分页存储过程 -- 此过程原作者,应该是:邹健老前辈 CREATE PROC sp_PageView @sql ntext, --要执行的sql语句 , --要显示的页码 ...

  6. mysql_sql语句之美

    无线地址及数量统计 单个用户无线登录信息统计

  7. NVIDIA显卡设置提升MineCraft流畅度

    很喜欢MineCraft(我的世界)这款游戏.可09年Y450的配置现在看来有点弱,尽管将Y450的CPU升级至了2.8Ghz的T9600,内存升级至1066Mhz的4G双通道内存,硬盘更换为128G ...

  8. 关于Simple.Data.PostgreSql的ExecuteReader没实现非常坑爹的问题

    https://github.com/ChrisMH/Simple.Data.PostgreSql/issues/3 github上有个issues...默认从nuget上下载的Simple.Data ...

  9. MySQL中bin-log使用

    操作命令:show binlog events ; reset master 删除所有的二进制日志 flush logs 产生一个新的binlog日志文件 show master logs; 或者 s ...

  10. OFBiz进阶之HelloWorld(五)创建新实体

    参考文档 https://cwiki.apache.org/confluence/display/OFBIZ/OFBiz+Tutorial+-+A+Beginners+Development+Guid ...