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零基础---总结复习
· 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应用必不可少的技术