---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
1:常量(掌握)
(1)在程序运行过程中其值不发生改变的量。
(2)定义分类:
字面值常量
自定义常量(后面讲)
(3)常量的分类:
整数常量 12,-34
小数常量 12.5
布尔常量 true,false
字符常量 'a','A','0'
字符串常量 "hello",""
空常量 null
2:Java中对整数常量有四种表示形式(理解)
(1)二进制:JDK7以后的新特性。
组成:由0,1组成。用0b开头表示。
(2)八进制:
组成:由0-7组成。用0开头表示。
(3)十进制:
组成:由0-9组成。默认整数就是十进制。
(4)十六进制:
组成:由0-9,a-f(不区分大小写)。用0x开头表示。
3:进制转换(理解)
(1)其他进制到十进制的转换
系数*基数的权次幂之和。
(2)十进制到其他进制的转换
除基取余,直到商为0,余数反转。
(3)二进制和十进制间快速转换 8421码
二进制:
1 1 1 1 1 1 1 1
十进制:
128 64 32 16 8 4 2 1
二进制到十进制:
1001010 = 64 + 8 + 2 = 74
十进制到二进制:
200 = 128 + 64 + 8
11001000
4:有符号数据表示法(理解)
(1)有三种形式,原码,反码,补码。
(2)规则如下:
正数:正数的原码,反码,补码都一致。 .java .class
负数:
负数的原码和正数的区别是最高位是1。表示符号位。
负数的反码和负数的原码的区别是:符号位不变,数值位1变0,0变1。
负数的补码是负数的反码+1。
5:变量(掌握)
(1)变量就是指在一定范围内可以发生改变的量。
(2)变量的定义和使用格式:
A:数据类型变量名 = 初始化值;
int a = 3;
B:数据类型变量名;
变量名 = 初始化值;
int a;
a = 3;
注意:变量在使用前,一定要有值。
6:数据类型(掌握)
(1)数据类型分类:
基本数据类型:4类8种。
引用数据类型:类,接口,数组。
(2)基本数据类型:
整数:
类型 字节数
byte 1
short 2
int 4 //开发用它
long 8
浮点数:
float 4
double 8 //开发用它
字符:
char 2
布尔:
boolean 1
注意:
整数默认是int类型。long整数加后缀L或者l。
浮点数默认是double类型。float浮点数加后缀F或者f。
7:类型转换(掌握)
在参与运算的过程中,要求运算符两端的数据类型一致。
(1)隐式转换(自动转换从小到大)
A:boolean类型不参与。
B:按照如下格式
为什么long可以到float?
因为浮点数的存储机制和整数不太一样。
浮点数的存储只存储有效数字,和次幂数字等。
23456.123;
2.3456123 * 10 ^ 4
不管怎么说,long能够表示的数据的值是小于float的。
所以,这种转换是可以的。
long 2^63
float10^38 > 8^38 = 2^3^38 = 2^114 > 2^63
注意:
如果运算中有最后边的数据类型,结果一定是最后边的数据类型。
(2)强制转换(从大到小)
这种做法不推荐。因为可能有数据精度的损失。
格式:
目标数据类型变量名 = (目标数据类型) (被强制转换的数据);
byte b = (byte) (100 + 200); //300>127
int i = 100+300;
int age = 20;
18.运算符
定义 : 运算符就是把常量和变量连接的符号,一般参与运算使用。
分类:
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三元运算符
(1)算术运算符
+,-,*,/,%,++,--
+:正号,加法,字符串连接符。
System.out.println("5+5="+5+5);//5+5=55
System.out.println(5+5+"=5+5");//10=5+5
%:取得余数
左边如果大于右边,结果是余数。 5%2=1 2%5=2
左边如果小于右边,结果是左边。
左边如果等于右边,结果是0。
正负号跟左边一致。
++/--:
++ 其实相当于把数据+1
单独使用:
在数据的前后,结果一致。
参与操作使用:
如果在数据的后边,数据先操作,在++/--
int a = 3; System.out.println(a++>4);
如果在数据的前边,数据先++/--,在操作。
(2)赋值运算符
=,+=,-=,*=,/=,%=
int a = 10;
把10赋值给int类型的变量a。
a += 20; // a = (int)(a+20)
把左边和右边的和赋值给左边。
注意事项:
a = a + 20;
a += 20;
结果是等价的,理解不是等价的。
因为+=这种运算符,内含了强制类型转换功能。
比如:
shorts = 2;
s+=3;
等价于
s= (short)(s+3);
(3)比较运算符
举例:
int a=4;
int b=5;
boolean flag = a==b;
System.out.println(flag);
(4)逻辑运算符
boolean b1 = 5>3;
boolean b2 = 9>=3;
System.out.println(b1& b2); // true
System.out.println(b1| b2); // true
System.out.println(!b1 & !b2); // false
System.out.println(!!b1 ^ b2); // false
重点:
“&”和“&&”的区别: 作用:为了提高运算效率,开发时用&&.
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,
如果左边为假,那么右边不参与运算。
开发用: && 和&& 没人用单的.
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。(理解就行,后面几乎不用)
(5)位运算符(做为理解或了解,能看懂即可, 开发几乎不用,目前我没看到谁开发用它!)
看下面程序的执行结果:
int a=3;
int b=4;
System.out.println(a&b);
System.out.println(a|b);
System.out.println(a^b);
System.out.println(~b);
(6)三元运算符
格式:
(条件表达式) ? 表达式1 : 表达式2 ;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
示例:
int a=3, b=4,z;
z = (a>b)?100:200;
练习题巩固:
int x=100;
int y=100;
int z =(x>200)?(y<40?100:200):(y>100?300:400);
System.out.println(z);
z=400;
结果是什么?
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------