栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

暑假java第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

暑假java第一天

1. 引出包装数据类型:
public class IntegerTest01 {
    //入口
    public static void main(String[] args) {
        //有没有这种需求:调用doSome()方法的时候需要传一个数字进去。
        //但是数字属于基本数据类型,而doSome()方法参数的类型是Object。
        //可见doSome()方法无法接受基本数据类型的数字。那怎么办?可以传一个数字对应的包装类进去。

        //把100这个数字经过构造方法包装成对象
        MyInt myInt=new MyInt(100);
        //doSome()方法虽然不能直接传100,但是可以传一个100对应的包装类型。
        doSome(myInt);
    }
    public static void doSome(Object obj){
        System.out.println(obj);//会自动调用toString(),记得重写
    }
}
class MyInt{
    int i;

    public MyInt(){}
    public MyInt(int i){
        this.i=i;
    }

    //重写toString()
    public String toString() {
        return String.valueOf(i);
    }
}
2. 8种基本数据类型对应的包装类型名是什么?

(都在java.lang包下)
byte ~ Byte(父类java.lang.Number)
short ~ Short(父类java.lang.Number)
int ~ Integer(父类java.lang.Number)
long ~ Long(父类java.lang.Number)
float ~ Float(父类java.lang.Number)
double ~ Double(父类java.lang.Number)
boolean ~ Boolean(父类java.lang.Object)
char ~ Character(父类java.lang.Object)

3. 装箱与拆箱(JDK9之前支持)

装箱和拆箱的概念:

public class Test01 {
    public static void main(String[] args) {
        //基本数据类型-(转换)->引用数据类型 《装箱》
        Integer x=new Integer(123);

        //引用数据类型-(转换)->基本数据类型 《拆箱》
        float f=x.floatValue();
        System.out.println(f);//123.0
        int i=x.intValue();
        System.out.println(i);//123

    }
}

包装类的构造方法:
以Integer为例:
1)Integer(int)
2)Integer(String)
剩下的以此类推!

public class Test02 {
    public static void main(String[] args) {
        //JDK9之后就不支持这种写法了,出现横线表示已经过时
        //int->Integer
        Integer x=new Integer(100);
        System.out.println(x);
        //String->Integer
        Integer y=new Integer("100");
        System.out.println(y);
        //double->Double
        Double m=new Double(3.14);
        System.out.println(m);
        //String->Double
        Double n=new Double("3.14");
        System.out.println(n);
    }
}
4. 常量的最大值与最小值

常量的最大值: 包装类型名.MAX_VALUE
常量的最小值: 包装类型名.MIN_VALUE

public class Test03 {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);//2147483647
        System.out.println(Integer.MIN_VALUE);//-2147483648
        System.out.println(Byte.MAX_VALUE);//127
        System.out.println(Byte.MIN_VALUE);//-128
        System.out.println(Character.MAX_VALUE);
    }
}
5.自动装箱与自动拆箱(JDK1.5之后支持)

例子1(自动拆箱与自动装箱操作)

public class Test04 {
    public static void main(String[] args) {
        //100是基本数据类型
        //x是包装类型
        //基本数据类型--(自动转换)-->包装类型 《自动装箱》
        Integer x=100;
        System.out.println(x);

        //x是包装类型
        //y是基本数据类型
        //包装类型--(自动转换)-->基本数据类型 《自动拆箱》
        int y=x;
        System.out.println(y);

        //z是一个引用,z还是保存了一个对象的内存地址
        Integer z=1000;//等同于Integer z=new Integer(1000);
        //这里没有报错
        //+两边都是基本数据类型,z是包装类,这里进行了自动类型转换,z自动转换为了基本数据类型
        System.out.println(z+1);

        Integer a=1000;
        Integer b=1000;
        //== 比较的是两个对象的内存地址。a,b引用中保存的对象内存地址不同。
        //== 不会触发拆箱
        System.out.println(a==b);//false
    }
}

样例2(面试题)

public class Test05 {
    public static void main(String[] args) {
        Integer a=127;
        Integer b=127;
        System.out.println(a==b);//true

        
        Integer x=128;
        Integer y=128;
        System.out.println(x==y);//false
    }
}
6.缓存机制:

大型项目中的重要优化手段就是:cache
优点:效率高
缺点:耗费内存

7.Integer类有哪些常用的方法?

(其他包装类,以此类推)

//Integer类当中有哪些常用的方法呢?
public class Test06 {
    public static void main(String[] args) {
        //1. intValue()
        //将 Integer的值作为 int 。
        //手动装箱
        Integer x=new Integer(1000);
        //手动拆箱
        int y=x.intValue();
        System.out.println(y);

        //2.重点方法
        //static int parseInt(String s)
        //静态方法,传参String,返回int
        //网页文本框上输入的100实际上是"100"字符串。后台数据要求存储100数字,此时java程序需要将"100"字符串转换成100数字。
        int retvalue=Integer.parseInt("123");//String->int
        //int revalue=Integer.parseInt("中文");//异常: NumberFormatException
        System.out.println(retvalue+100);//223
        //照葫芦画瓢(用类名调用方法,说明是静态方法)
        double retvalue2=Double.parseDouble("3.14");
        System.out.println(retvalue2+1);//4.140000000000001(精度问题)
        float retvalue3=Float.parseFloat("1.0");
        System.out.println(retvalue3+1);//2.0

        //3.valueOf(int i)
        //将字符串转换成int型
        Integer c=Integer.valueOf("456");
        System.out.println(c);
    }
}
8.String、int、integer之间相互转换
public class Test07 {
    public static void main(String[] args) {
        //String->int
        String s1="100";
        int i1=Integer.parseInt(s1);
        System.out.println(i1+1);//101

        //int->String
        String s2=i1+"";
        System.out.println(s2+1);//"1001"

        //int->Integer(自动装箱)
        Integer x=1000;

        System.out.println(x);
        //Integer->int(自动拆箱)
        int y=x;
        System.out.println(y);

        //String->Integer
        Integer k=Integer.valueOf("123");
        System.out.println(k);//123

        //Integer->String
        String e=String.valueOf(k);
        System.out.println(e);

    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/992075.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号