02.01 常量的概述和使用
A:什么是常量
* 在程序执行过程中其值不能发生改变
B:Java中常量的分类
* 字面值常量
* 自定义常量
C:字面值常量的分类
* 字符串常量 用双引号括起来的内容
* 整数常量 所有整数
* 小数常量 所有小数
* 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
System.out.println('');//''中什么也不放,也是不可以的,因为代表不了任何字符
* 布尔常量 较为特殊 true or false
* 空常量 null
02.02 进制概述和二,八,十六进制图解
A:什么是进制
* 进制就是进位制,是人们规定的一种进制方法。对于任何一种进制--x进制,就表示某一位置上的
数位运算时是逢x进一位。二进制逢二进一,八进制就是逢八进一,十六进制就是逢十六进一。
例如:一周有七天,七进制,
B:不同进制表现同一个数据的形式特点
* 进制越大,表现形式越短
02.03 不同进制数据的表现形式
A:二进制的数据表现形式
* 由0,1组成,以0b(b可以大写也可以小写)开头
B:八进制的数据表现形式
* 由0~7组成,以0开头
C:十进制的数据表现形式
* 由0~9组成,整数默认是十进制的
D:十六进制的数据表现形式
* 由0~9,a~x(大小写均可)表示,以0x开头
02.04 任意进制到十进制的转换
A:任意进制转换到十进制的转换原理
* 系数:每一位上的数据
* 基数:x进制,基数就是x
* 权:在右边,从0开始编号,对座位上的编号即为该位的权
* 结果:把系数*基数的权次幂相加即可
02.05 十进制转换到任意进制
A:十进制转换到任意进制的转换原理
* 除积倒取余
02.06 快速的进制转换法
A:8421码及特点
* 8421码是大陆的叫法,8421码是BCD代码中最常用的一种,在这种编码方式中每一位二进制代码
的1都代表一个固定数值,把每一位1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
B:通过8421码的方式进行二进制和十进制的相互转换
C:二进制到八进制的简易方式(三位数)
D:二进制到十六进制的简易方式(四位数)
02.07 原码反码补码
A:为什么要学习原码反码补码?
* 后面要学习强制类型转换,如果不知道原反补会看不懂结果
02.08 变量的概述及格式
A:什么是变量
* 再程序执行过程中,在某个范围内其值可以发生变量的量
B:变量的定义格式
* 数据类型 变量名 = 变量值;
C:为什么要定义变量
* 用来不断的存放同一类型的常量,并可以重复使用
02.09 数据类型的概述和分类
A:为什么有数据类型
* Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内
存空间
B:Java中数据类型的分类
* 基本数据类型
* 引用数据类型
C:基本数据类型分类
* 整数型
* byte 占一个字节 -128~127
* short 占两个字节 -2^15~2^15-1
* int 占四个字节 -2^31~2^31-1
* long 占八个字节 -2^63~2^63-1
* 浮点型
* float 占四个字节
* double占八个字节
* 字符型
* char 占两个字节 0~65535
* 布尔型
* boolean
* boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是
java中boolean类型没有明确指定它的大小
02.10 定义不同数据类型的变量 //DateType数据类型
A:定义不同基本数据类型的变量,并输出
B:赋值时注意float类型,long
* long x=88888888888L;
* System.out.println(12345+5432l);//结果17777 5432l最后一位是l不是1
C:浮点类型
* float f = 12.3f;
* double d= 33.4; //小数默认的数据类型是double
D:字符类型
* char c = 'a';
* System.out.println(c);
E:布尔类型
* boolean b1 = true;
* boolean b2 = false;
* System.out.println(b1);
* System.out.println(b2);
02.11 使用变量的注意事项
A:作用域问题
* 同一个区域不能使用相同的变量名
B:初始化问题
* 局部变量在使用之前必须赋值
C:一条语句可以定义几个变量
* int a,b,c,...;
02.12 数据类型转换之隐式转换 //Conversion转换
class DatetypeConversion{
public static void main(String[] args){
//数据类型转换之隐式转换
/* int x = 3;
byte b = 4;
x = x + b;
System.out.println(x);*/
//数据类型转换之强制转换
/* int x=3;
byte b=4;
b=(byte)(x+b);
System.out.println(b);*/
//数据类型转换之强制转换超出范围
//00000000 00000000 00000000 10000010 130的二进制
//10000010 -126的补码
//00000001 -1求反码
//10000001 -126的反码
//11111110 -126的原码
byte b=(byte)(126+4);
System.out.println(b);
//00000000 00000000 00000001 00101100 300的二进制
//00101100 32+8+4=44
byte b2=(byte)300;
System.out.println(b2);
}
}
02.13 变量相加和常量相加的区别
class DatetypeConversion{
public static void main(String[] args){
//面试题:看下面的程序是否有问题,如果有问题,请指出并说明问题。
byte b1=3;
byte b2=4;
byte b3=b1+b2;
/*
* 从两个方面:
* 1,byte与byte(或short,char)进行运算的时候会提升为int,两个int类型相加的结果也是int型
* 2,b1和b2是两个变量,变量存储的值是变化,在编译的时候无法判断里面具体的值,相加有可能会超出
* byte的取值范围
*/
System.out.println(b3);
//java编译器有常量优化机制
}
}
02.14 long与float取值范围谁大谁小
*进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数
据类型提升为大的
*byte,short,char --int--long--float--double
02.15 字符与字符串的运算
* System.out.println('a'+1); //因为有ASCII码表,a字符对应的是int类型的7
* System.out.println((char)('a'+1));
* System.out.println("hello"+'a'+1); //任何数据类型用+与字符串相连接都会产生新的字符串
* System.out.println('a'+1+"hello");
02.16 char数据类型
* char 0~65535
* char类型是存储中文,每个字符占两个字节,中文也是占两个字符
02.17 算数运算符的基本用法 //operator 运算符
A:运算符就是对常量和变量进行操作的符号
B:运算符的分类
* 算数运算符,赋值运算符,比较(关系或条件)运算符,条件运算符,位运算符,三目(元)运算符
C:算数运算符的符号
* +-*/% ++ --
* 当++在变量后面的时候,会先将变量中的值取出做赋值操作,然后再做赋值操作+1
* 当++在变量前面的时候,会先自身+1,再将结果赋值