Java概述
Java概述
一、常量
二、变量
三、运算符
一、常量
-
常量的概述和使用
-
常量:就是在程序的执行过程中值不变的量。
-
分类:字面值常量和自定义常量
-
字面值常量
包括字符串常量,整型常量,浮点型常量,字符常量,布尔常量,空常量。
字符串常量 eg:"HelloWorld" , "Hello" 整型常量 eg:12 , 13 浮点型常量 eg:1.1 , 23.101 字符常量 eg:'a' , '我' , '0' 布尔常量 eg:true , false 空常量 eg:null
例如,常量的输出,
class Demo { public static void main(String[] args) { //输出不同类型的字面值常量 //字符串常量 System.out.println("HelloWorld!"); System.out.println("Hello"); //整型常量 System.out.println(12); System.out.println(100); //浮点型常量 System.out.println(1.1); System.out.println(12.101); //字符常量 System.out.println('a'); System.out.println('我'); System.out.println('0'); //布尔常量 System.out.println(true); System.out.println(false); //空常量,输出会报错 //反例//System.out.println(null); } }
运行的结果如下:
-
-
-
进制概述和进制转换
-
什么是进制?
就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。
-
常用的进制:二进制,八进制,十进制,十六进制
-
不同进制的数据表现形式
二进制:由 0 和 1 组成 八进制:由 0 ~ 7 组成 十进制:由 0 ~ 9 组成 十六进制:由 0 ~ 9 ,A ~ F 组成
-
进制之间的转换
二,八,十六进制转换十进制,转换方法:位权展开发
-
二进制->十进制
二进制数:1011
二进制 转换 十进制 1 1 * 23 8 0 1 * 22 0 1 0 * 21 2 1 1 * 20 1 所以 0B1011 = 1 + 2 + 0 + 8 = 11
-
八进制->十进制
八进制数:176
八进制 转换 十进制 1 1 * 82 64 7 7 * 81 56 6 6 * 80 6 所以 0176 = 6 + 56 + 64 = 126
-
十六进制->十进制
十六进制数:5AF
十六进制 转换 十进制 5 5 * 162 1280 A 10 * 161 160 F 15 * 160 15 所以 0X5AF = 15 + 160 + 1280 = 1455
十进制转换二,八,十六进制,转换方法:除基取余
-
十进制->二进制
十进制数:100
被除数 商 余数 100 50 0 50 25 0 25 12 1 12 6 0 6 3 0 3 1 1 1 0 1 -
十进制->八进制
先转换成二进制数,三位一划分,再算出八进制数。
-
十进制->十六进制
先转换成二进制数,四位一划分,再算出十六进制数。
-
-
-
有符号数据表示法
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
二、变量
-
变量的概述和格式
-
什么是变量?
在程序的执行过程中,其值可以发生改变的量。
-
变量的作用?
可以不断存放同一类型的变量,并且可以重复使用。
-
Java中变量的定义格式
数据类型 变量名 = 变量值
-
-
数据类型概述和分类
-
数据类型是什么?
数据类型是用来限制系统开辟给变量内存空间的大小。
-
Java中数据类型的分类
-
基本数据类型
包括数值型(整型、浮点型、字节型)、字符型、布尔型。
-
引用数据类型
不同数据类型变量的输出
class Demo { public static void main(String[] args) { //不同数据类型变量的输出 int a = 12 ; //整型 double b = 1.00234 ; //浮点型 byte c = 125 ; //字节型 char d = 'X' ; //字符型 boolean e = true ; //布尔型 System.out.println(a) ; System.out.println(b) ; System.out.println(c) ; System.out.println(d) ; System.out.println(e) ; } }
输出结果
注意:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。没有初始化值不能直接使用;建议一行只定义一个变量。
-
-
-
隐式转换
'+'是一个运算符,它来做数据的加法。
-
Java中的默认转换规则:
-
boolean类型不能转换为其他类型
-
byte,short,char—int—long—float—double
-
byte,short,char之间不转换,他们参与运算首先转换为int类型
-
-
转换的例子
如果这样那么编译器就会报错
class Test1 { public static void main(String[] args) { //定义并两个byte类型的变量 byte a = 1 ; byte b = 2 ; byte c = a + b ; System.out.println(c); } }
这是因为 a + b 计算完成后会自动转换为int类型,所以将 c 变量定义为int类型就不会有错误出现。
-
-
强制类型转换
-
强制类型转换的格式
目标数据类型 变量名=(目标数据类型)(被转换的数据);
-
注意,在不知道运算结果的情况下,不要使用强制类型转换,因为这样可能会造成数据的丢失。
那么,为什么数据会丢失呢?
下面我们来看一段代码;
为什么结果会是-128呢?
我们知道byte类型的变量范围是-128~+127,而此例中运算结果是128,byte类型已经村放不下这个数据,所以进行强制类型转换就造成了数据的丢失。
-
字符和字符串参与运算
System.out.println('a') ; System.out.println('a' + 1);
以上运算结果是什么呢?
这是因为'a'是一个char变量,而 1 是int变量,再进行运算时,会发生隐式转换,由char转换为int,所以会出现这样的结果。
-
三、运算符
-
运算符
-
什么是运算符?
对常量和变量进行操作的符号称为运算符。
-
分类
Java中的运算符包括算术运算符赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。
-
-
算术运算符
-
算术运算符有:+ , - , * , / , % , ++ , --
-
算术运算符的基本用法
class Test1 { public static void main(String[] args) { int a = 10 ; int b = 5 ; System.out.println(1 + 12); System.out.println(122 - 12); System.out.println(1 * 9); System.out.println(64 / 8); System.out.println(10 % 3); System.out.println( a++ ); System.out.println( ++a ); System.out.println( b-- ); System.out.println( --b ); } }
运算的结果是
-
++ (自增), -- (自减) 运算符的使用
运算符在前,先自增(减)再运算,运算符在后,先运算再自增(减)。
-
-
赋值运算符
-
赋值运算符有:= ,+= , -= , *= , /= , %=
-
扩展赋值运算符
例如:a+=b --> a=a+b
-
案例
short s = 1 ; s = s + 1; short t = 1 ; t += 1;
运行结果:
而我们把第一行注释掉后,会得到第二行的输出结果
因为虽然大部分情况下,a += 1 和 a = a + 1 的运算结果不会有差异,但是因为 1 是int型数据,在正常的 a = a + 1 运算时会发生隐式类型转换,而定义的数据类型是short,所以会报错。但是使用 += 号进行运算会进行强制类型转换,把 a + 1 的结果强制转成short类型,所以第二行的代码不会出现问题。
-
-
关系运算符
-
Java中的比较运算符
== ,!= , < , > , <= , >= , instanceof
比较运算符的结果一定是boolean类型。
-
案例
class Test1 { public static void main(String[] args) { int a = 10 ; int b = 20 ; System.out.println( a > b ); System.out.println( a < b ); System.out.println( a == b ); System.out.println( a <= b ); System.out.println( a >= b ); System.out.println( a != b ); } }
输出结果:
-