004-Java变量定义

目录

定义变量

变量声明注意事项

定义各种基本数据类型的变量

变量与常量

类型转换

隐式转换

显式转换

基本数据类型使用陷阱

类型转换


定义变量

int a = 10;
// int:表示当前变量的数据类型是int整型
// a:变量的名称
// =:赋值符号,请与数学中的等号区分开,这表示建后面的值10赋值给变量a
// ;:分号,表示赋值语句的结束。java中每个语句结束都需要使用分号然后换行

// 同时定义多个相同类型的变量
int b,c = 10;
int d = 5,e = 10;

变量声明注意事项

  1. 在赋值的时候,直接写整型数字,那么该数字表示的是int类型,如果直接写包含小数的数字,那怕是10.0,包含小数位,那么该数默认是double类型。
  2. 给变量赋值,需要将合适的值赋值给对应的类型的变量,如 int a = 11.5;就会报错,因为a声明的是整型,但11.5不是整数。
  3. 给变量赋值,需要将合适的范围的值赋值给对应类型的变量,如byte b = 1000;就会编译错误,因为1000是整型,且超出了byte类型的表示范围。

定义各种基本数据类型的变量

int a1 = 10;//整型
byte a2 = 100;//字节
short a3 = 10;// 短整型
long a4 = 10L;// 长整型,L可以不写(但建议写上L,注意是大写的L,因为用小写的l容易和数字1混淆)
 
float a5 = 1.0F;// 单精度浮点型,F必须写上
double a6 = 1.0;// 双精度浮点型
 
char a7 = 'a'; // 字符型
char a7 = '张'; // 字符型
boolean a8 = true;// 布尔类型

变量与常量

  • 所谓常量,就是值不会变化的量(先了解,后续会讲解)
    • 对于Java中的常量的命名规则:所有单词的字母都是大写,如果有多个单词, 那么使用下划线连接即可。比如说:public static final int AGE_0F_PERSON = 20;
    • 在Java 中声明final 常量时通常都会加上 static关键字,这样对象的每个实例 都会访问唯一一份常量值。
  • 所谓变量,就是值可以变化的量
    • = 表示赋值,将等号右边的值赋给了左边的变量。Java中使用==表示相等,等价于数学中的=
    • 变量名:在 Java中,变量名以下划线、字母、$符号开头,并且后跟下划线、字母、$符号以及数字。 总之,Java中的变量名不能以数字开头。首字母小写,之后的每个单词的首字母大写,如:userName、personName等
    • 变量类型 变量名 = 变量值;int a = 1;
    • 变量在使用前必须要赋值;int a; System.out.println(a);编译错误
    • 变量必须要声明其类型方可使用 a = 1; System.out.println(a);编译错误
    • 变量在使用前必须要定义,并且只能定义一次; int a = 0; byte a = 2;编译错误
    • 值必须和声明的类型对应,int a = 10;是对的,而int a = 10.0;编译错误

类型转换

各个基本数据类型表示的数据的范围

byte <(short=char) < int < long < float < double

由于float可以表示小数,所以虽然long的位数更大,但float可表示的数字更多。

隐式转换

隐式转换,就是在使用过程中程序自动给你转换。基本原则是小范围的值赋值给大范围的变量,会自动转换。

byte a = 100;// 100默认值整型,但其范围在byte表示的范围内,会自动转换
float a2 = 10L;// 10L是long型,如果其范围在float可以表示的范围内,则不会报错
long a3 = 10F;//-- 不行,因为long不能表示小数
int a4 = 'A';// 字符A的Unicode码为65,65在int的表示范围内
char a5 = 65;// 等价于 char a5 = 'A';

int b = 10;
byte b1 = b;// 编译错误,用变量给变量赋值的时候,是不会触发大类型向小类型的自动类型转换的
// b是int类型,编译器只能知道b是int类型,而不知道其值是多少,因为运行时才会知道b的值是10
// 而int类型表示范围比byte广,所以编译错误。
long b2 = b;// 正确,b是int类型,b2是long类型,所有的int类型long类型都能表示

注:我们在日常使用中,用什么类型的变量就给它赋值什么类型的值,避免自动类型转换带来的一些问题。

显式转换

显式转换,就是编写代码强制转换变量的类型

long aa4 = (long)10F;
byte aa5 = (byte)128;// 转换后的值是-128明显不是我们想要的结果
int a = (int)32.44;// 转换后值为32
// 所以在使用强制类型转换(显示转换)的时候需要考虑精度损失对程序的影响。

基本数据类型使用陷阱

  • Java中的所有浮点类型默认情况下都是 double。不能将 double类型的值赋给float类型 的变量,即便该double类型的值处于float类型的范围内也是不可以的。总之,能否成 功赋值取决于等号右边的值类型与等号左边的变量类型是否一致。
    • float a = 1.2是错误的;float a = (float)1.2是正确的
  • 可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现
    • int a = 1; short b = a; 是错误的;int a = 1; short b = (short) a;a的值需在short范围内。short b = 1;也是正确的。
    • short a = 1;int b = a; 是正确的
    • char a = 'a'; short b =  'a' + 10;是正确的。short b = a + 10;是错误的。'a'+10得到的是int常量,而a+10得到的是int类型的变量。

点击进入系列文章目录列表https://blog.csdn.net/forlinkext/category_6738598.html

点击进入系列文章目录列表https://blog.csdn.net/forlinkext/category_6738598.html

上一篇:003-基本数据类型

下一篇:005-运算符

类型转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值