Java语言基础二
1.常量的概述和使用
A:什么是常量
B:Java中常量的分类
常量分类为六种:a.”字符串” b.’字符’ c.整数 d.小数
e.boolern(布尔类型) 返回值为 FALSE和TRUE f.null类型
C:字面值常量的分类
D:案例演示
用输出语句输出各种常量。null不演示。
2.进制概述和二,八,十六进制图解
A:什么是进制
B:二进制的由来
C:八进制的由来
D:十六进制的由来
E:不同进制表现同一个数据的形式特点
进制越大,表现形式越短。
3.不同进制数据的表现形式
A:二进制的数据表现形式 以ob开头 例 ob010100
B:八进制的数据表现形式 以o开头 例:o74
C:十进制的数据表现形式
D:十六进制的数据表现形式 以ox开头 例:ox3c
E:案例演示
* 输出不同进制表现10的数据。
* 0b100 4
* 0100 16
* 10
* 0x100 256
4.任意进制到十进制的转换图解
A:任意进制到十进制的转换原理
十进制转换的公式:系数*基数(几进制)权次幂
B:画图练习
* 二进制--十进制
* 八进制--十进制
* 十六进制--十进制
5.十进制到任意进制的转换图解
A:十进制到任意进制的转换原理 除基数倒取余数
B:画图练习
* 十进制--二进制
* 十进制--八进制
* 十进制--十六进制
6.快速的进制转换法
十进制到二进制
除2取余,直到商为0,最后将余数反转。
十进制13对应的二进制数据是1101。
二进制到十进制的技巧(8421码)。
十进制到八进制
除8取余,直到商为0,最后将余数反转。
十进制13对应的八进制数据是15。
十进制--二进制--八进制
首先 把十进制转成二进制。
其次 把二进制数据每三位组合。左边不够三位用0补位。
然后 把每个组合计算成对应的十进制数据。
最后 从左到右把数据相连接即可得到八进制。
十进制到十六进制
除16取余,直到商为0,最后将余数反转。
十进制13对应的把进制数据是D。
十进制--二进制--十六进制
首先 把十进制转成二进制。
其次 把二进制数据每四位组合。左边不够四位用0补位。
然后 把每个组合计算成对应的十进制数据。
最后 从左到右把数据相连接即可得到十六进制。
7.原码反码补码的讲解
原码:就是带正、负号的二进制数,即高位为符号位,”0” 表示正,”1” 表示负,其余为表示数值大小。
反码:
表示法规定--正数的反码与其原码相同;负数的反码是对其原码逐位取反,符号位除外;
补码:
表示法规定--正数的补码与其原码相同;负数的补码是在其反码末位加1。
8.原码反码补码的练习
A:已知原码求补码
B:已知补码求原码
9.变量的概述及格式
A:什么是变量
在程序的运行过程中,其值在指定范围内变化的值。是内存中一个区域,用于存储数据。
B:为什么要定义变量
为了我们变成的方便。
C:变量的定义格式
1.声明的时候,就初始化
数据类型 变量名 = 初始化值;
2.使用前赋值
D:变量的三种元素:变量类型,变量名,初始化值,在使用变量之前,必须赋值。
10.数据类型的概述和分类
A:为什么有数据类型
B:Java中数据类型的分类 四类八种
C:基本数据类型的详细讲解
基本数据类型
A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同。
B:4类8种
整数
byte 占1个字节//8个开关,8个二进制位 1byte = 8bit
short 占2个字节
int 占4个字节0
long 占8个字节 其后加L或l标识
浮点数
float 占4个字节 其后加F或f标识3.3f 2^63
32个二进制位
1位符号位
8位代表指数位
23位尾数位0.9999999
0000000000 - 111111111 0 - 255
IEEE 754 0 255 特殊的值
1 - 254 - 127
1 - 127 = -126
254 - 127 = 127
double 占8个字节
字符
char 占2个字节 0 - 65535
布尔型
boolean This data type represents one bit of information,
but its "size" isn't something that's precisely defined.
这个数据类型代表一个比特的信息,但它的“大小”不是精确定义的东西.
true,false
C:默认情况下:
整数是int类型
浮点数是double类型
11.定义不同数据类型的变量
A:案例演示
*定义不同基本数据类型的变量,并输出
12.使用变量的注意事项
A:案例演示
* a:作用域问题
* b:初始化值问题
* c:一条语句可以定义几个变量
13.数据类型转换之隐式转换
A:+符号的引入及数据做+的要求
B:案例演示
* a:int + int
* b:byte + int 的结果分别用byte和int类型接收,看效果
C:Java中的默认转换规则
默认转换byte,short,char—int—long—float—double
byte,short,char相互之间补转换,他们参与运算首先转换为int类型
D:画图解释byte+int类型的问题
14.数据类型转换之强制转换
A:强制转换问题的引入
B:强制转换的格式 例 byte b = (byte)(a+b);
C:强制转换的注意事项
D:案例演示
* byte + int 的结果赋值给byte,加强制类型转换
15面试题之变量相加和常量相加的区别
A:案例演示
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1 + b2;
* byte b4 = 3 + 4;
答: byte b3 = b1 + b2;会编译失败,因为这个相加后得到的结果是int类型的
而b是byte类型的,这样转换会损失精度,可用强制类型转换或是两个变量,变量值不确定.
byte b4 = 3 + 4; 3和4是常量.Java中有常量优化机制,编译时已经变成了常量7了
16.数据类型中补充的几个小问题
A:在定义Long或者Float类型变量的时候,要加L或者f。
* 整数默认是int类型,浮点数默认是double。
* byte,short在定义的时候,他们接收的其实是一个int类型的值。
这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。
B:byte值的问题
* byte b1 = 127;
* byte b2 = (byte)300;
* byte b4 = (byte)130;
* byte的范围:-128 ~ 127
C:数据类型转换之默认转换
* byte,short,char -- int -- long -- float -- double
* long: 8个字节
* float:4个字节
* IEEE754
* 4个字节是32个二进制位
* 1位是符号位
* 8位是指数位
* 00000000 11111111
* 0到255
* 1到254
* -126到127
* 23位是尾数位
* 每个指数位减去127
A:它们底层的存储结构不同。
B:float表示的数据范围比long的范围要大
* long:2^63-1
* float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
D:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
* 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。
* 所以,Java中的字符可以存储一个中文汉字
17.字符和字符串参与运算
A:案例演示
* System.out.println('a'); a
* System.out.println('a'+1)
//98 因为char会自动转换为int类型 a为97 要想看a字符 强制转化(char)98
* 通过看结果知道'a'的值是多少,由此引出ASCII码表
B:ASCII码表的概述
* 记住三个值:
* '0' 48
* 'A' 65
* 'a' 97
C:案例演示
* System.out.println("hello"+'a'+1); helloa1
* System.out.println('a'+1+"hello"); 98hello
D:+在有字符串参与中被称为字符串连接符
* System.out.println("5+5="+5+5); 5+5=55
//先于第一个五在一起加成字符串成为 5+5=5 在和后面一个加5+5=55
* System.out.println(5+5+"=5+5");//先进行加法后在连接字符串 10=5+5
18.算术运算符的基本用法
A:什么是运算符
B:运算符的分类
C:算数运算符有哪些
D:案例演示
* 算数运算符的基本用法
注意事项:
* a:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
* b:/获取的是除法操作的商,%获取的是除法操作的余数
19.算术运算符+的多种用法
A:加法
B:正号
C:字符串连接符
20.算术运算符++和--的用法
A:++,--运算符的作用
* 自加(++)自减(--)运算
* ++:自加。对原有的数据进行+1
* --:自减。对原有的数据进行-1
B:案例演示
* a:单独使用:
* 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
* b:参与运算使用:
* 放在操作数的前面,先自增或者自减,然后再参与运算。
* 放在操作数的后面,先参与运算,再自增或者自减。
21.算术运算符++和--的练习
A:案例演示
* 请分别计算出a,b,c的值?
int a = 10;
int b = 10;
int c = 10;
a = b++; // a=10 b=11
c = --a; // c=9 a=9
b = ++a; // b=10 a=10
a = c--; // a=9 c=8
所以输出a=9,b=10,c=8
B:案例演示
* 请分别计算出x,y的值?
int x = 4;
4 6 60
int y = (x++)+(++x)+(x*10);//70
22.赋值运算符的基本用法
A:赋值运算符有哪些
B:案例演示
* 赋值运算符的基本用法
注意事项:
* a:基本的赋值运算符:=
* 把=右边的数据赋值给左边。
* b:扩展的赋值运算符:+=,-=,*=,/=,%=
* += 把左边和右边做加法,然后赋值给左边。
23.赋值运算符的面试题
A:案例演示
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* short s=1;s = s+1;
//s赋值后的类型是int类型的,在赋值一个给一个short类型.缺失精度.不能转换
* short s=1;s+=1;
//相当于s=(short)(s+1);里面包含了一个强制转换
24.关系运算符的基本用法及其注意事项
A:关系运算符有哪些
B:案例演示
* 关系运算符的基本用法
注意事项:
* 无论你的操作是简单还是复杂,结果是boolean类型。
* "=="比较运算符不能写成"="算术运算符。