###01.24_Java语言基础(常量的概述和使用)(掌握)
* A:什么是常量
* 在程序执行的过程中其值不可以发生改变
* B:Java中常量的分类
* 字面值常量
* 自定义常量(面向对象部分讲)
* C:字面值常量的分类
* 字符串常量 用双引号括起来的内容
* 整数常量 所有整数
* 小数常量 所有小数
* 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 0 – 9
* 布尔常量 较为特殊,只有true和false
* 空常量 null(数组部分讲解)
* D:案例演示
* 用输出语句输出各种常量。null不演示
案例:
class Demo1_Constant {
// constant 常量
public static void main(String[] args) {
/*
* 字符串常量 用双引号括起来的内容 整数常量 所有整数 小数常量 所有小数 字符常量
* 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量 较为特殊,只有true和false 空常量
* null(数组部分讲解)
*/
System.out.println("abc"); // 字符串常量
System.out.println(123); // 整数常量
System.out.println(12.3); // 小数常量
// System.out.println('10'); //''中必须放的是单个字符,10代表的是1字符和0字符
// System.out.println(''); //''中什么也不放,也是不可以的,因为代表不了任何字符
System.out.println(' '); // 带表空格字符
System.out.println(true); // boolean类只有两个值,true和false
System.out.println(false);
}
}
###01.25_Java语言基础(进制概述和二,八,十六进制图解)(了解)
* A:什么是进制
* 进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
* 例如一周有七天,七进制,一年有十二个月,十二进制
* B:十进制的由来
* 十进制的由来是因为人类有十个手指
* C:二进制的由来
* 其实二进制来源与中国,请看史料记载
* 18世纪德国数理哲学大师莱布尼兹从他的传教士朋友鲍威特寄给他的拉丁文译本《易经》中,读到了八卦的组成结构,惊奇地发现其基本素数(0)(1),即《易经》的阴爻yao- -和__阳爻,其进位制就是二进制,并认为这是世界上数学进制中最先进的。20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,其运算模式正是二进制。它不但证明了莱布尼兹的原理是正确的,同时也证明了《易经》数理学是很了不起的。
* D:八进制的由来
* 任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。
* 所以就想把一大串缩短点,将二进制中的三位用一位表示。这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。
* E:十六进制的由来
* 但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。
* F:不同进制表现同一个数据的形式特点
* 进制越大,表现形式越短
*容量的转换
* 1byte = 8bit
* 1024byte = 1k
* 1024k = 1m
* 1024m = 1g
* 1024g = 1t
###01.26_Java语言基础(不同进制数据的表现形式)(掌握)
* A:二进制的数据表现形式
* 由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
* B:八进制的数据表现形式
* 由0,1,…7组成。以0开头
* C:十进制的数据表现形式
* 由0,1,…9组成。整数默认是十进制的
* D:十六进制的数据表现形式
* 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
* E:案例演示
* 输出不同进制表现100的数据。
* 0b100
* 0100
* 100
* 0x100
案例:
class Demo1_Scale { // scale 进制
public static void main(String[] args) {
/*
* 0b100 0100 100 0x100
*/
System.out.println(0b100); // 4? 二进制表示形式前面加0b(b可以大写也可以小写)
System.out.println(0100); // 64? 八进制表示形式前面加0
System.out.println(100);
System.out.println(0x100); // 256? 十六进制表示形式前面加0x(可以大写也可以小写)
}
}
###01.27_Java语言基础(任意进制到十进制的转换图解)(了解)
* A:任意进制到十进制的转换原理
* 系数:就是每一位上的数据。
* 基数:X进制,基数就是X。
* 权:在右边,从0开始编号,对应位上的编号即为该位的权。
* 结果:把系数*基数的权次幂相加即可。
* B:画图练习
* 二进制--十进制 binary
* 八进制--十进制 octal
* 十六进制--十进制 hex
###01.28_Java语言基础(十进制到任意进制的转换图解)(了解)
* A:十进制到任意进制的转换原理
* 除积倒取余
*除以基数得到余数直到商为零,对所得余数倒序反转。
* B:画图练习
* 十进制--二进制
* 十进制--八进制
* 十进制--十六进制
###01.29_Java语言基础(快速的进制转换法)(了解)
* A:8421码及特点
* 8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。
* B:通过8421码的方式进行二进制和十进制的相互转换
* C:二进制到八进制的简易方式
* D:二进制到十六进制的简易方式
###02.01_Java语言基础(原码反码补码)(了解)
* A:为什么要学习原码反码补码?
* 后面要学习强制类型转换,如果不知道有原反补会看不懂结果
* B:有符号数据表示法的几种方式
* 原码
* 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
* 通过一个字节,也就是8个二进制位表示+7和-7
* 0(符号位) 0000111
* 1(符号位) 0000111
* 反码
* 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
* 补码
* 正数的补码与其原码相同;负数的补码是在其反码的末位加1。
###02.02_Java语言基础(原码反码补码的练习)(了解)
* A:已知原码求补码
* 0b10110100
* B:已知补码求原码
* 0b11101110
###02.03_Java语言基础(变量的概述及格式)(掌握)
* A:什么是变量
* 在程序执行的过程中,在某个范围内其值可以发生改变的量
变量的定义格式有几种?分别是什么
* B:变量的定义格式
* 数据类型 变量名 = 变量值;
* C:为什么要定义变量
* 用来不断的存放同一类型的常量,并可以重复使用
###02.04_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
* boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
###02.05_Java语言基础(定义不同数据类型的变量)(掌握)
* A:案例演示
* 定义不同基本数据类型的变量,并输出
* 赋值时候注意float类型,long类型
* 整数给long赋值时,数据后面加L
* 小数给float赋值时,数据后面加f
案例:
class Demo1_DataType {
// DataType数据类型
public static void main(String[] args) {
// 整数类型
byte b = 10; // 占一个字节,-128 到 127
short s = 20; // 占两个字节
int i = 30; // 占四个字节 整数默认的数据类型就是int类型
long x = 8888888888L; // 占八个字节 如果long类型后面加L进行标识最好加大L,因为小l太像一了
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(x);
// System.out.println(12345 + 54321l);
// 浮点类型
float f = 12.3F; // 占四个字节
double d = 33.4; // 占八个字节 小数默认的数据类型是double,double类型后面也可以用D或d标识,但是一般不加
System.out.println(f);
System.out.println(d);
// 字符类型
char c = 'a'; // 占两个字节
System.out.println(c);
// 布尔类型
boolean b1 = true;
boolean b2 = false;
System.out.println(b1);
System.out.println(b2);
}
}
###02.06_Java语言基础(使用变量的注意事项)(掌握)
* A:案例演示
* a:作用域问题
* 同一个区域不能使用相同的变量名
* b:初始化值问题
* 局部变量在使用之前必须赋值(我们现在所使用的变量都是局部变量,因为都是定义在方法中的)
* c
案例:
class Demo2_DataType {
public static void main(String[] args) {
/*
* int x = 10; int x = 20;
*
* System.out.println(x);
*
* int y;
*
* y = 10; System.out.println(y);
*/
int a, b, c, d, e;
a = 10;
b = 20;
c = 30;
d = 40;
e = 50;
System.out.println(a);
int x = 10;
int y = 20;
int z = 30;
}
}
###02.07_Java语言基础(数据类型转换之隐式转换)(掌握)
* A:案例演示
* a:int + int
* b:byte + int
* B:Java中的默认转换规则
* 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
* C:画图解释byte+int类型的问题
案例:
class Demo3_DataTypeConversion {
// Conversion转换
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
byte b2 = (byte) 300;
System.out.println(b2);
}
}
###02.08_Java语言基础(数据类型转换之强制转换)(掌握)
* A:强制转换问题
* int a = 10;
* byte b = 20;
* b = a + b;
* B:强制转换的格式
* b = (byte)(a + b);
* C:强制转换的注意事项
* 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
byte类型的数据的取值范围:
案例:
class Demo3_DataTypeConversion {
// Conversion转换
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
byte b2 = (byte) 300;
System.out.println(b2);
}
}
###02.09_Java语言基础(面试题之变量相加和常量相加的区别)(掌握)
* A:案例演示
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* 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了
案例:
class Test1_DataTypeConversion {
public static void main(String[] args) {
// 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
byte b1 = 3;
byte b2 = 4;
// byte b3 = b1 + b2;
/*
* 从两方面
* 1,byte与byte(或short,char)进行运算的时候会提升为int(因为整数默认的类型为int),两个int类型相加的结果也是int类型
* 2,b1和b2是两个变量,变量存储的值是变化,在编译的时候无法判断里面具体的值,相加有可能会超出byte的取值范围
*/
// System.out.println(b3);
// byte b4 = 3 + 4; //java编译器有常量优化机制,在编译的时候就把3+4的结果计算出来了,
byte b4 = 7; // 以判断7在-128至127之间
System.out.println(b4);
}
}
###02.10_Java语言基础(long与float的取值范围谁大谁小)(了解)
* 进行混合运算的时候,byte,short,char不会相互转换,都会自动类型提升为int类型,其他类型进行混合运算的是小的数据类型提升为大的
* 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
*几个基本类型的取值范围如下:byte,short,char < int < long < float < double
案例:
class Test2_DataTypeConversion {
public static void main(String[] args) {
float f = 12.3f;
long x = 12345;
//f = x; //隐式转换
//System.out.println(f);
x = (long)f; //强制转换
System.out.println(x);
/*
float占4个字节
IEEE 754
32个二进制位
1位代表是符号位
8位代表指数位
00000000 - 11111111
0 - 255
0代表0
255代表无穷大
1 - 254
-126 - 127
23位代表尾数位
*/
}
}
###02.11_Java语言基础(字符和字符串参与运算)(掌握)
* A:案例演示
* System.out.println('a');
* System.out.println('a'+1);
* 通过看结果知道'a'的值是多少,由此引出ASCII码表
* B:ASCII码表的概述
* 记住三个值:
* '0' 48
* 'A' 65
* 'a' 97
* C:案例演示
* System.out.println("hello"+'a'+1);
* System.out.println('a'+1+"hello");
* D:+在有字符串参与中被称为字符串连接符
* System.out.println("5+5="+5+5);
* System.out.println(5+5+"=5+5");
案例:
class Demo4_DataTypeConversion {
public static void main(String[] args) {
//System.out.println('a' + 1); //98,因为有ASCII码表,a字符对应的是int类型的97
//字符型数据和整型数据进行运算会将字符提升为整型
//System.out.println((char)('a' + 1));
System.out.println("hello"+'a'+1); //任何数据类型用+与字符串相连接都会产生新的字符串
System.out.println('a'+1+"hello");
System.out.println(" 5 + 5 = " + (5 + 5));
}
}
###02.12_Java语言基础(char数据类型)(掌握)
* A:char a = 97; 0到65535
* B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
* 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
* 所以,Java中的字符可以存储一个中文汉字
案例:
class Demo5_Char {
public static void main(String[] args) {
char c = 'a';
System.out.println(c);
byte b = 100;
char c1 = 97; //0 - 65535
System.out.println(c1);
char c2 = 3;
char c3 = 4;
char c4 = 5;
char c5 = 6;
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
//char类型是否可以存储中文
char c6 = '中';
System.out.println(c6);
}
}
任何数据类型用+号连接都会产生一个新的字符串
###02.13_Java语言基础(算术运算符的基本用法)(掌握)
* A:什么是运算符
* 就是对常量和变量进行操作的符号。
* B:运算符的分类
* 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
* C:算数运算符有哪些
* +,-,*,/,%,++,--
* D:注意事项:
* a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
* b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
* c:/获取的是除法操作的商,%获取的是除法操作的余数
* %运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
* 任何一个正整数%2结果不是0就是1可以用来当作切换条件
*一个数%10 是它本身
案例:
class Demo1_Operator { //operator 运算符
public static void main(String[] args) {
/*
* a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
* b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
* c:/获取的是除法操作的商,%获取的是除法操作的余数
* %运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
* 任何一个正整数%2结果不是0就是1可以用来当作切换条件
*/
//System.out.println(10 / 3); //整数相除结果只能是整数
//System.out.println(10 / 3.0); //如果想得到小数,把其中一个数变成小数,另一个数在运算的时候会自动类型提升
//System.out.println(-5 % 5);
System.out.println(13 % -5);
}
}
###02.14_Java语言基础(算术运算符++和--的用法)(掌握)
* A:++,--运算符的作用
* 自加(++)自减(--)运算
* ++:自加。对原有的数据进行+1
* --:自减。对原有的数据进行-1
* B:案例演示
* a:单独使用:
* 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
* b:参与运算使用:
* 放在操作数的前面,先自增或者自减,然后再参与运算。
* 放在操作数的后面,先参与运算,再自增或者自减。
案例:
class Demo2_Operator {
/*
* a:单独使用:
* 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
* b:参与运算使用:
* 放在操作数的前面,先自增或者自减,然后再参与运算。
* 放在操作数的后面,先参与运算,再自增或者自减。
*/
public static void main(String[] args) {
//单独使用
/*int a = 3;
//a++; //a = a + 1;
++a; //a = a + 1;
System.out.println(a);*/
//参与运算使用
int a = 3;
int b;
//b = a++; //当++在变量后面的时候,会先将变量中的值取出做赋值操作,然后再自身加1
b = ++a; //当++在变量前面的时候,会先自身加1,然后在将结果赋值
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
###02.15_Java语言基础(算术运算符++和--的练习)(掌握)
* A:案例演示
* 请分别计算出a,b,c的值?
*
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
* B:案例演示
* 请分别计算出x,y的值?
int x = 4;
int y = (x++)+(++x)+(x*10);
* C:面试题
* byte b = 10;
* b++;
* b = b + 1;
* 问哪句会报错,为什么
案例:
class Test1_Operator {
public static void main(String[] args) {
//第一题
/*int a = 10;
int b = 10;
int c = 10;
a = b++; //a = 10 ,b = 11
c = --a; //a = 9, c = 9
b = ++a; //a = 10, b = 10
a = c--; //a = 9, c = 8
System.out.println("a = " + a + ",b = " + b + ",c = " + c);*/
//第二题
/*int x = 4;
// 4 + 6+ 60
int y = (x++)+(++x)+(x*10);
System.out.println("x = " + x + ",y = " + y);*/
//第三题问哪句会报错,为什么
byte b = 10;
//b++; //b = (byte)(b + 1)
b = b + 1; //当byte与int进行混合运算的时候,会提升为int类型,两个int相加的结果还是int,赋值给byte会损失精度
System.out.println("b = " + b);
}
}
###02.16_Java语言基础(赋值运算符的基本用法)(掌握)
* A:赋值运算符有哪些
* a:基本的赋值运算符:=
* 把=右边的数据赋值给左边。
* b:扩展的赋值运算符:+=,-=,*=,/=,%=
* += 把左边和右边做加法,然后赋值给左边。
案例:
class Demo1_Operator {
public static void main(String[] args) {
//赋值运算符
int a = 3; //把右边的常量值赋值给左边的变量,左边必须是变量
//a += 4; //a = a + 4;
a = a + 4;
System.out.println(a);
}
}
###02.17_Java语言基础(赋值运算符的面试题)(掌握)
* A:案例演示
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* short s=1;s = s+1;
* short s=1;s+=1;
案例:
class Test1_Operator {
public static void main(String[] args) {
// 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
//short s=1;s = s+1; //当short与int进行运算的时候,会提升为int类型,两个int类型相加的结果也是int类型
short s=1;s+=1; //s = (short)(s + 1);
System.out.println(s);
}
}
###02.18_Java语言基础(关系运算符的基本用法及其注意事项)(掌握)
* A:关系运算符有哪些(比较运算符,条件运算符)
* ==,!=,>,>=,<,<=
* 注意事项:
* 无论你的操作是简单还是复杂,结果是boolean类型。
* "=="不能写成"="。
建议写成 4 == a 可以在编绎时提示报错
class Demo1_Operator {
public static void main(String[] args) {
//==,!=,>,>=,<,<=
System.out.println(4 == 3);
System.out.println(4 != 3);
System.out.println(4 > 4);
System.out.println(4 >= 4);
System.out.println(4 < 3);
System.out.println(4 <= 3);
}
}
###02.29_day02总结
* 把今天的知识点总结一遍
。。。。。。。。。。。。。。。。。。。。。。。。
02.01_Java语言基础(常量的概述和使用).avi
"1" '1' 1的区别?
----------------------------------------------------
"1"字符串常量 '1'字符常量 1整数常量。
02.02_Java语言基础(进制概述和二,八,十六进制图解).avi
1.计算机对数据进行存储和运算的做小单位是?
2.计算机能够直接识别的进制是哪一种?
---------------------------------------------------------
1.是字节。
2.二进制,注意八进制用3个二进制位表示,十六进制用4个二进制位表示
02.03_Java语言基础(不同进制数据的表现形式).avi
二,八,十六进制以什么开头进行表示?
-------------------------------------------------------
二进制的数据表现形式
由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
八进制的数据表现形式
由0,1,…7组成。以0开头
十进制的数据表现形式
由0,1,…9组成。整数默认是十进制的
十六进制的数据表现形式
由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
02.04_Java语言基础(任意进制到十进制的转换图解).avi
原理:把系数*基数的权次幂相加即可。【从0开始编号】
02.05_Java语言基础(十进制到任意进制的转换图解).avi
原理:除积 倒取 余。
02.06_Java语言基础(快速的进制转换法).avi
使用快速转换法求100的二,八,十六进制。
练习:快速转换法求100的二,八,十六进制。
-------------------------------------------------------
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
0 1 1 0 0 1 0 0
1 4 4
6 4
0b01100100
0244
0x64
02.07_Java语言基础(原码反码补码).avi
1.整数和负数原码反码补码有什么特点?
------------------------------------------
1.
原码反码补码用1个字节也就是8个二进制表示,其中最高位是符合位。整数是0,负数是1。
正数
原码 = 补码 = 反码
负数
反码 = 原码(符号位不变,数值位1变0,0变1)
补码 = 反码+1
原码--->补码 10000111 --->11111001 负数的原码给人看的。
补码--->原码 11111001 --->10000111 负数的补码给计算机看的,计算机存储的也是补码。
02.08_Java语言基础(原码反码补码的练习).avi
•0b10110100 (原码) ---- 0b11001100 (补码)
•0b11101110 (原码) ---- 0b10010010 (补码)
[从右往左看找到第一个1,这个1和符合位不变,然后这个1左边的1变0,0变1]
02.09_Java语言基础(变量的概述及格式).avi
变量的定义格式有几种?分别是什么?
----------------------------------------------------
基本格式:
数据类型 变量名 = 初始化值;
变形格式:
数据类型 变量名;
变量名 = 初始化值;
02.10_Java语言基础(数据类型的概述和分类).avi
Java中数据类型分为哪几类?
--------------------------------------------
基本数据类型和引用数据类型。
基本数据类型包括:
* 整数型
* byte 占一个字节 -128到127
* short 占两个字
* int 占四个字节
* long 占八个字节
* 浮点型
* float 占四个字节
* double 占八个字节
* 字符型
* char 占两个字节 0-65535(肯定是个大于等于0)
* 布尔型
* boolean
引用数据类型包括:类,数组,接口
02.11_Java语言基础(定义不同数据类型的变量).avi
1.整数型和浮点型数据默认是哪种具体类型?
2.如果不是默认类型数据,需要注意什么?
---------------------------------------------------
1.整数型默认的是int. 浮点型默认的是double.
2.注意:a.当1个整数超过了int的取值范围,你想把它赋值给long类型时,这个整数后面加L进行标识。L建议大写。
b.所有的小数,如果你想给float进行赋值,那这个小数后面加F进行标识。
02.12_Java语言基础(使用变量的注意事项).avi
1.变量在使用前需要注意什么问题?
---------------------------------------------------
注意事项:
a:作用域问题
* 同一个区域不能使用相同的变量名 【补:方法参数中定义的变量名和方法中定义的变量名,也不能一样】
b:初始化值问题
* 局部变量在使用之前必须赋值
c:一条语句可以定义几个变量
* int a,b,c...;
02.13_Java语言基础(数据类型转换之隐式转换).avi
隐式转换原理:
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算。
【补:如果是整数型和浮点型进行运算,结果肯定是浮点型】
02.14_Java语言基础(数据类型转换之强制转换).avi
强制转换的格式是什么?什么时候使用强制转换?
-----------------------------------------------------
b = (byte)(a + b); 把取值范围大的数据类型赋值给取值范围小的数据类型时,就要使用强制转换。
02.15_Java语言基础(数据类型转换之强制转换超出范围).avi
强制转换的注意事项:
在进制强转转换时,必须人为的判断被强制转换的数据类型是否会超出了被赋值的数据类型的取值范围,如果会超出了,那结果就不是你想要的。
02.16_Java语言基础(面试题之变量相加和常量相加的区别).avi
1.为什么byte b = 4+3;不用进行强转?
2.为什么byte b =b1+b2;就必须进行强转类型转换?
-----------------------------------------------------------------
1.因为java内部的常量优化机制帮我们实现了强制转换,如果范围在btye范围,强制转化,如果范围超出就会提示丢失精度。
2.因为b1和b2是变量,那就没常量优化机制,而我们的btye,short,char他们的运算都会自动提升为int类型进行运算,所以b1+b2的结果是int.你想把int赋值给btye,那就是把取值范围大的数据类型赋值给取值范围小的数据类型时,就要使用强制转换。
02.17_Java语言基础(long与float的取值范围谁大谁小).avi
1 long与float的取值取值范围谁大谁小?
2 进行混合运算的时候的规则?
---------------------------------------------------------------
1.
long的取值范围是指数为0-63。而float指数 -126~127。2.
byte,short,char < int < long < float < double
【补:
1,整数型byte,short,char 在进行运算时,会提升为int型
2,整数型和浮点型进行运算,结果肯定是浮点型】
02.18_Java语言基础(字符和字符串参与运算).avi
字符和字符串参与运算的特点是什么?
----------------------------------------------
字符运算的特点:字符运算时,会根据ASCII表把字符提升为int型。
字符串运算的特点:任意类型与字符串用+连接都会产生一个新的字符串。
02.19_Java语言基础(char数据类型).avi
1 char数据类型的取值范围是多少?
2 字符char可以存储一个中文汉字吗?为什么呢?
------------------------------------------
1 0~65535
2 可以,把1个中文存储在字符里面,这个中文会根据Unicode编码变成2个字节。而我们的char可以存储2个字节。
02.20_Java语言基础(算术运算符的基本用法).avi
1 算术运算符有哪些?
2 使用算术运算符有哪些注意事项?
--------------------------------------------------
1 +,-,*,/,%,++,--
2 a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
c:/获取的是除法操作的商,%获取的是除法操作的余数
d:%运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
* 任何一个正整数%2结果不是0就是1可以用来当作切换条件。
02.21_Java语言基础(算术运算符++和--的用法).avi
b=++a和b=a++哪一个是先赋值在自增?
他们都是对原有的数据进行+1,[重左往右看,如果遇到+那就是先自增在赋值,如果遇到a,那就是先赋值在自增]
02.22_Java语言基础(算术运算符++和--的练习).avi
【看代码: ++和--底层会默认的进行强制转换成其对应的类型。】
02.23_Java语言基础(赋值运算符的基本用法).avi
【注意+=, =在右边。】
02.24_Java语言基础(赋值运算符的面试题).avi
+=这个运算符,有什么特性?
---------------------------------------------------
[+=底层会默认的进行强制转换成其对应的类型和++,--一样]
02.25_Java语言基础(关系运算符的基本用法及其注意事项).avi
关系运算符的注意事项有哪些?
------------------------------------------------------------
1.结果是boolean类型,不是ture就是false.
2.==不要写成 = 。
3.注意关系运算符>=或者!=, =都在右边。