02.01 java语言基础(常量的概述和使用)(掌握)
A:什么是常量:
在程序执行的过程中其值不可以发生改变
B:java中的常量的分类
字面值常量
自定义常量(面向对象部分讲解)
C:字面值常量的分类
字符串常量 用双引号括起来的内容
整数常量 所有整数
小数常量 所有小数
字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
布尔常量 较为特殊,只有true 和false
空常量 null(数组部分讲解)
02.02 java语言基础(进制概述和二,八,十六进制)(了解)
A:什么是进制:
进制:进位制,是人们规定的一种进位方法的.对于任何一种进制--X进制,就表示某一位置上的位运算时是逢X进一位.
二进制:逢二进一 八进制:逢八进一 十进制: 逢十进一 十六进制:逢十六进一
如:一周有七天 七进制,一年有十二个月,十二进制
B:二进制与其它进制的转换
二进制转换成十进制的原则是:基数乘以权,然后相加,简化运算时可以把数位数是0的项不写出来,(因为0乘以其他不为0的数都是0)。小数部分也一样,但精确度较少。
二进制与八进制的转换:采用“三位一并法”(是以小数点为中心向左右两边以每三位分组,不足的补上0)这样就可以轻松的进行转换。
二进制与十六进制的转换:采用的是“四位一并法”,就如二进制与八进制的转换一样足的补上0)这样就可以轻松的进行转换。
二进制与十六进制的转换:采用的是“四位一并法”,就如二进制与八进制的转换一样
C:不同进制表现同一个数据的形式特点: 进制越大,表现形式越短
D:二进制的运算算术
运算二进制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位进位);即7=111
10=1010 3=11
运算二进制的减法:0-0=0,0-1=1(向高位借位) 1-0=1,1-1=0 (模二加运算或异或运算) ;
运算二进制的乘法:0 * 0 = 0 0 * 1 = 0,1 * 0 = 0,1 * 1 = 1 二进制的除法:0÷0 = 0,0÷1 = 0,1÷0 = 0 (无意义),1÷1 = 1 ;
逻辑运算二进制的或运算:遇1得1 二进制的与运算:遇0得0 二进制的非运算:各位取反。
02.03 java语言基础(不同进制数据的表现形式)(掌握)
A:二进制的数据表现形式
由0, 1组成,以0b(b可以大写也可以小写)开头(jdk1.7版本可以表示二进制了)
B:八进制的数据表现形式
由0,1,....7 组成,以0开头
C:十进制的数据表现形式
由0,1,2.....9组成,整数默认是十进制的
D:十六进制的数据表现形式
由0,1,2....9,a,b,c,d,e,f(大小写均可).以0x开头
E:案列演示(不同进制表现100的数据)
二进制:0b100 八进制:0100 十进制:100 十六进制:0x100
02.04 java语言基础(任意进制到十进制的转换)(了解)
A:任意进制到十进制的转换原理:
系数:就是每一位上的数据
基数:X进制,基数就是X
权:从右边,从0开始编号,对应位上的编号即为位的权
结果:把系数*基数的全次幂相加即可
B:二进制--十进制
八进制--十进制
十六进制--十进制
02.05 java语言基础(十进制到任意进制的转换)(了解)
A:十进制到任意进制的转换原理: 除积倒取余
B:十进制--二进制: 先将十进制数的正数部分和小数部分分别转换后,在加以合并
十进制--八进制
十进制--十六进制
02.06 java语言基础(快速的进制转换法)(了解)
A:8421码机器特点
8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种.在这种编码方式中每一位二值代码的1都是代表一个固定书数值,把每一位的1代表的十进制数加起来,得到的结果就是他所代表的十进制数码.
B:通过8421码的方式进行二进制和十进制的相互转换
C:二进制到八进制的简易方式
D:二进制到十六进制的简易方式
02.07 java语言基础(原码,反码,补码的练习)
原码:就是二进制定点表示法,即最高位位符号位,“0”表示正,“1”表示负,其余位表示数值的大小
通过一个字节,也就是8个二进制位表示+7和-7
0(符号位)0000111
1(符号位)0000111
反码:
正数的反码与其原码相同,负数的反码是对其原码逐位取反,但符号除外。
补码:
正数的补码和其原码相同,负数的补码是在其反码的末位加1.
02.08 Java语言基础(原码反码补码的练习)(了解)
A:已知原码求补码
0b10110100 ——> 11001100
B:已知补码求原码
0b11101110 ——>10010010
02.09 Java语言基础(变量的概述及格式)(掌握)
A:什么是变量:
在程序执行的过程中,在某个范围内其值可以发生改变的量
B:变量的定义格式:
数据类型 变量名 = 变量值
C:为什么要定义变量:
用来不断的存放同一类型的常量,并可以重复使用
02.10 Java语言基础(数据类型的概述和分类)(掌握)
A:为什么有数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
B:Java中数据类型的分类:
基本数据类型
引用数据类型(面向对象部分讲解)
C:基本数据类型的分类(4类8种)
整数型
byte 占一个字节 -128到127
short 占两个字节 -2^15~2^15-1
int 占四个字节 -2^31~2^31-1
long 占四个字节 -2^63~2^63-1
浮点型
float 占四个字节 -3.403E38~3.403E38
double 占八个字节 -1.798E308~1.798E308
字符型
Char 占两个字节 0~65535
布尔型
boolean 理论上占八分之一个字节 因为一个开关就可以决定是true和false了,但是Java中boolean类型没有明确指定它的大小
02.11 Java语言基础(定义不同数据类型的变量)(掌握)
A:定义不同基本数据类型的变量,并输出(赋值时注意float类型,long类型)
int a = 10; char c = ‘a’; float f = 10f; long l = 9L;
double b = 0.15 byte bt = 1; Boolean e = false; short s = 7
如:System.out.println(a); 输出a
02.12 Java语言基础(使用变量的注意事项)(掌握)
A:作用域问题:同一个区域不嫩使用相同的变量名
B: 初始化值问题:局部变量在使用之前必须赋值
C:一条语句中可以定义几个变量: int a,b,c…;
02.13 Java语言基础(数据类型转换之隐式转换)
隐式转换:从小到大,可以隐式转换,数据类型会自动提升
Byte , short , char , int , long, float , double
注:boolean类型不会转换为其它数据类型
02.14 Java语言基础(数据类型转换之强行转换)
强制转换:从大到小(如果明确知道数据是可以用该数据类型来表示,可以用强转)。
如:int a = 10; byte b = (byte)a 则当编译byte b = (byte)a时,a被强制转换为byte类型
02.14 Java语言基础(数据类型转换之强行转换超出范围)
强制转换主注意事项:如果超出了被赋值的数据类型的取值范围得到的结果会与期望的结果不同
案例:byte b = (byte)130 byte 范围:-128~127
超出范围,会出现精度缺失,结果为-126
130的二进制原码:00000000 00000000 00000000 10000010
补码:000000000 00000000 00000000 10000010
强转为byte类型,字节数变为1 进行数据截取得 补码: 10000010(计算机处理是以补码进行)
符号位 数值位
补码 1 0000010
反码 1 0000001
原码 1 1111110
将二进制转化为十进制为-126
02.15 Java语言基础(面试题之变量相加和常量相加的区别)(掌握)
面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由
byte b1 = 3;
byte b2 =4;
byte b3 = b1+b2;
从两个方面回答问题:
b1和b2是两个变量,变量里面存储的值都是会变化的,所以在程序运行中JVM是无法判断里面的具体的值的
byte 类型的变量在进行运算的时候,会自动类型提升为int类型
byte b4 = 3+4;
3和4都是常量,java有常量优化机制,就是在编译的时候直接把3和4的结果赋给了b4
02.16 Java语言基础(long与float 的取值范围谁大谁小)(了解)
进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的数据类型
byte,short ,char,--int--long--float--double
long:8个字节 float:4个字节 1位是符号位 8位是指数位
long -2^63~2^63-1
float -3.403E38~3.403E38
long < float
02.17 Java语言基础(字符和字符串参与运算)
A:
B:
C: + 在有字符串参与中被称为字符串连接符
02.18 Java语言基础(char 数据类型)(掌握)
A:char c = 97 0到65535
B:java语言中的字符char可以存储一个中文汉字吗?为什么呢
可以,因为java语言采用的Unicode编码.Unicode编码中的每个字符占用两个字节,中文也是占的两个字节. 所以java中的字符可以存储一个中文汉字.
02.19 Java语言基础(算数运算符的基本用法)(掌握)
A:什么是运算符: 对常量和变量进行操作的符号
B:运算符的分类:
算数运算符 赋值运算符 比较(关系或条件)运算符 逻辑运算符 位运算符 三目(三元)运算符
C:算数运算符有那些: +, -, *, /, %, ++, --
D:注意事项:
当左边的绝对值<右边的绝对值时,结果为左边
当左边的绝对值=右边或是右边的倍数时,结果为0
当左边的绝对值>右边的绝对值时,结果为余数
%运算符结果的符号只和左边有关系,与右边无关
任何一个正整数%2结果不是0就是1可以用来当作切换条件
02.20 Java语言基础(算数运算符++和--的用法)(掌握)
A:++,--运算符的作用
自加(++)自减(--)运算
++: 自加 对原有的数据进行+1
--: 自减 对原有的数据进行-1
放在操作数的前面和后面效果一样(这种用法是我们比较常见的)
放在操作数的前面,先自增或自减,然后在参与运算
放在操作数的后面,先参与运算,在自增或者自减
02.22 Java语言基础(赋值运算符的基本用法)(掌握)
A:赋值运算符有那些:
int a = 3; 把 = 右边的数据赋值给左边
+= 把左边和右边做加法,然后赋值给左边
02.23 Java语言基础(赋值运算符的面试题)(掌握)
面试题:看下面程序是否有问题,如果有问题,请指出并说明理由
short s=1; s =s+1;
short s=1;s+=1;
隐式类型转换可以从小到大自动转,即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换
s+=1的意思与s = s+1不同,
1.s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换 所以将一个int类型赋给short就会出错,
2.s+=1不同由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),即 s+=1 <=> s = (s的类型)(s+1)
02.24 Java语言基础(关系运算符的基本用法及其注意事项)(掌握)
A:关系运算符有那些(比较运算符,条件运算符)
==, != ,>, >=, <, <=
注意事项: