比较喜欢用demo来讲解。
变量:
1
2
3
4
5
6
7
8
|
public
static
void
main(String[] args) {
int
age;
//变量声明
age =
16
;
//变量的初始化,第一次赋值
age =
15
;
//变量的赋值
System.out.println(age);
//15, 访问变量
int
score =
100
;
//变量声明初始化
System.out.println(score);
}
|
这是关于变量的有些知识点,变量也就那些东西注意。就是声明,赋值。
二进制基础:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public
static
void
main(String[] args) {
int
i =
15
;
System.out.println(Integer.toBinaryString(i));
i =
'A'
;
System.out.println(Integer.toBinaryString(i));
i =
0xff
;
//0x 是16进制的开头
System.out.println(Integer.toBinaryString(i));
i =
'李'
;
System.out.println(Integer.toBinaryString(i));
//5(1024*1024) Byte
//1 Byte = 8bit; 两位16进制表示
//5M = 5* 1024 *1024 *2 个16进制字符
}
|
在这里,有点可以重新记一下。
1.计算机内部只有二进制,包括字符数据等。
2.任何,'A','李' 都可以转换为二进制。值得注意的是,
Integer.toBinaryString(); 这个方法能将我们一切用的转成计算机里面用的二进制。
3.一般我们习惯的10进制数字 传到 计算机 ,计算机通过 转成二进制 进行传输。
类同的16进制,10进制:
写几个注意点:
16进制 是 2进制的简写。 用0x开头
转换的方法:记住各进制常用的权就ok了。下面罗列下,举个例子。
2 进制:1 2 4 8 16 32 64 128
16进制:1 16 256
例子:1111(2)=1*1+1*2+1*4+1*8=15(10)
1000001(2)=64 +1 =65(10)
0x101(16)=256+1=257
java 基础类型:
四大类型:
先整数:short一般不用我不写了。
byte 8 bit -128 ~ 127
int 32 bit -2G~2G-1
long 64bit -2^63~2^63-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
class
IntegerDemo {
public
static
void
main(String[] args) {
short
age =
120
;
int
age1 =
120
;
//age age1 在java底层中内存 都是int类型.short 其实就是int
int
size =
1024
*
1024
*
1024
*
2
;
System.out.println(size);
//-2147483648 超了int 范围
//直接量
long
l =
1
;
//直接量,字面量
//l = 20000000000;//错
//System.out.println(l);
l = 2200000000L ;
//以L l 结尾的数字 为long 类型
int
a =
127
;
//byte b = a;//变量不能给小类型赋值
long
c = a;
}
}
|
上面demo中:
1.在java底层中内存 都是int类型.short 其实就是int
2.超了int 范围,会显示负值
3.以L l 结尾的数字 为long 类型
4.重要的一点:就是 变量不能给小类型赋值
在实际项目中也有些考虑的是,类似,QQ号,淘宝物品编号。。。想想应该用 long 或者 long long
再讲浮点:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public
class
FloatDemo {
public
static
void
main(String[] args) {
int
a =
0x7fffffff
;
int
b =
0x7ffffff0
;
float
af = a;
float
bf = b;
System.out.println(af);
//计算机默认输出为10进制。2.14748365E9 10^9
System.out.println(bf);
System.out.println(a);
//af a 不同 因为 二进制取舍
System.out.println(b);
double
da = a;
double
db = b;
System.out.println(da);
System.out.println(db);
double
d =
2.5
;
// double
float
f =
2
.5F;
// F表示浮点类型的字面量
double
c = 3D;
// f = 2.5 // 错
}
}
|
上面让我们学习了,
1.浮点数就是小数。
2.float f = 2.5//是错误的demo,,必须是2.5F
3.由于精度不同,有些精确的时候,float 会不正确。所以一般用double
4.写下一点计数法的知识:
10001000(2)
1000.1000*2^100(2)
1.0001000*2^111(2)
上面是等价的。
5.double a = 3D;// D 表示
然后是char
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
public
class
CharDemo {
public
static
void
main(String[] args) {
int
i =
'A'
;
System.out.println(i);
// 65 A 的Unicode
char
c =
'中'
;
i = c;
System.out.println(i);
// 20013
System.out.println(c);
// 中
// 结论字符是一个数字,是字符的Unicode编码值
// println() 方法根据参数类型
// 采用不同的输出方式,整数输出整数,字符输出字符
System.out.println((
int
)
'B'
);
// 66
int
n =
'B'
-
'A'
+
10
;
n =
'C'
-
'A'
+
10
;
n =
'A'
-
'D'
+
10
;
char
ch =
'E'
;
int
num = ch -
'A'
+
10
;
// 'E' 到 14
System.out.println(num);
ch =
'5'
;
num = ch -
'1'
;
System.out.println(num);
// '5' - '1' 转到 4
num = ch;
System.out.println(num);
//53
char
chr =
'A'
+
3
;
System.out.println(chr);
//D
Random r =
new
Random();
int
x = r.nextInt(
26
);
// 随机数x的范围 属于[0,26)
chr = (
char
)(
'A'
+ x);
System.out.println(chr);
// A~Z
char
cx =
0
;
char
cy =
'0'
;
System.out.println(cx);
System.out.println(cy);
char
xx =
'\''
;
xx=
'\\'
;
xx=
'\u0041'
;
xx=
'\u0000'
;
System.out.println(
0
==
'\u0000'
);
System.out.println(
'0'
==
'\u0000'
);
//false
// \n \r \t \' \" \\
System.out.println(
"a\tmd\nnd"
);
System.out.println(
"OK\u0000123"
);
}
}
|
我就罗列下上面demo的重要点:
1.最重要:采用不同的输出方式,整数输出整数,字符输出字符
2. println() 方法根据参数类型
3.'\'表示转译
byte-short-int-long-float-double
从大到小要强转,强转有风险,会造成精度损失或溢出。