收藏 分销(赏)

2023年黑马程序员Java教程变量待拆.docx

上传人:人****来 文档编号:3107227 上传时间:2024-06-18 格式:DOCX 页数:15 大小:199KB 下载积分:8 金币
下载 相关 举报
2023年黑马程序员Java教程变量待拆.docx_第1页
第1页 / 共15页
2023年黑马程序员Java教程变量待拆.docx_第2页
第2页 / 共15页


点击查看更多>>
资源描述
变量 1.5.1 变量的概念     定义:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。     特点:变量其实就是将不拟定的数据进行存储,也就是需要在内存中开辟一个空间。     为什么要定义变量?     用来不断的存放同一类型的常量,并可以反复使用。     定义变量的格式:     数据类型    变量名  =  初始化值;     例如:byte b = 3;     P.S.     1、格式是固定的,记住格式,以不变应万变。     2、变量的作用范围(一对{}之间有效)。     3、变量只能存放某一类型的数据。     理解:     变量就如同数学中的未知数X。 1.5.2 Java语言的数据类型     Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分派了不同大小的内存空间:         byte     1个字节         short    2个字节         int        4个字节         long     8个字节         float     4个字节         double 8个字节         char     2个字节     Java语言的数据类型涉及8种基本类型,3种引用类型。       P.S.     1、整数默认类型:int类型,小数默认类型:double类型。     2、double类型的小数精度比float类型的小数更高。 1.5.3 常见错误     错误示例一: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         byte b = 3; 5.         byte b = 8; 6.     } 7. } 复制代码     运营结果:     错误因素:变量定义一次以后,不能再重新定义一次。     错误示例二: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         long l = ; 5.         System.out.println(l); 6.     } 7. } 复制代码     运营结果:     错误因素:由于整数默认类型是int类型,假如数值超过了int类型的范围,那么就会报如上错误。即使是赋值给long类型的变量,但是由于后面的常量已经超过了int类型的范围,同样会报错。     解决方法:在数值后面加上一个“l”,就可以让编译器知道后面的常量是long类型。     代码如下: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         long l = l; 5.         System.out.println(l); 6.     } 7. } 复制代码     运营结果:       错误示例三: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         float f = 2.3; 5.         System.out.println(f); 6.     } 7. } 复制代码     错误因素:由于小数默认是double(8byte)类型,赋值给float(4byte)类型的变量,当然也许会损失精度,必然通但是编译器的审核。     解决方法:在数值后面加上一个“f”,让编译器知道后面的常量是float类型的。 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         float f = 2.3f; 5.         System.out.println(f); 6.     } 7. } 复制代码     运营结果:     错误示例四: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         int y; 5.         System.out.println(y); 6.     } 7. } 复制代码     运营结果:       错误因素:由于变量y是未初始化的,所以不能直接操作。     解决方法:一定要为变量y先赋值,再打印输出。     错误示例五: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         int z = 9; 5.     } 6.     System.out.println(z); 7. } 复制代码     运营结果:       错误因素:由于变量z的作用范围是在一对{}之间有效,超过这个范围就失效了。所以,找不到z这个符号。     解决方法:将大括号去掉,或者在大括号里面直接打印变量z。     错误示例六: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         char ch = 'a'; 5.         System.out.println(ch); 6.     } 7. } 复制代码     运营结果:     错误因素:编写程序时,不能使用中文符号。     解决方法:改成英文分号符号即可。 1.5.4 类型转换         类型转换在开发中也很常用,简朴来说就是类型之间互相的转化,类型转换共分两种,自动类型转换和强制类型转换。     1. 自动类型转换(隐式类型转换)       定义:自动类型转换就是不需要我们手动对类型来进行强制转换。     示例: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         int x = 3; 5.         byte b = 5; 6.         x = x + b; 7.         System.out.println(x); 8.     } 9. } 复制代码     运营结果:       说明:int类型的变量占4个字节,当byte类型的变量与其相加的时候,一方面会将byte类型的变量自动转化为4个字节的int类型,然后再进行加法操作。     2. 强制类型转换(显式类型转换)      定义:强制类型转换需要把类型进行手动转换,否则无法正常使用     示例: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         byte b = 3; 5.         b = b + 200; 6.         System.out.println(b); 7.     } 8. } 复制代码     运营结果:             错误因素:当byte类型的变量提高为int类型与int类型的常量200相加后,结果仍然是int类型,再赋值给byte类型,当然会出现损失精度的错误。     解决方法:进行强制类型转换,也就是将占4个字节的int类型值,再强硬存储到占1个字节的byte变量中。     代码如下: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         byte b = 3; 5.         b = (byte)(b + 200); 6.         System.out.println(b); 7.     } 8. } 复制代码    运营结果:       说明:结果为-53的因素是,200+3结果是203,换算成占1个字节空间的二进制也就是11001011。由于首位为1,所以是负数,除符号位外,其余部分取反加1,得1,0110101,即-53。     P.S.     1、只有数值类型才干进行加法操作,非数值类型不行。     示例: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         System.out.println(true+1); 5.     } 6. } 复制代码     运营结果:     2、char类型数据也可以和int类型相加,但是一方面char类型数据会被自动提高为int类型。     示例: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         System.out.println('a'+1); 5.         System.out.println('你'+1); 6.     } 7. } 复制代码     运营结果:     说明:字符类型数据之所以可以自动提高为int类型是由于字符类型数据在计算机中也是用0、1表达的,int类型数据在计算机中也用0、1表达,所以char类型数据当然可以转换为int类型数据。但是,字符类型数据在计算机中使用0、1表达是按照何种顺序组合排列的则需要依据某个码表而定。Java中的内置码表是Unicode,既包含中文,也包含英文。     P.S.     通过强转也可以把数字强转成字符。     示例: 1. class VarDemo 2. { 3.     public static void main(String[] args){ 4.         System.out.println((char)('a'+1)); 5.     } 6. } 复制代码     运营结果:               表达式的数据类型自动提高:     所有的byte型、short型和char的值将被提高到int型。     假如一个操作数是long型,计算结果就是long型;     假如一个操作数是float型,计算结果就是float型;     假如一个操作数是double型,计算结果就是double型。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服