Java基础语法(常量、进制转换、变量、数据类型转换)

1 final、常量与类型

Java 中的数据量分为常量和变量,我们先来看看常量!
常量就是不变的数据量,例如 100 就是常量。
任何数据量都有其类型,那么 100 这个常量是什么类型呢?回忆一下基本类型中有四类,分别是整数、小数(浮点数)、字符、布尔。那么 100 是哪一类型呢?没错,就是整数常量!!!

整数常量可以根据所在范围来确定类型,例如 100 在 -128~127 之间,所以他是 byte 类型;500在-32768~32767之间,所以它是 short 类型;100000 在-2147483648~2147483647之间,所以它是 int 类型。java 中默认的整数类型是 int 类型。

你可能会认为12345678901在 -2^63 ~ 2^63-1之间,所以它是long类型。注意了,这是错误的!!!在Java中整数常量如果不在-2147483648 ~ 2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648 ~ 2147483648之间的也可以添加“L”后缀。也就是说 12345678901 不在-2147483648 ~ 2147483648之间,所以它在Java中是错误的常量,你必须这样写:12345678901L,这才是正确的常量。所以添加了“L”后缀的整数常量都是long类型的,例如:100L、12345678901L 都是 long 类型的常量。

浮点类型的常量也可使用后缀,在Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)java中默认的浮点类型是double类型:

  • 3.14没有后缀,所以它是double类型;
  • 5.28D为double类型;
  • 1.26F为float类型。

在 java 中关键字 final(最终)是一个修饰符:

  1. final 可以修饰类,函数,变量(成员变量,局部变量);
  2. 被 final 修饰后的类不可以被其它类继承;
  3. 被 final 修饰后的方法(函数)不可以被重写;
  4. 被 final 修饰后的变量(属性)不允许被再次赋值,final 在对变量进行修饰时一定要赋值,被 final 修饰后的变量,我们称之为常量。

定义常量:final 类型 大写常量名 = 常量值;
常量命名规范:字母全部要大写,如果这个名字由多个单词组成,单词之间用_隔开,如:XXX_YY、MY_NAME、SiZE、PI。

2 进制之间的转换

进制之间的表示:

  1. 二进制
    数字(0或1);
    表示方式:以0b(0B)开头,如:0b0110011;
  2. 十进制
    数字(0~9);
    表示方式:109;
  3. 八进制
    数字 (0~7);
    表示方式:以0开头 如01、07、0721;
  4. 十六进制
    数字和字母:(0-9 A~F);
    表示方式:以 0x(0X) 开头,数字以 0-9 及 A-F 组成 ,如0x23A2、0xa、0x10。

进制转换:
1、存储数据的单位:
1B(字节)= 8bit
1KB = 1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
PB、EB、ZB、YB、BB、NB、DB……
2、十制制转二进制:除以2取倒余
例:13
在这里插入图片描述
例:-13
二进制的最高位表示符号位,0 表示正数,1 表示负数。
原码:0001101
反码:1110010
补码(结果):1110011

计算机存数据都是补码来进行存储(正数的三码合一,负数原码,反码(取反),补码(反码基础上加1))。

补充:1B = 8bit
最大1B:0111 1111 => 2^6 + … + 2^0 => 64+32+16+8+4+2+1 => 127 => 2^7 - 1
最小1B:1000 0000 => -128 => -2^7
-127 => 1111 1111 => 1000 0000 => 1000 0000

3、二进制转十进制:乘以2的幂次方
0b1101 => 2^0 + 2^2 + 2^3 = 1+4+8 = 13

4、二进制和十六进制:四位二进制相当于 1 位十六进制(8421BCD)
1111 => F
0b10 0010 0110 = 0x226
0xe23 = 0b1110 0010 0011

5、二进制和八进制:三位二进制相当于1位八进制
0b011 101 001 010 = 03512

3 变量

在Java中变量的应用比常量的应用要多很多。所以变量也是尤为重要的知识点!
什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!

结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

定义变量的语法格式:

数据类型  变量名  =  数据值;
int       a    =  100;
a = 12;

其中 int 是数据类型,指定了变量 a 只能存储整数,而且指定了存储范围为 -2147483648 ~ 2147483647。
其中 a 表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量(内存中的小盒子)。
其中“=100”是给变量赋值,即向 a 变量中写入 100(变量是个小盒子,现在小盒子中保存的是100)。注意,给变量赋的值一定要与类型符合,也就是说 int 类型只能存储整数,而且必须是在 -2147483648 ~ 2147483647 范围内的整数。100 满足了这两个条件,所以是正确的。
而“a=12”是将数据12重新给变量a赋值,覆盖了原先的值100,现在变量a保存的是12。

变量使用的注意事项:

  1. 变量定义后可以不赋值,使用时再赋值。不赋值不能使用。
public static void main(String[] args) {
	int x;
	x = 20; //为x赋值20
	System.out.println(x);//读取x变量中的值,再打印
}
  1. 变量使用时有作用域的限制。
public static void main(String[] args) {
	int x = 20;
	{
	    int y = 20;
	}
	System.out.println(x);//读取x变量中的值,再打印
	System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量
}

  1. 变量不可以重复定义。
public static void main(String[] args){
      int x = 10;
      double x = 5.5;//编译失败,变量重复定义
}

4 数据类型转换

同类型的变量是否可以在一起运算呢?
答案是可以的,但要先进行类型转换再运算。
其实,我们所学习的数据,它的表示方式是可以灵活多变的,比如把小数转换成整数的操作
转换的过程中,数据遵循一个原则:
范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);
范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)。

那么,大家还记得每种类型表示数据的范围吗?忘记了不要紧,我来告诉大家,将各种数据类型按照数据范围从小到大依次列出:
在这里插入图片描述
关于数据类型转换有两种方式:

  1. 自动类型转换
    表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换。
    自动类型转换格式:
    范围大的数据类型 变量 = 范围小的数据类型值;
    如:double d = 1000;
    或者:int i = 100; double d2 = i;
  2. 强制类型转换
    表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换。
    强制类型转换格式:
    范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
    如:int i = (int)6.718; //i的值为6
    或者:double d = 3.14; int i2 = (int)d; // i2的值为3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值