1_(常量的概述和使用)*
-
A:什么是常量(constant)java
-
B:Java中常量的分类面试
-
C:字面值常量的分类数组
- 字符串常量 用双引号括起来的内容
- 整数常量 全部整数
- 小数常量 全部小数
- 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
- 布尔常量 较为特殊,只有true和false
- 空常量 null(数组部分讲解)
-
D:案例演示学习
2_(进制概述和二,八,十六进制图解)(了解)
-
A:什么是进制(scale)优化
- 进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
- 例如一周有七天,七进制,一年有十二个月,十二进制
- 星星和月亮的进制,月亮和太阳的进制(4进制)
-
B:十进制的由来编码
- 十进制的由来是由于人类有十个手指(猎物的分配:十个一捆)
-
C:二进制的由来code
- 其实二进制来源与中国,请看史料记载
- 18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0)(1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最早进的。20世纪被称做第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证实了莱布尼兹的原理是正确的,同时也证实了《易经》数理学是很了不得的。
-
D:八进制的由来orm
- 任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中同样也是二进制的,可是使用一大串的1或者0组成的数值进行使用很麻烦。
- 因此就想把一大串缩短点,将二进制中的三位用一位表示。这三位能够取到的最大值就是7.超过7就进位了,这就是八进制。
-
E:十六进制的由来对象
- 可是对于过长的二进制变成八进制仍是较长,因此出现的用4个二进制位表示一位的状况,四个二进制位最大是15,这就是十六进制。
-
F:不一样进制表现同一个数据的形式特色内存
- 进制越大,表现形式越短
- 画图表示(让8个开关表示计算机中的最小单位)
3_(不一样进制数据的表现形式)*
-
A:二进制的数据表现形式
- 由0,1组成。以0b(b能够大写也能够小写)开头(JDK1.7版本能够表示二进制了)
-
B:八进制的数据表现形式
-
C:十进制的数据表现形式
-
D:十六进制的数据表现形式
- 由0,1,…9,a,b,c,d,e,f(大小写都可)。以0x开头
-
E:案例演示
- 输出不一样进制表现100的数据。
- 0b100
- 0100
- 100
- 0x100
4_(任意进制到十进制的转换图解)(了解)
-
A:任意进制到十进制的转换原理
- 系数:就是每一位上的数据。
- 基数:X进制,基数就是X。
- 权:在右边,从0开始编号,对应位上的编号即为该位的权。
- 结果:把系数*基数的权次幂相加便可。
-
B:画图练习(~Scale)
- 二进制--十进制
- 八进制--十进制
- 十六进制--十进制
5_(十进制到任意进制的转换图解)(了解)
-
A:十进制到任意进制的转换原理
-
B:画图练习
- 十进制--二进制
- 十进制--八进制
- 十进制--十六进制
6_(快速的进制转换法)(了解)
-
A:8421码及特色
- 8421码是中国大陆的叫法,8421码是BCD代码中最经常使用的一种。在这种编码方式中每一位二值代码的1都是表明一个固定数值,把每一位的1表明的十进制数加起来,获得的结果就是它所表明的十进制数码。
- B:经过8421码的方式进行二进制和十进制的相互转换
- C:二进制到八进制的简易方式
- D:二进制到十六进制的简易方式
7_(原码反码补码)(了解)
-
A:为何要学习原码反码补码?
- 后面要学习强制类型转换,若是不知道有原反补会看不懂结果
-
B:有符号数据表示法的几种方式
-
原码
- 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其他位表示数值的大小。
- 经过一个字节,也就是8个二进制位表示+7和-7
- 0(符号位) 0000111 +7
- 1(符号位) 0000111 -7
- 1 1111000 -7反码
- 0 0000001 +1
- _
- 1 1111001 -7的补码
0 0000111
1 1111001
_______________________________
00000000
* 反码
* 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
* 补码
* 正数的补码与其原码相同;负数的补码是在其反码的末位加1。
8_(原码反码补码的练习)(了解)
9_(变量的概述及格式)*
-
A:什么是变量
- 在程序执行的过程当中,在某个范围内其值能够发生改变的量
-
B:变量的定义格式
-
C:为何要定义变量
10_(数据类型的概述和分类)*
-
A:为何有数据类型
- Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不一样大小的内存空间(你能吃多少饭,就给你多大的碗)
-
B:Java中数据类型的分类
-
C:基本数据类型分类(4类8种)
-
整数型
- byte 占一个字节 -128到127(8个比特位表明一个字节,也就是8个开关的排列组合组成;范围要背下来,面试可能要问:好记,根据字节去记)
- 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
- boolean理论上是占八分之一个字节,由于一个开关就能够决定是true和false了,可是java中boolean类型没有明确指定他的大小
- (面试题 问:布尔类型在内存中占多大的取值范围啊?坑,没有指定:回到上面的总结便可)
- (不能与其它类型进行运算的,但在C语言中能够运算:0表明false,非0表明true)
11_(定义不一样数据类型的变量)*
-
A:案例演示(~DataType)
- 定义不一样基本数据类型的变量,并输出
- 赋值时候注意float类型,long类型
12_(使用变量的注意事项)*
-
A:案例演示
-
a:做用域问题
-
b:初始化值问题
- 局部变量在使用以前必须赋值
- 局部变量:声明在方法上或者方法中的变量
-
c:一条语句能够定义几个变量
13_(数据类型转换之隐式转换:DataTypeConversion)*
-
A:案例演示
-
B:Java中的默认转换规则
- 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提高为大的,再运算:这就被称之为隐式转换
- C:画图解释byte+int类型的问题
14_(数据类型转换之强制转换)*
-
A:强制转换问题
- int a = 10;
- byte b = 20;
- b = a + b;
-
B:强制转换的格式
- b = (byte)(a + b); (不加byte强转会报错:Java中报can not convert from int to byte; 若是用dos命令运行报错:可能损失精度)
-
C:强制转换的注意事项
- 若是超出了被赋值的数据类型的取值范围获得的结果会与你指望的结果不一样(例如:126 + 4 / 300)
15_(面试题之变量相加和常量相加的区别)*
-
A:案例演示
- 面试题:看下面的程序是否有问题,若是有问题,请指出并说明理由。
- byte b1 = 3;
- byte b2 = 4;
-
-
byte b3 = b1 + b2;
- 从两方面去回答这个题
- byte与byte(或short或char)类型的变量在进行运算的时候,会自动类型提高为int类型
- b1和b2是两个变量,变量存储的值是变化的,在编译的时候,没法判断里面具体的值,相加有可能超过byte的取值范围.
-
byte b4 = 3 + 4;
- 3和4都是常量,java编译器有常量优化机制,就是在编译的的时候直接判断结果,若是在取值范围内就直接把3和4的结果赋值给b4了
16_(long与float的取值范围谁大谁小)(了解)
-
进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提高为int类型,其余类型进行混合运算的是小的数据类型提高为大的
- byte,short,char -- int -- long -- float -- double
- long: 8个字节
-
- float:4个字节
-
- 4个字节是32个二进制位
- 1位是符号位
-
- 8位是指数位(指数指表明多少次幂)
- 00000000 11111111
- 0到255
IEEE754(规定)
* 0表明0
* 255表明无穷大
* 1到254(指数:规定每一个指数要减去127后以下)
* -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
17_(字符和字符串参与运算)*
18_(char数据类型)*
19_(算术运算符的基本用法)*
-
A:什么是运算符(operator)
-
B:运算符的分类
- 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
-
C:算数运算符有哪些
-
D:注意事项:
- a:+号在java中有三种做用,表明正号,作加法运算,字符串的链接符
- b:整数相除只能获得整数。若是想获得小数,必须把其中一个数据变化为浮点数类型,另外一个数自动类型提高
System.out.println(10/3);
System.out.println(10/3.0);
- c:/获取的是除法操做的商,%获取的是除法操做的余数
-
%运算符
- 当左边的绝对值小于右边绝对值时,结果是左边
- 当左边的绝对值等于右边或是右边的倍数时,结果是0
- 当左边的绝对值大于右边绝对值时,结果是余数
- %运算符结果的符号只和左边有关系,与右边无关
- 任何一个正整数%2结果不是0就是1能够用来看成切换条件
20_(算术运算符++和--的用法)*
-
A:++,--运算符的做用
- 自加(++)自减(--)运算
- ++:自加。对原有的数据进行+1
- --:自减。对原有的数据进行-1
-
B:案例演示
-
a:单独使用:
- 放在操做数的前面和后面效果同样。(这种用法是咱们比较常见的)
-
b:参与运算使用:
- 放在操做数的后面,先取值参与运算,再自增或者自减。
- 放在操做数的前面,先自增或者自减,而后再将结果参与运算。
int a = 3;
int b;
b = a++;
//b = ++a;
21_(算术运算符++和--的练习)*
-
A:案例演示
-
B:案例演示
-
C:面试题
- byte b = 10;
- b++;
- b = b + 1;
- 问哪句会报错,为何
22_(赋值运算符的基本用法)*
-
A:赋值运算符有哪些
- a:基本的赋值运算符:=
- int a = 3; 把3赋值给a
- 3 = a;不能给常量赋值.
-
-
b:扩展的赋值运算符:+=,-=,*=,/=,%=
- += 把左边和右边作加法,而后赋值给左边。
- a += 4; // a = a + 4;
23_(赋值运算符的面试题)*
-
A:案例演示
- 面试题:看下面的程序是否有问题,若是有问题,请指出并说明理由。
- short s=1;
- s = s+1;
-
- short s=1;
- s+=1;
24_(关系运算符的基本用法及其注意事项)*
-
A:关系运算符有哪些(比较运算符,条件运算符)
-
注意事项:
- 不管你的操做是简单仍是复杂,结果是boolean类型。
- "=="不能写成"="。