JAVA引用数据类型和类型转换

举报
Aileen_0v0 发表于 2024/02/10 13:52:45 2024/02/10
【摘要】 ​ ​🌈write in front🌈🧸大家好,我是Aileen 🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.🆔本文由Aileen_0v0 🧸 原创 CSDN首发🐒 如需转载还请通知⚠️📝个人主页:Aileen_0v0 🧸—CSDN博客🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​📣系列专栏:Aileen_0v0 🧸的JAVA学习系列专栏 🌸 ...

 

🌈write in front🌈
🧸大家好,我是Aileen 🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
🆔本文由Aileen_0v0 🧸 原创 CSDN首发🐒 如需转载还请通知⚠️
📝个人主页:Aileen_0v0 🧸—CSDN博客
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:Aileen_0v0 🧸JAVA学习系列专栏 🌸 ——CSDN博客
🗼我的格言:"没有罗马,那就自己创造罗马💫~"

目录

回顾  💫

引用数据类型- String 🔆

String 字符串的拼接  " + "  🎈

字符串 与 字符串的拼接 🎍

编辑

字符串 和 整数的拼接 🎋

Int 和 String 的相互转换 

整型转字符串 🪁

字符串转整型  🎏

final 关键字修饰的 常量 🪄

常见的常量  🏓

数据类型转换  🎡

隐式类型转换 🏙

显示类型转换  🏫

 类型转换小结 🗼

int 和 boolean 相互赋值 

理解数值提升-int 和 long 混合运算



回顾 💫

前面几篇我们详细的讲解了JAVA 中八大基本数据类型,如有遗忘

点击链接🔗:

http://t.csdnimg.cn/zMwV0   -变量和整型

http://t.csdnimg.cn/J32wc     -Long Double&Float

http://t.csdnimg.cn/KNpkZ    -Char Byte Short Boolean

进行跳转式阅读

今天我们开始下一部分-引用数据类型的学习~

引用数据类型- String🔆

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        String str = "\\\\hello\\\\";//"hello"

        System.out.println(str);

        

        int i = 2147483647 + 1;

        int i2 = Integer.MAX_VALUE + 1;

        System.out.println(i);

        System.out.println(i2);

        

    }

}

命令行运行结果:


String 字符串的拼接  " + " 🎈

字符串 与 字符串的拼接🎍

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        String a = "hello";

        String b = "world";

        String c = a + b;

        System.out.println(c);

    }

}

 控制台运行结果:

---------------------------------------------------------------------------------------------------------------------------------

字符串 和 整数的拼接🎋

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        String str = "result = ";

        int a = 10;

        int b = 20;

        String result = str + a + b;

        System.out.println(result);

    }

    

}

控制台运行结果: 

Summary:

        打印内容只要有字符串,结果就是以字符串类型打印出来.


Int 和 String 的相互转换 

整型转字符串🪁

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        int num = 10;

        //方法1:

        String str1 = num + "";

        //方法2:

        String str2 = String.valueOf(num);

        System.out.println(str1);

        System.out.println(str2);

    }

}

控制台运行结果: 

**************************************************************************************************************

字符串转整型 🎏

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        String str = "100";

        int num = Integer.parseInt(str);

        System.out.println(num);

    }

}

控制台运行结果:

 

如果字符串里面含字母会怎么样呢?

package TestDemo;


    public class TestDemo {

        public static void main(String[] args) {

            String str = "100a";

            int num = Integer.parseInt(str);

            System.out.println(num);

        }

}

 控制台运行结果:

这是JAVA中的一种异常,后面会继续拓展~ 


final 关键字修饰的 常量🪄

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        /**

         * 常量只能被初始化一次,且使用的时候 一定要记得初始化.

         */

        final int MAXNUM;

        MAXNUM = 999;//初始化常量 MAXNUM

        System.out.println(MAXNUM);

    }

}

 final 修饰的 变量 称为 常量--->用大写 MAXNUM表示

常量不能在 程序运行过程中 发生修改.

例如: 

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        /**

         * 常量只能被初始化一次,且使用的时候 一定要记得初始化.

         */

        final int MAXNUM;

        MAXNUM = 999;

        MAXNUM = 10000;

        System.out.println(MAXNUM);

    }

}

控制台运行结果:

常见的常量 🏓

10

int

字面值常量(十进制)

010

int

字面值常量(八进制) 由数字 0 开头  010 也就是十进制的8

0x10

int

字面值常量(十六进制)由数字 0x 开头 0x10 也就是 十进制的 16

10L

long

字面值常量 可写作 10l (小写的L)

1.0

double

字面值常量 可写作 1.0d 或者 1.0D

1.5e2

double

字面值常量 科学计数法表示 相当于 1.5 * 10^2

1.0f

float

字面值常量 可写作 1.0F

true

boolean

字面值常量 同样的还有 false

'a'

char

字面值常量 单引号中只能有一个字符

"abc"

String

字面值常量 双引号中可以有多个字符


数据类型转换 🎡

隐式类型转换🏙

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        int a = 10;

        long b = a;

        System.out.println(b);

    }

}

 控制台运行结果:

**************************************************************************************************************

显示类型转换 🏫

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        long a = 10;

        int b = (int)a;

        System.out.println(b);

    }

}

控制台运行结果:

 编辑

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        byte b = 10;

        byte c = 20;

        byte d = b + c;

        System.out.println(d);

    }

}

控制台运行结果:

通过输出结果可知,b是 int 类型, c 也是 int 类型, 它们相加的结果也是 int 类型 ,不能直接转换成byte.

有两种方式可以对上面的代码进行修改:

方法1:

        将 byte d 改成 int d 

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        byte b = 10;

        byte c = 20;

        int d = b + c;

        System.out.println(d);

    }

    

}

控制台运行结果:

方法2:

        对 b + c 进行强制类型转换.---> byte -1字节

package TestDemo;


public class TestDemo {

/**

     * 小于4个字节的数据类型 运算的时候 会发生类型的提升

     *

     * @param args

     */

    public static void main(String[] args) {

        byte b = 10;

        byte c = 20;

        byte d = (byte)(b + c);

        System.out.println(d);

    }

}

控制台输出结果:

 

 类型转换小结🗼

1.不同数字类型的变量间赋值,表示范围更小的类型能隐式转换成范围较大的类型.

2.若需将大范围类型赋值给小范围,需要进行强制类型转换,但可能丢失精度.

3.将字面值常量进行赋值时,JAVA会自动针对数值范围进行检查.


int 和 boolean 相互赋值 

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        int a =10;

        boolean b = true;

        b = a ;

        a = b ;

    }

}

控制台运行结果: 

 根据上面运行结果,我们可以得出: int 和 boolean 是毫不相干的两种类型,不能相互赋值.


理解数值提升-int 和 long 混合运算

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        int a = 10;

        long b = 20;

        int c = a + b;

    }

}

控制台运行结果: 

package TestDemo;


public class TestDemo {

    public static void main(String[] args) {

        int a = 10;

        long b = 20;

        long d = a + b;

        //int c = a + b;

        System.out.println(d);

    }

 控制台运行结果:

类型提升summary:

        1.不同类型的数据混合运算,范围小的会提升为范围大的.

        2.对于 short , byte 这种比4个字节小的类型,会先提升为4个字节的 int ,再进行运算.

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。