首页新闻动态正文

Java中的类型转换【黑马java培训】

更新时间:2019年07月26日 10时51分31秒 来源:黑马程序员论坛

1.基本数据类型对应的包装类
        包装类,其实就是把基本数据类型变成对应的对象。
        好处;其实就可以来调用方法,简化操作。

        我们就必须有一个类去表示这个对象。

        基本数据类型所对应包装类的类名:把首字母变成大写。int 跟 char 有点特殊
        byte        Byte
        short   Short
        int     Integer
        long        Long
        float        Float
        double  Double
        char        Character
        boolean        Boolean

                //以上的8种都是基本数据类型所对应的包装类
                //在这些类中都定义了很多的方法来帮我操作基本数据类型。
                //比如:基本数据类型中,最大值。
                        //int类型的最大值。
       
2.获取Integer对象的方式
        Integer i = 100;


        引申:
                Integer i = 100;
                底层:
                        会看100是否在byte的取值范围之内,如果在直接从数组中拿
                                                                                         如果不在,那么直接new Integer的对象。


        目的:
                因为在实际开发中,byte取值范围之内的值,用的非常多。
                如果用一次new一次,那么浪费空间。
                不管用多少次,只要是在byte的取值范围之内,提前给你准备好了,用的时候直接拿。
               
        cache 数组:byte常量池。
                                池子中装的:-128 - 127 之间每一个值的Integer对象。



3.int和String的相互转换
        每种方式记住一个最为简单,在工作中最为常用的方法就可以了。
        int --> String
                 + "";
                        //任意数据类型变成字符串 都可以加一个双引号。


        String --> int
                int i = Integer.parseInt("123");//记忆的。

                int i = Integer.parseInt("abc");//类型转换异常。                       

        注意点:
                字符串中必须是数字类型也可以。


4.自动装箱和自动拆箱
装箱:基本数据类型 变成 引用数据类型
        拆箱:引用数据类型 遍历 基本数据类型

        自动:不需要我们自己完成。


        自动装箱:Java帮我们已经完成了基本数据类型变成包装类的操作,不需要我们自己手写代码实现。

        自动拆箱:Java帮我们已经完成了包装类变成基本数据类型的操作,不需要我们自己手写代码实现。

        案例:
                Integer i  = 100; //触发了自动装箱

                Integer i1 = 10;//触发了自动装箱,把一个基本数据类型变成了包装类。
                Integer i2 = 20;//触发了自动装箱,把一个基本数据类型变成了包装类。


                Integer i3 = i1 + i2;//两个对象怎么能相加呢?
                                                //此时触发了自动拆箱。
                                                //先把i1和i2这两个对象拆箱成基本数据类型,再用基本数据类型进行相加
                                                //再把相加之后的结果,自动装箱成Integer对象赋值给i3.


//了解
byte常量池的触发时机?
        Integer i = new Integer(10);//此时不会触发

        只有在直接赋值的时候触发byte常量池机制。
        如果直接赋的值,是在byte的取值范围之内,就从常量池中拿。
        如果不在byte取值范围之内,就new。

        好处:可以结束内存空间。



引申:
        键盘录入的引申。
        基础班:Scanner
                        整数:nextInt
                        小数:nextDouble
                        字符串:next

        有一个小弊端:
                next无法接受带有空格的字符串。
                且nextInt,nextDouble在遇到字母的时候会报错。

       
以后的写法:
        不管录入什么样的数据请一律使用:nextLine。
        如果你想要用整数类型。再进行类型的转换就可以了。


        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个数");
        String line = sc.nextLine();//abc
        int i = Integer.parseInt(line);
//思想:
        不管数据怎么样,先把他录到内存里面。

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!