今天,阿Q将带您了解java的常量、变量、数据类型和操作符。
常量(1)在程序运行过程中,其值不能改变。 (2)常量分类:字面值常量,自定义常量(在后面的解释中给出),字面值常量分为
整数常量:12-23
实数常量:12.5-65.43
字符常量:‘字符常量:’a’,‘A’,‘0’
字符串常量:“hello”
布尔常量:true,false
空常量:null (3)常量可直接输出。
进制(1)是进位的一种方式。X进制,意味着每X进1。 (2)java中整数常量的表示
- 二进制 由0,1组成。从0b开始。JDK7后的新特性。
- 八进制 由0-7组成。从0开始。
- 十进制 由0-9组成。默认为十进制。
- 十六进制 由0-9,A-F(不区分大小写)组成,从0x开始。
(3)用高低电平(高低位)存储计算机存储数据。 也就是 二进制的 1 和 0,二进制数据被称为位置 (bit) 1byte = 8 bit; 1Kb = 1024byte; 1Mb = 1024Kb; 1Gb = 1024Mb; 1Tb = 1024Gb; (4)进制转换:进制转换详见链接https://jingyan.baidu.com/article/495ba84096538.html,只需掌握方法,因为计算机的计算器具有进制转换功能,这里就不赘述了。
变量(1)程序运行过程中在指定范围内发生变化的量。 (2)格式: 数据类型 变量名 = 初始化值;
变形格式: 数据类型 变量名; 变量名 = 初始化值;
举例: 方式1: byte b = 10;
方式2: byte b; b = 10; (3)注意事项 A:变量不能在一对{}中重复定义。 B:赋值时,尽量不要超出范围。 C:必须添加后缀来定义长整数型:l或L D:在定义单精度类型时,必须添加后缀:f或F E:变量应在使用前初始化(在使用前初始化)
(4)代码示例:
class VariableDemo {public static void main(String[] args){//定义字节变量bytete b = 12;System.out.println(b);//定义短整形变量short s = 1234;System.out.println(s);///定义整数变量int i = 12345;System.out.println(i);//定义长整形变量long l = 12345678912345L;System.out.println(l);///这是1//定义单精度类型(7-8位有效数字)float f = 12.5F;System.out.println(f);//定义双精度类型(15-16位的有效数字)double d = 12.5;System.out.println(d);//定义字符类型charr c = 'a';///重新赋值,Java中使用的字符编码是Unicode编码。占用两个字节。占用两个字节。c = '中';System.out.println(c);//定义布尔类型的boolean flag = true;System.out.println(flag);}}
数据类型(1)分类:
基本类型:4类8类。 引用类型:类、接口、数组 (2)基本类型 整型: byte 1字节 short 2字节 int 4字节 long 8字节 浮点型: float 4字节 double 8字节 字符型: char 2字节 布尔型: boolean 不明确。它可以被认为是一个字节。
注意:默认情况下,整数是int类型。long类型需要L或L后缀。 默认情况下,浮点数是double类型。float类型需要F或f后缀。
(3)类型转换 在操作过程中,一般要求类型相同。如果遇到不一致的情况,就会出现类型转换问题 1:boolean类型不参与转换。 2:隐式转换(从小到大) byte,short,char – int – long – float – double 注:long是8个字节,float是4个字节。 long是整数,float是浮点数,整数和浮点数的存储规则不同。 long的范围小于float。 2^63 10^38 > (23)38 > 2^114 3:强制转换(从大到小) 若您清楚地知道数据是可以表示的,则可以使用强制类型进行转换。 格式:(转换后的数据类型)变量或值 一般情况下,不建议使用强制类型转换。
4:代码
class Variabledemo{public static void main(String[] args){//定义两种类型的不一致变量int x = 10;byte b = 20;///加法两个变量的byte b2 = x + b;System.out.println(b2);///定义两种类型相同的变量int x = 10;int y = 20;int z = x + y;System.out.println(z);///隐式转换bytee a = 10;int b = a;System.out.println(b);//隐式转换flotat f = 12.5F;double d = a+b+f;System.out.println(d);///强制类型转换inttint i = 10;byte b2 = (byte)i;System.out.println(b2);}}
(4)类型转换的原理(理解) 例如,将int类型强制转换为byte类型 就是截取32位int的后8位 再转换成人类能理解的源代码
(5)ASCII码表对应于字符类型 包括中文字符在内的数字字符和英文字符都是我们用来交流的数据,计算机中的数据 底层是二进制的,所以它不能直接存储我们使用的数据。 我们必须想办法把它们变成我们可以在计算机中存储的数据。 这样,编码表就出来了。 编码表: 它是由字符和相应的值组成的表。
ASCII码表是最常见的编码表。(详见resource)
class Variabledemo5 {public static void main(String[] args) {System.out.println('a');System.out.println('a'+1);//98-1=97--'a'System.out.println('a'+3);//100system.out.println('A'+1);//66-1=65 --'A'System.out.println('0'+1);//49-1=48 -- '0'}}
运算符(1)是连接常量和变量的符号,一般参与操作。 (2)分类: 算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 三元运算符 (3)算术运算符 +,-,*,/,+,–
+:正号、加法、字符串连接符。 System.out.println(“5+5=” + 5 + 5); //5+5=55 System.out.println(5 + 5 + “=5+5”); //10=5+5
/:整数相除,结果只能是整数。 假如你想要小数,那么参与运算的数据必须有浮点数类型。
%:取余,即整除后的余数。
++/–: i++ :++放后面 就是说 i++ 这个整体是1,也就是说,如果把 i++ 赋给一个 int z 那么z还是1 现在i已经是2了。 int i = 1; System.out.println(i++);// 1 System.out.println(i);// 2 ++i:++放后面 就是说 ++i 这个整体是2,也就是说,如果把 ++i 赋给一个 int z 那么z还是2 这会儿i是2 int j = 1; System.out.println(++j);// 2 System.out.println(j);// 2 (4)赋值运算符 =,+=,-=,*=,/=,%=
int a = 10; 将10赋值给int类型的变量a。
a += 20 即为 a = a + 20
注意事项: a = a + 20; a += 20; 结果是等价的,理解不是等价的。
因为+=这个操作符包含强制类型转换功能。 比如: short s = 2;
s+=3; 等价于 s = (short)(s + 3) (5)关系运算符 ==,!=,>,>=,<,<=
特点:关系运算符的结果都是boolean类型。 请注意:== 不要写成 =
(6)逻辑操作符 &,,,,&&,||
&:false有falsefalse |:有truetruetrue !:true变false,false变化true ^:同一false,不同的true
&&:false有falsefalse ||:有truetruetrue
&&和&区别在于,如果左边有false,右边将不再执行。 ||和|的区别是,如果左边有true,右边将不再执行。
&&和|| 验证举例:
int a = 10;int b = 20;//System.out.println((a++ > 10) & (b-- > 10));//a=11,b=19System.out.println((a++ > 10) && (b-- > 10)); //a=11,b=20System.out.println(a);System.out.println(b);
(7)位运算符 位运算符:是二进制数据的运算。 & 按位与 | 按位或 ^ 按位异或 ~ 按位取反
<<左边的高位被抛弃,右边空出的部分被填满0。>>如果右移最高位为0,则填充左移空位为0;如果最高位为1,则填充左侧的空位>>>无符号右移 无论最高水平是1还是0,左边的高水平都是空的都填入0
注:向左或向右移动实际上是增加或缩小数据2的指定次幂。(8)条件运算符也叫三目运算符 格式: 条件表达式1表达式:表达式2
执行流程: 是true还是false根据条件表达式返回,决定结果是什么。 若为true,则以表达式1为结果。 如果是false,以表达式2为结果。
好了,今天先说,明天继续。想了解更多学习知识,请关注微信微信官方账号“阿Q说”,获取更多学习资料。你也可以在后台留言说出你的疑惑,阿Q会在后面的文章中为你解答。每天学一点,每天进步一点。