Java 零基础视频教程 P91-P95

 P91 Java零基础---自动类型转换

复制代码
小容量可以自动转换成大容量,这种操作被称为:自动类型转换。

long b=200;

System.out.println(b);

//这个不存在类型转换:

//在整数型字面量300后面加一个L之后,300L联合起来就是一个long类型的字面量。

//c变量是long类型,long类型赋值给long类型不存在类型转换

long c=300L;

System.out.println(c);
复制代码

 P92 Java零基础---过大的整数

复制代码
//d变量是long类型,小容量可以自动赋值给大容量,自动类型转换。

long d=2147483647;//  2147483647是int最大值。
System.out.println(d);



//编译器会报错:

//在java中,整数型字面量一上来编译器就会将它看做int类型

//2147483648  已经超出了int的范围,所以在没有赋值之前就出错了。
//不是e放不下2147483648,e是long类型,完全可以容纳2147483648
//只不过2147483648本身已经超出了int类型。
//错误:整数太大

//long e=2147483648;
long e=2147483648L;  //就不会报错了

System.out.println(e);
复制代码

 P93 Java零基础---强制类型转换

复制代码
/*
    1.小容量直接赋值给大容量,被称为自动类型转换。
    2.大容量不能直接赋值给小容量,需要使用强制类型转换符进行转换。
    注意:强制类型转换符之后,虽然编译通过了,但是运行的时候可能会损失精度。
    
*/
public class IntTest03{
    public static void main(String[] args){
        //不存在类型转换。
        //100L是long类型字面量,x是long类型字面量。
        
        long x=100L;
        
        //x是long类型,占用8个字节,而y变量是int类型,占用4个字节。
        //在java语言中,大容量可以直接赋值个小容量吗。
        //错误:不兼容的类型,从long转换到int可能有损失。
        
        //int y=x;
        //这个(int)就是强制类型转换符,加上去就可以编译通过了。
        //注意:编译虽然通过了,但运行时可能损失精度。
        
        int y=(int)x; 
        System.out.println(y);
        
        //定义变量a int类型,赋值100
        int a=100;
        System.out.println(a);
        
        int b=a; //将变量a中保存的值100复制一份给b变量。
        System.out.println(b);
    }
}
复制代码

 

 P94 Java零基础---损失精度以及不超范围可以直接赋值byte和short

 

复制代码
/*
    java中有一个语法规则:
        当这个整数型字面量没有超出byte的取值范围,那么这个,
        整数型字面量可以直接赋值给byte类型的变量。
    
    这种语法机制就是为了方便些代码存在的。
*/

public class IntTest04{
    public static void main(String[] args){
        //分析:以下代码编译可以通过吗?
        //300被默认当做int类型
        //b变量是byte类型
        //大容量转换成小容量,要想编译通过,必须使用强制类型转换符
        //错误:不兼容的模型,从int转换到byte可能会有损失
        
        //byte b=300;
        //要想让以上的程序编译通过,必须加强制类型转换符
        //虽然编译通过了,但是可能精度损失。
        //300这个int类型对应的二进制:
        // 00000000 00000000 00000001 00101100 
        /*    2 300    0
            2 150    0
            2  75    1
            2  37    1
            2  18    0
            2    9    1
            2    4    0
            2    2    0
            2    1    1
        */
        
        
        //byte占用1个字节,砍掉前三个字节,结果是:00101100(44) 
        byte b=(byte)300;
        System.out.println(b); //44
        
        //1是int类型,默认当做int类型来看。
        //x是byte类型,1个字节,大容量无法直接转换为小容量。
        //按说会编译报错。
        byte x=1;
        byte y=127;
        //错误:不兼容的类型,从int转换到byte可能会有损失。
        //byte z=128;
        
        /*
            当整数型字面量没有超出short类型取值范围的时候,该字面量可以直接赋值给
            short类型的变量
        */
        short s=1;
        short s1=32767;
        //short s2=32768;  //错误,超出short的取值范围,
        
        
    }
复制代码

 

P95 Java零基础---总结复习

 

posted @   生如逆旅,一苇以航  阅读(28)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示