Java基础笔记3(注释、标识符、数据类型、类型转换)

注释

单行注释

1
//单行注释

多行注释

1
2
3
4
/*
多行注释
多行注释
*/

文档注释

1
2
3
4
/**
* @Description Helloworld
* @Author PlanZ
*/

IDEA自定义注释样式

标识符

关键字

标识符

  • 所有的标识符以字母(A-Z或a-z),美元符($),下划线(_)开始,不可以以数字开头
  • 首字母之后可以是字母(A-Z或a-z),美元符($),下划线(_),数字(0-9)的任意组合
  • 不能使用关键字作为变量名或方法名
  • 大小写敏感

数据类型

强类型语言

要求变量的使用要严格符合规定,所有变量必须先定义后使用

弱类型语言

弱类型语言也称为弱类型定义语言。与强类型语言定义相反。

vb,php等就属于弱类型语言。

Java的数据类型分为两大类

基本类型(Primitive Type)

  • 数值类型
    • 整数类型
      • byte占1个字节范围:-128-127
      • short占2个字节范围:-32768-32767
      • int占4个字节范围:-2147483648-2147483647
      • long占8个字节范围:-9223372036854775808-9223372036854775807
    • 浮点类型
      • float占4个字节
      • double占8个字节
    • 字符类型
      • char占2个字节
  • boolean类型
    • boolean占1位,其值只有true和false

引用类型(Reference Type)

  • 接口
  • 数组

扩展

字节

  • 位(bit):计算机内部存储的最小单位,11001010是一个八位二进制数
  • 字节(byte):计算机数据处理基本单位,用B表示
  • 1B=8bit
  • 1KB=1024B
  • 1MB=1024KB
  • 1GB=1024MB
  • 1TB=1024GB
  • 1PB=1024TB
  • 1EB=1024PB

进制

  • 二进制0b
  • 八进制0
  • 十六进制0x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a1 = 0b10;
int a2 = 010;
int a3 = 10;
int a4 = 0x10;

System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
/*
2
8
10
16
*/

浮点数扩展

浮点数是有限的、离散的,存在舍入误差

避免使用浮点数进行比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float f = 0.1f;
double d = 1.0/10;

System.out.println(f);
System.out.println(d);
System.out.println(f==d);

/*
输出结果:
0.1
0.1
false
*/

float f1 = 123123123123123f;
float f2 = f1 + 1;
System.out.println(f1==f2);
/*
输出结果:
true
*/

银行业务使用BigDecimal(数学工具类)来表示

字符扩展

所有的字符本质还是数字

ASCALL码 1字节

Unicode编码 2字节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char c = 'a';
System.out.println(c);
System.out.println((int)c);
/*
输出结果:
a
97
原因:
a的ASCALL码对应97
*/

char c = '\u0061';
System.out.println(c);
/*
输出结果:
a
原因:
a的Unicode码对应0061
*/

转义字符

转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\\ 代表一个反斜线字符’’\’ 092
\’ 代表一个单引号(撇号)字符 039
\” 代表一个双引号字符 034
\? 代表一个问号 063
\0 空字符(NUL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\xhh 十六进制所代表的任意字符 十六进制

类型转换

Java是强类型语言,不同类型变量运算时需要类型转换。

运算时,不同类型的数据先转化为同一类型,然后进行运算。

1
byte,short,char -> int -> long -> float -> double

强制类型转换(从高到低)

1
2
3
4
5
//内存溢出
int i = 128;
byte b = (byte)i;
System.out.println(i); //128
System.out.println(b); //-128 byte范围是-128-127,将128赋给byte内存溢出

自动类型转换(从低到高)

1
2
3
4
int i = 128;
double d = i;
System.out.println(i); //128
System.out.println(d); //128.0

注意点

  1. 不能对布尔类型进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换为低容量时,要进行强制转换
  4. 转换时可能会出现内存溢出或精度问题