1_Java语言基础(常量的概述和使用)(掌握)
A:什么是常量
* 在程序执行的过程中其值不可以发生改变
* B:Java中常量的分类
* 字面值常量
* 自定义常量(面向对象部分讲)
* C:字面值常量的分类
* 字符串常量 用双引号括起来的内容
* 整数常量 所有整数
* 小数常量 所有小数
* 字符常量 用单引号括起来的内容,里面只能放单个数字(0-9), 单个字母或单个符号,什么都不放也不可以
* 布尔常量 较为特殊,只有true和false
* 空常量 null(数组部分讲解)
D:案例演示
2_Java语言基础(原码反码补码)(了解)
* A:为什么要学习原码反码补码?* 后面要学习强制类型转换,如果不知道有原反补会看不懂结果
* B:有符号数据表示法的几种方式
* 原码
* 就是二进制定点表示法,即最高位为符号位,“0”表示正, “1”表示负,其余位表示数值的大小。
* 通过一个字节,也就是8个二进制位表示+7和-7
* 0(符号位) 0000111
* 1(符号位) 0000111
* 反码
* 正数的反码与其原码相同;负数的反码是对其原码逐位取 反,但符号位除外。
* 补码
* 正数的补码与其原码相同;负数的补码是在其反码的末位 加1。
计算机计算都是以补码形式运算的
3_Java语言基础(变量的概述及格式)(掌握)
* A:什么是变量* 在程序执行的过程中,在某个范围内其值可以发生改变的量
* B:变量的定义格式
* 数据类型 变量名 = 变量值;
* C:为什么要定义变量
* 用来不断的存放同一类型的常量,并可以重复使用
4_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类型没有明确指定他的大小
5_Java语言基础(使用变量的注意事项)(掌握)
* A:案例演示* a:作用域问题
* 同一个区域不能使用相同的变量名
* b:初始化值问题
* 局部变量在使用之前必须赋值
* c:一条语句可以定义几个变量
* int a,b,c...;
6_Java语言基础(数据类型转换之隐式转换)(掌握)
* A:案例演示* a:int + int
* b:byte + int
* B:Java中的默认转换规则
* 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将 小的数据类型提升为大的,再运算
7_Java语言基础(数据类型转换之强制转换)(掌握)
* A:强制转换问题* int a = 10;
* byte b = 20;
* b = a + b;
* B:强制转换的格式
* b = (byte)(a + b);
* C:强制转换的注意事项
* 如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的
结果不同 (会按照数据类型的位数大小去掉多余的位数并且按照补码到源码输出)
8_Java语言基础(面试题之变量相加和常量相加的区别)(掌握)
* A:案例演示* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1 + b2;
* 从两方面去回答这个题
* b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序 编译时是无法判断里面具体的值, 可能会超出byte取值范围
* byte类型的变量在进行运算的时候,会自动类型提升为int类型
* byte b4 = 3 + 4;
* 3和4都是常量,java有常量优化机制,就是在编译的的时候直接 把3和4的结果赋值给b4了
9_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); 输出helloa1
* System.out.println('a'+1+"hello"); 输出98hello
* D:+在有字符串参与中被称为字符串连接符
* System.out.println("5+5="+5+5);输出5+5=55
* System.out.println(5+5+"=5+5");输出5+5=10
10_Java语言基础(char数据类型)(掌握)
* A:char c = 97; 0到65535* B:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
* 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
* 所以,Java中的字符可以存储一个中文汉字
11_Java语言基础(算术运算符的基本用法)(掌握)
* A:什么是运算符* 就是对常量和变量进行操作的符号。
* B:运算符的分类
* 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符, 位运算符,三目(元)运算符
* C:算数运算符有哪些
* +,-,*,/,%,++,--
* D:注意事项:
* a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
* b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点 数类型
* c:/获取的是除法操作的商,%获取的是除法操作的余数
* %运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
* 任何一个正整数%2结果不是0就是1可以用来当作切换条件
12_Java语言基础(算术运算符++和--的用法)(掌握)
* A:++,--运算符的作用* 自加(++)自减(--)运算
* ++:自加。对原有的数据进行+1
* --:自减。对原有的数据进行-1
* B:案例演示
面试题
* byte b = 10;
* b++;(不会出错,自动强制转换)
* b = b + 1;(出错,损失精度)
* 问哪句会报错,为什么
13_Java语言基础(赋值运算符的基本用法)(掌握)
* A:赋值运算符有哪些* a:基本的赋值运算符:=
* 把=右边的数据赋值给左边。
* b:扩展的赋值运算符:+=,-=,*=,/=,%=
* += 把左边和右边做加法,然后赋值给左边。
14_Java语言基础(赋值运算符的面试题)(掌握)
* A:案例演示* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* short s=1;s = s+1;(出错,损失精度)
* short s=1;s+=1;(无措,自动加强制转换)
15_Java语言基础(关系运算符的基本用法及其注意事项)(掌握)
* A:关系运算符有哪些(比较运算符,条件运算符)* ==,!=,>,>=,<,<=
* 注意事项:
* 无论你的操作是简单还是复杂,结果是boolean类型。
* "=="不能写成"="。
16_Java语言基础_(逻辑运算符的基本用法)(掌握)
1.逻辑运算符有哪些① & | ^ !
逻辑与 & 遇false则false
逻辑或 | 遇true则true
逻辑异或 ^ 两边相同为false,两边不同为true
逻辑非!
② && ||
&&与&的区别
a:最终结果一样。
b:&&具有短路效果。左边是false,右边不执行。
||与|的区别
a:最终的结果是一样
b:||具有短路效果,左边为true,右边不执行
注意事项:
* a:逻辑运算符一般用于连接boolean类型的表达式或者值。
* b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
* 算术表达式:a + b
* 比较表达式:a == b(条件表达式)
17_Java语言基础_(位运算符的基本用法1)(了解)
位运算符有哪些& | ^ ~ >> >>> <<
&,|,^,~ 的用法
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反
18_Java语言基础_(位异或运算符的特点及面试题)(掌握)
位异或运算符的特点^的特点:一个数据对另一个数据位异或两次,该数本身不变。
面试题:
* 请自己实现两个整数变量的交换
19_Java语言基础_(位运算符的基本用法2及面试题)(了解)
* A:案例演示 >>,>>>,<<的用法:* <<:左移
左移,向左移动几位就是乘以2的几次幂
System.out.println(12 << 1); //24
System.out.println(12 << 2); //48
* >>:右移
右移,向右移动几位就是除以2的几次幂
System.out.println(12 >> 1);
System.out.println(12 >> 2);
* >>>:无符号右移 无论最高位是0还是1,左边补齐0
* 最有效率的算出2 * 8的结果
System.out.println(2 << 3);
20_Java语言基础_(三元运算符的基本用法)(掌握)
* A:三元运算符的格式* (关系表达式) ? 表达式1 : 表达式2;