1 变量
1 他 她 我 你 某人 佚名 旺财 X-man x = 1
您好! 它
2 int age = 15;// 00000000 00000000 00000000 00001111
3 Java 中的变量
a Java是强类型语言,
b 变量必须声明,并且初始化以后使用
c 变量必须有明确的类型
d 变量不能重复定义
4 变量的作用域
a 在声明的地方开始,到块结束为止
b 离开变量的作用域结束,变量将回收。
2 二进制
1 计算机内部只有二进制数据!
int i = 5; char c = 'A';
‘A’-> 01000001
15 -> 00000000 00000000 00000000 00001111
2 二进制: 1111= 1*2^3+1*2^2+ 1*2^1 + 1*2^0
= 1*8 + 1*4 + 1*2 + 1*1
= 15(10)
01000001 = 1*64 + 1*1
= 65(10)
128 64 32 16 8 4 2 1
1 1 0 0 0 0 0 0 = 192(10)
3 十进制: 65 = 6*10 + 5*1
= 6*10^1 + 5*10^0
256 128 64 32 16 8 4 2 1
95(10)= 0 1 0 1 1 1 1 1 (2)
4 16进制
0 1 2 3 4 5 6 7 8 9 a b c d e f
10 11 12 13
41(16) = 4 * 16 +1 = 65(10)
4 1
0100 0001(2)
* 将16进制作为2进制的简写形式.
4e2d(16)=0100 1110 0010 1101(2)
5 八进制是二进制的简写,3位对应转换
练习:
243(10)-> 1111 0011(2) -> f3(16)
Java的数据类型
1 Java数据分为基本类型和引用类型.
2 基本类型分为八种:
byte short int long float
double char boolean
a 整数类型 byte short int long
整数都是有符号整数
byte 8bit -128 ~ +127
short 16bit -32768 ~ 32767
int 32bit -2G ~ 2G-1 -2^31 ~ 2^31-1
long 64bit -2^63 ~ 2^63-1
建议使用int, 很少使用short,
使用int要注意取值范围, int 的值不大!
直接量-字面量: 直接给出的常量值如: 1
a 整数的直接量的类型默认是int类型
b 以L,l为结尾的字面量是long类型
1024
1024L
c 可以使用整数直接量给byte,short类型赋值
但是不要超过byte和short的范围.
2 浮点数: 就是小数, float, double
34642323.44 = 3.464232344 * 10^7
尾数 指数
10001000.(2)
1.0001000 * 2^111(2)
尾数 指数
float 32位
0 00000111 10001000000000000000000
符号位 指数 尾数
int a = 0x7fffffff;
float f = a;
double
1 符号位
11 指数
52 尾数
a double 是64位, float 32位
double比float精确
b 默认的浮点数字面量是: double类型的
字面量后缀: d/D f/F
double d = 1d;//1.0
1 1L 1D 1F
c 只使用double计算浮点数,float类型基本不用!
浮点数不能给精确运算
int:10001000 -> float:1.0001000*2^111
0 00000111 10001000 00000000 0000000
3 字符类型:char, 字符类型是一个16位无符号整数!
a 字符类型的值是对应字符的编码, 是unicode
编码. Java支持国际化.
英文部分的值与ascII编码一致.
char是定长编码, 所以的字符都是16位.
'A' -> 0x0041
'中'-> 0x4e2d
在编码中: '0'~'9' , 'a'~'z', 'A'~'Z'
都是连续编码的!
'0'=='\u0000' '\u0000'==0
b 最小值:0, 最大值:65535 = 2^16-1
c 字符字面量使用单引号为定界符号:'中'
字面量也是整数常量!
特殊字符采用转义字符表示:
如: '\n' '\t' '\\' '\b' '\r'
'\'' '\"' '\u4e2d'
char c = '\\';
4布尔类型: boolean
字面量: true false
数据类型转换:
1 自动类型转换(隐式类型转换)
从小类型到大类型, 自动完成
如: int n = 'A';
long l = 'A';
char ->
byte -> short -> int -> long -> float -> double
2 强制类型转换, 从大类型到小类型需要强制转换
强制类型转换有风险, 会造成精度损失或者溢出
long l = 1024L*1024*1024*4;//0x100000000
int i = (int)l;//0
double pi = 3.1415926535897932384;
float f = (float)pi;
Java中的方法
1 方法就是函数: y=f(x)=3x+6;
2 方法的语法
(修饰词)(返回值类型)(方法名)(参数列表){
//方法体
}
3 方法需要有return语句, 返回和返回值类型
兼容的数据
4 方法的参数和方法内部的变量 都是局部变量,
这些变量作用域只在方法内部!
5 实参: 方法调用的参数
形参: 方法的参数定义,是临时变量.