Integer

来源:互联网 发布:七龙珠同人小说知乎 编辑:程序博客网 时间:2024/05/29 09:13

概述

  需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来  需求2:我要求大家判断一个数据是否是int范围内的。        首先你的知道int的范围是多大?  为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型。包装类类型。      byte              Byte      short             Short      int               Integer      long              Long      float             Float      double            Double      char              Character      boolean           Boolean  用于基本数据类型与字符串之间的转换。
package cn.itcast_01;public class IntegerDemo {    public static void main(String[] args) {        // 不麻烦的就来了        // public static String toBinaryString(int i)        System.out.println(Integer.toBinaryString(100));        // public static String toOctalString(int i)        System.out.println(Integer.toOctalString(100));        // public static String toHexString(int i)        System.out.println(Integer.toHexString(100));        // public static final int MAX_VALUE        System.out.println(Integer.MAX_VALUE);        // public static final int MIN_VALUE        System.out.println(Integer.MIN_VALUE);    }}

Integer的构造方法

  public Integer(int value)  public Integer(String s)        注意:这个字符串必须是由数字字符组成
package cn.itcast_02;public class IntegerDemo {    public static void main(String[] args) {        // 方式1        int i = 100;        Integer ii = new Integer(i);        System.out.println("ii:" + ii);        // 方式2        String s = "100";        // NumberFormatException        // String s = "abc";        Integer iii = new Integer(s);        System.out.println("iii:" + iii);    }}

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

  int -- String        推荐:String.valueOf(number)  String -- int        推荐:Integer.parseInt(s)
package cn.itcast_03;public class IntegerDemo {    public static void main(String[] args) {        // int -- String        int number = 100;        // 方式1        String s1 = "" + number;        System.out.println("s1:" + s1);        // 方式2        String s2 = String.valueOf(number);        System.out.println("s2:" + s2);        // 方式3        // int -- Integer -- String        Integer i = new Integer(number);        String s3 = i.toString();        System.out.println("s3:" + s3);        // 方式4        // public static String toString(int i)        String s4 = Integer.toString(number);        System.out.println("s4:" + s4);        System.out.println("-----------------");        // String -- int        String s = "100";        // 方式1        // String -- Integer -- int        Integer ii = new Integer(s);        // public int intValue()        int x = ii.intValue();        System.out.println("x:" + x);        //方式2        //public static int parseInt(String s)        int y = Integer.parseInt(s);        System.out.println("y:"+y);    }}

进制转换

  常用的基本进制转换  public static String toBinaryString(int i)  public static String toOctalString(int i)  public static String toHexString(int i)  十进制到其他进制  public static String toString(int i,int radix)  由这个我们也看到了进制的范围:2-36  为什么呢?0,...9,a...z  其他进制到十进制  public static int parseInt(String s,int radix)
package cn.itcast_04;public class IntegerDemo {    public static void main(String[] args) {        // 十进制到二进制,八进制,十六进制        System.out.println(Integer.toBinaryString(100));        System.out.println(Integer.toOctalString(100));        System.out.println(Integer.toHexString(100));        System.out.println("-------------------------");        // 十进制到其他进制        System.out.println(Integer.toString(100, 10));        System.out.println(Integer.toString(100, 2));        System.out.println(Integer.toString(100, 8));        System.out.println(Integer.toString(100, 16));        System.out.println(Integer.toString(100, 5));        System.out.println(Integer.toString(100, 7));        System.out.println(Integer.toString(100, -7));        System.out.println(Integer.toString(100, 70));        System.out.println(Integer.toString(100, 1));        System.out.println(Integer.toString(100, 17));        System.out.println(Integer.toString(100, 32));        System.out.println(Integer.toString(100, 37));        System.out.println(Integer.toString(100, 36));        System.out.println("-------------------------");        //其他进制到十进制        System.out.println(Integer.parseInt("100", 10));        System.out.println(Integer.parseInt("100", 2));        System.out.println(Integer.parseInt("100", 8));        System.out.println(Integer.parseInt("100", 16));        System.out.println(Integer.parseInt("100", 23));        //NumberFormatException        //System.out.println(Integer.parseInt("123", 2));    }}

JDK5新特性

  JDK5的新特性  自动装箱:把基本类型转换为包装类类型  自动拆箱:把包装类类型转换为基本类型  注意一个小问题:        在使用时,Integer  x = null;代码就会出现NullPointerException。        建议先判断是否为null,然后再使用。
package cn.itcast_05;public class IntegerDemo {    public static void main(String[] args) {        // 定义了一个int类型的包装类类型变量i        // Integer i = new Integer(100);        Integer ii = 100;        ii += 200;        System.out.println("ii:" + ii);        // 通过反编译后的代码        // Integer ii = Integer.valueOf(100); //自动装箱        // ii = Integer.valueOf(ii.intValue() + 200); //自动拆箱,再自动装箱        // System.out.println((new StringBuilder("ii:")).append(ii).toString());        Integer iii = null;        // NullPointerException        if (iii != null) {            iii += 1000;            System.out.println(iii);        }    }}

面试题(重点)

package cn.itcast_06;/* * 看程序写结果 *  * 注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据 */public class IntegerDemo {    public static void main(String[] args) {        Integer i1 = new Integer(127);        Integer i2 = new Integer(127);        System.out.println(i1 == i2);        System.out.println(i1.equals(i2));        System.out.println("-----------");        Integer i3 = new Integer(128);        Integer i4 = new Integer(128);        System.out.println(i3 == i4);        System.out.println(i3.equals(i4));        System.out.println("-----------");        Integer i5 = 128;        Integer i6 = 128;        System.out.println(i5 == i6);        System.out.println(i5.equals(i6));        System.out.println("-----------");        Integer i7 = 127;        Integer i8 = 127;        System.out.println(i7 == i8);        System.out.println(i7.equals(i8));        // 通过查看源码,我们就知道了,针对-128127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间        // Integer ii = Integer.valueOf(127);    }}
0 0