A:什么是常量
* 在程序执行的过程中其值不可以发生改变
-
B:Java中常量的分类
- 字面值常量
- 自定义常量(面向对象部分讲)
-
C:字面值常量的分类
- 字符串常量 用双引号括起来的内容
- 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号,有且只能有一个字符,但是不能为空.‘中’
- 整数常量 所有整数
- 小数常量 所有小数
- 布尔常量 较为特殊,只有true和false
- 空常量 null(数组部分讲解),不能直接使用.
-
D:案例演示
-
用输出语句输出各种常量。null不演示
-
class Demo1_Constant { //constant 常量
public static void main(String[] args) { //这是主方法,是程序的入口。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);
}
}
-
八进制:三位二进制代表一位八进制,所以八进制最大值为7。
十六进制:四位二进制代表一位十六进制,所以十六进制的最大值为15。
特点:进制越大,表现形式越短。
A:二进制的数据表现形式
* 由0,1组成。以0(零)b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
- B:八进制的数据表现形式
- 由0,1,…7组成。以0(零)开头
- C:十进制的数据表现形式
- 由0,1,…9组成。整数默认是十进制的
- D:十六进制的数据表现形式
- 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0(零)x开头
- E:案例演示
- 输出不同进制表现100的数据。
- 0b100
- 0100
- 100
- 0x100
为什么要学习原码反码补码?
* 后面要学习强制类型转换,如果不知道有原反补会看不懂结果
- B:有符号数据表示法的几种方式
- 原码
- 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
- 通过一个字节,也就是8个二进制位表示表示+7和-7
- +7 0(符号位) 0000111
- -7 1(符号位) 0000111(原码)
-
1 1111000(反码)
-
1 1111001(补码)
- 反码
- 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
- 补码
- 正数的补码与其原码相同;负数的补码是在其反码的末位加1。
- 整数的原反补都一样。
- 在计算机中运算都是使用补码运算。
- 原码
A:什么是变量
* 在程序执行的过程中,在某个范围内其值可以发生改变的量
- B:变量的定义格式
- 数据类型 变量名 = 变量值;
- C:为什么要定义变量
- 用来不断的存放同一类型的常量,并可以重复使用
为什么有数据类型
* Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
- B:Java中数据类型的分类
- 基本数据类型
- 引用数据类型
- 面向对象部分讲解
- C:基本数据类型分类(4类8种)
- 整数型
- byte 占一个字节 -128到127 一个字节也就是8个二进制位。
- short 占两个字 -215~215-1
- int 占四个字节 -231~231-1
- long 占八个字节 -263~263-1
- 浮点型
- float 占四个字节 -3.403E38~3.403E38 单精度
- double 占八个字节-1.798E308~1.798E308 双精度
- 字符型
- char 占两个字节 0~65535
- 布尔型
- boolean
- boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
Java中的默认转换规则
- boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
- boolean
- 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
强制转换问题 - int a = 10;
- byte b = 20;
- b = a + b;
- 整数型
- B:强制转换的格式
- b = (byte)(a + b);
- C:强制转换的注意事项
如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* 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了
字符和字符串参与运算
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");
Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
* 可以。因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节
* 所以,Java中的字符可以存储一个中文汉字
A:什么是运算符
* 就是对常量和变量进行操作的符号。
- B:运算符的分类
- 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
- C:算数运算符有哪些
- +,-,*,/,%,++,–
- D:注意事项:
- a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
- b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
- c:/获取的是除法操作的商,%获取的是除法操作的余数
- %运算符
- 当左边的绝对值小于右边绝对值时,结果是左边
- 当左边的绝对值等于右边或是右边的倍数时,结果是0
- 当左边的绝对值大于右边绝对值时,结果是余数
- %运算符结果的符号只和左边有关系,与右边无关
- 任何一个正整数%2结果不是0就是1可以用来当作切换条件
算术运算符++和–的用法
- A:++,–运算符的作用
- 自加(++)自减(–)运算
- ++:自加。对原有的数据进行+1
- –:自减。对原有的数据进行-1
- B:案例演示
- a:单独使用:
- 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
- b:参与运算使用:
- 放在操作数的前面,先自增或者自减,然后再参与运算。
- 放在操作数的后面,先参与运算,再自增或者自减。
- a:单独使用:
算术运算符++和–的练习
- A:案例演示
- 请分别计算出a,b,c的值?
-
int a = 10; int b = 10; int c = 10; a = b++; a=10,b=11; c = --a; c=9,a=9; b = ++a; b=10;a=10; a = c--; a=9,c=8; a=9,b=10,c=8
- B:案例演示
-
请分别计算出x,y的值?
int x = 4; int y = (x++)+(++x)+(x*10); a = x++; a=4,x=5; b=++x; b=6,x=6; c=x*10; x=60; y=70
-
- C:
- byte b = 10;
- b++;
- b = b + 1; //因为b为byte类型,b+1运算结果为int类型。
- 问哪句会报错,为什么
赋值运算符
- A:赋值运算符有哪些
-
a:基本的赋值运算符:=
- 把=右边的数据赋值给左边。
-
b:扩展的赋值运算符:+=,-=,*=,/=,%=
- += 把左边和右边做加法,然后赋值给左边。
-
赋值运算符
- A:案例演示
- 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
- short s=1;s = s+1; 有问题,S+1过程中自动提升s为int型
- short s=1;s+=1;
关系运算符的基本用法及其注意事项
- A:关系运算符有哪些(比较运算符,条件运算符)
- ==,!=,>,>=,<,<=
- 注意事项:
-
无论你的操作是简单还是复杂,结果是boolean类型。
-
"==“不能写成”="。
-