1. Java中的常量(掌握)
概念:
值在程序运行过程中不发生改变的量。
整数常量
比如: 10 -20
实数常量 -- 浮点数常量
比如: 1.5 12.8
字符常量:
比如: 'a' 'A' '中'
字符串常量:
比如: "helloworld"
布尔常量:
只有两个值:true和false
空常量:
null (空引用)
自定义常量:
final关键字修饰
注意:
常量可以被输出语句直接输出.
2. 进制(理解)
定义:
进制也就是进位制,是人们规定的一种进位方法。
对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。
十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
进制表示:
1) 二进制 由0,1组成。JDK7以后的新特性,加上前缀0b就可以写二进制数。
2) 八进制 由0-7组成。JDK7以后的新特性,加上前缀0就可以写八进制数。
3) 十进制 由0-9组成。默认就是十进制。
4) 十六进制 由0-9,A-F(不区分大小写)组成,JDK7以后的新特性,加上前缀0x就可以写十六进制数。
计算机中的数据存储和传输单位:
在计算机内部,数据都是以二进制的形式存储和运算的。
1) 计算机处理数据的最小单位: bit(位)
二进制数据中的一个位(bit)简写为b,音译为比特,是计算机存储数据的最小单位。
一个二进制位只能表示0或1两种状态,要表示更多的信息,就要把多个位组合成一个整体,一般以8位二进制组成一个基本单位。
2) 计算机处理数据的基本单位: Byte(字节)
字节是计算机数据处理的最基本单位,并主要以字节为单位解释信息。
字节(Byte)简记为B,规定一个字节为8位,即1B=8bit。每个字节由8个二进制位组成。
3、任意进制与十进制之间的转换
对于一个数,有如下定义:
系数:就是每一位上的数据。
基数:X进制,基数就是X。
权:从数的最右边从0开始编号,对应位上的编号即为该位的权。
那么其他进制到十进制的转换结果为:
系数乘以基数的权次幂, 结果相加即可。
十进制到其他进制的转换:
除以基数,直到商为0,把余数反转。
十进制与二进制之间转换 -- 8421码
128 64 32 16 8 4 2 1
二进制与八进制之间 -- 从右边开始,三位一组,求其十进制,结果连起来即可。
二进制与十六进制之间 -- 从右边开始,四位一组,求其十进制,结果连起来即可。
4、有符号数据的表示形式
最高位是符号位,其他位为数值位。“0”表示正数,“1”表示负数。
正数:
原码、反码、补码都一样。
负数:
反码:是原码的符号位不变,数值位取反。
补码:反码 + 1。
计算机中都是以补码的形式存储和运算数据的。
补码的符号可以作为数值参与运算,且计算完后,不需要根据符号位进行调整。另外,0的补码表示方法也是唯一的,即00000000。
5、变量(掌握)
允许其值在数据类型规定的范围内,可以改变。
格式:
数据类型 变量名 = 初始化值;
例如:int applePrice = 10;
变形格式:
数据类型 变量名;
变量名 = 初始化值;
注意:只要在使用之前初始化即可。
6、数据类型
引用数据类型
基本数据类型(4类8种)
byte 1个字节 -128 ~ 127 (byte常量池)
short 2个字节 -2^15 ~ 2^15 - 1
int 4个字节 -2^31 ~ 2^31 - 1
long 8个字节 -2^63 ~ 2^63 - 1
float 4个字节 -3.403E38 ~ 3.403E38
double 8个字节 -1.798E308 ~ 1.798E308
char 2个字节
boolean
true
false
注意:
整型默认是int。
如果想定义byte,short类型,保证数据在byte,short范围内即可。
如果想定义long类型,必须在后面加L。
浮点型默认是double
如果想定义float类型,需要在后面加F
7、基本数据类型的转换
隐式转换 -- 小到大
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算。
强制转换 -- 大到小
格式:
(转换后的数据类型)要转换的变量或者值。
例如:
b = (byte)(a + b);
编译期:只检查语法。
结论:
1)、boolean类型不能与其他类型进行转换。
2)、byte、short、char参与运算都会自动提升成int。
3)、取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算。
byte、short、char --> int --> long --> float --> double
字符串:
+ 可以作为字符串的连接符。在遇到字符串之前,数据该怎么运算就怎么运算,
遇到字符串,全部拼接成字符串。
字符char:
ASCII -- 美国标准信息交换码。
记住几个常用的字符对应的ASCII编码。
'a' -- 97
'A' -- 65
'0' -- 48
char取值范围: 0 - 65535
一个字符是可以表示一个中文的。
因为Java语言采用的是Unicode编码。Unicode编码中的每个字符占用两个字节。中文也是占的两个字节。
所以,Java中的字符可以存储一个中文汉字。
8、运算符
算术运算符:
++、--
结论:
单独应用:后置++和前置++没有区别,就是将变量的值增加1.
参与运算:
前置++,先加后用
后置++,先用后加
原理:
前置++,就是将a的值增1.
后置++,操作时会先拿到a的值,然后拷贝一个副本(临时量),然后将a的值自增1,将副本的值返回。 // a = a++;
案例:
byte b = 10;
b++; // 隐含着一个强制类型转换 -- b = (byte) (b + 1);
赋值运算符
=
+=
-=
*=
/=
%=
面试题:
short s=1;
s = s+1; // 可能损失精度
short s=1;
s+=1; // 隐含着一个强制类型转换 -- s = (short) (s + 1);
开发中:尽量避免使用int以下的数据类型来定义变量。
int age = 20; // 定义年龄
关系运算符:
== != > < >= <=
|