------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a
href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
一、常量
1:什么是常量
在程序的执行过程中其值不发生改变的量。
2:Java中常量的分类
(1):字面值常量
(2):自定义常量
3:字面值常量的分类
(1):字符串常量 用双引号括起来的内容 "HelloWorld","Hello"
(2):整数常量 所有整数 12,23
(3):小数常量 所有小数 12.34,56.78
(4): 字符常量 用单引号括起来的内容 'a','A','0'
(5):布尔常量 较为特有,只有true和false
(6):空常量 null
常量程序演示:
二、进制概述
1:什么是进制
就是进位制,是人们规定的一种进位方法。
二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
2:二进制的由来
3:八进制的由来
4:十六进制的由来
5:不同进制表现同一个数据的形式特点
进制越大,表现形式越短
三、不同进制数据的表现形式及进制转换
A:二进制的数据表现形式
由0,1组成。 以0b开头(1.7版本新特性,b可以大写0B)
B:八进制的数据表现形式
由0,1,…7组成。 以0开头
C:十进制的数据表现形式
由0,1,…9组成。 整数默认是十进制的
D:十六进制的数据表现形式
由0,1,…9,a,b,c,d,e,f(大小写均可)。 以0x开头(x可大写)
1:任意进制转换十进制图:
2:十进制转换成任意进制图:
四、原码反码补码的讲解
1:为什么要讲解有符号数据表示法
为了更好了理解计算机底层是如何做运算的。
2:有符号数据表示法
所有数据的运算都是采用补码进行的。
3:原码
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
4:反码
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
5:补码
正数的补码与其原码相同;负数的补码是在其反码的末位加1。
图解:+7和-7的原、反、补码
五、变量的概述及格式
1:什么是变量
在程序执行的过程中,在某个范围内其值可以发生改变的量。
变量其实是内存中的一小块区域
2:为什么要定义变量
用来不断的存放同一类型的常量,并可以重复使用
3:变量的定义格式
数据类型变量名 =初始化值;
六、数据类型的概述和分类
1:Java中数据类型的分类
(1):基本数据类型
(2):引用数据类型:数组,类,接口
2:基本数据类型的详细讲解(4类8种)
(1):整数型 字节数 范围
byte 1(8bit) -128 ~ 127
short 2(16bit) -2^15 ~ 2^15 - 1
int 4(32bit) -2^31~ 2^31 - 1
long 8(64bit) -2^63 ~ 2^63 - 1
(2)浮点数
float 4(32bit) -3.403*10^38 ~ 3.403*10^38
double 8(64bit) -1.798*10^308 ~ 1.798*10^308
(3): 字符型 char 2(16bit) 0 ~ 2^16 - 1 = 65535
(4): 布尔型 boolean 1
整数默认是int类型的,浮点数默认是 double类型的
程序演示不同数据类型:
七、使用变量的注意事项
a:作用域问题
变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。
相同的作用域中不能定义两个同名变量。
b:初始化值问题
没有初始化值不能直接使用
c:在一行上建议只定义一个变量
可以定义多个,但是不建议
八、数据类型转换
1:隐式转换
Java中的默认转换规则
(1): boolean类型不能转换为其他的数据类型
(2):byte,short,char—int—long—float—double
(3): byte,short,char之间不转换,他们参与运算首先转换为int类型
2:强制转换的格式
目标数据类型变量名=(目标数据类型)(被转换的数据);
尽量不要使用强制类型转化,因为可能存在损失精度的问题。
思考题1:
doubled = 12.345;
floatf = d; 可能损失精度
思考题2:
floatf1 = (float)12.345; 将double类型的数据强转为float类型
floatf2 = 12.345f; 定义的float数据
思考题3:看下面的程序是否有问题,如果有问题,请指出并说明理由。
byteb1 = 3;
byteb2 = 4;
byteb3 = b1 + b2;
byteb4 = 3 + 4;
那么byte b5 = b1+1; ?
编译问题 b1+b2是变量变量做运算在编译时期编译器不确定b1+b2是多少
会将加后的结果以默认类型int来处理.
常量是不变的,编译器就已经知道了3+4的结果,然后检查得到的结果是不是在byte范围内
常量与变量相加,会变成变量的数据类型
九、字符参及字符串与运算
1:案例演示
System.out.println('a'); a
System.out.println('a'+ 1); 98
2:ASCII码表的概述
'0' 48
'A' 65
'a' 97
3:案例演示
System.out.println("hello"+ 'a' + 1); helloa1
System.out.println('a'+ 1 + "hello"); 98hello
4:+在有字符串参与中被称为字符串连接符
找学生提问:
System.out.println("5+5="+5+5); 5+5=55
System.out.println(5+5+"=5+5"); 10=5+5
十、算术运算符的基本用法
1:什么是运算符
对常量和变量进行操作的符号称为运算符
2:运算符的分类
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三目运算符
3:算数运算符有哪些
+, - , * , / , % , ++ , --
注意事项:
a:整数相除只能得到整数。如果想得到小数,请使用浮点数
b:/获取的是除法操作的商,%获取的是除法操作的余数
%运算结果的符号,取决于参与运算是左边的符号
4:++,--运算符的作用
自加(++)自减(--)运算
++:自加。对原有的数据进行+1
--:自减。对原有的数据进行-1
5:注意事项:
a:单独使用:
放在操作数的前面和后面效果一样。
b:参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
int m = ++x;
int n = x++;
6:算数运算符思考题
①请分别计算出a,b,c的值?
inta = 10;
intb = 10;
intc = 10;
a= b++; a:10 b:11 c:10
c= --a; a:9 b:11 c:9
b= ++a; a:10 b:10 c:9
a= c--; a:9 b:10 c:8
a=9, b=10 , c=8
②请分别计算出x,y的值?
intx = 4;
inty = (x++)+(++x)+(x*10); =4+6+6*10=70
x=6
y=70
十一、赋值运算符的基本用法
1:基本的赋值运算符:=
把=右边的数据赋值给左边。
2:扩展的赋值运算符:+=,-=,*=,/=,%=
+=把左边和右边做加法,然后赋值给左边。
3:思考题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
shorts=1;s = s+1; 有问题,可能损失精度
short s=1;s+=1; 没问题 s=s;s+1 s=(short)(s+1);
十二、比较运算符的基本用法及其注意事项
比较运算符有哪些
==,!= , < , > , <= , >= , instanceof