一、Java变量
- 在Java中未知数叫做变量,可能是整数也可能是小数。
- Java是强类型语言,要求未知数前面一定有具体的类型(是一个整数、小数或者一个字符…),因为这些未知数都是需要占用内存的。
- 不同类型的不能直接赋值。
- 变量的声明:
- 必须包含类型、变量名;
- 变量没有声明,不能直接使用;
- 不能重复定义
- 变量的初始化
- 在变量声明的同时 直接初始化 int x = 3;
- 先声明后初始化 int x; x = 3;
- 变量的命名规则:
- Java中的变量可以用数字、字母、下划线、$、中文(不建议)
- 数字不能开头
- 不能使用关键字
- Java约定俗称的命名方式:驼峰式命名法
二、Java基本数据类型
Java八种基本数据类型:
-
整数(4种):
- 按占内存空间的大小来分:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
- 直接量:整数默认直接量是int类型
- 整数的最大量Integer.MAX_VALUE = 2147483647;如果存的数过大可能会报错,也可能会溢出
- 整数做除法,结果还是整数,并不能四舍五入
-
小数(2种):double、float
-
字符类型:char
-
布尔类型:boolean
byte short int long float double char boolean 存储空间 1 2 4 8 4 8 2
public class Demo_03_基本数据类型 {
public static void main(String[] args) {
byte b1 = 127;//-127~127
short s1 = 11231;//short类型不常用
int i1 = 112212321;//
long l1 = 11221231L;//在long类型中的最后加L
i1 = Integer.MAX_VALUE;//整数中的最大值=2147483647
System.out.println(i1);
i1 = Integer.MAX_VALUE + 100;//存的数过大可能会报错,也可能会溢出
System.out.println(i1);//-2147483549,结果输出错误
//字符串拼接
System.out.println(1+2+"3");//输出:33 ;1和2先做加法,再做拼接
System.out.println("1"+2+3);//输出:123;1和2先做字符串拼接,拼完之后12变成了一个字符串,再和3做拼接
}
}
三、强制类型转换
- 强制类型转换:(要转成的类型)变量名
- 小类型往大类型的转,不用强制类型转换,可以直接转
- 从小到大排列:byte < short = char < int < long < float < double
public class Demo_05_基本数据类型转换 {
public static void main(String[] args) {
int a = 110;
byte b = (byte)a;//Type mismatch: cannot convert from int to byte
//强制转换可能会丢失精度
byte b1 = 4;
byte b2 = 5;
byte b3 = (byte)(b1 + b2);
}
}
四、Java整数
Java中的整数:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
public class Demo_01_整数 {
public static void main(String[] args) {
byte b1 = 127;//-127~127
short s1 = 11231;//short类型不常用
int i1 = 112212321;//
long l1 = 11221231L;//在long类型中的最后加L
int a = 0100;//前面开头为0,则是八进制
System.out.println("八进制的100,值为"+a);
int b = 0x100;//0x或者0X开头的为十六进制
System.out.println("十六进制的100,值为"+b);
int c = 0b100;//0b或者0B开头的表示二进制
System.out.println("二进制的100,值为"+c);
}
}
五、Java浮点数
-
Java中的浮点数:
- float(4字节、单精度)、double(8字节、双精度)
-
浮点数的直接量:
-
double;
-
浮点数可以存整数;
-
可以使用科学计数法进行赋值:3.14e2 -> 3.14*10^2
-
-
整数做除法,结果还是整数,结果并不会四舍五入;浮点数做除法,结果还是浮点数;
public class Demo_02_浮点数 {
public static void main(String[] args) {
double d1 = 3.14;//double可以装整数
d1 = 3;
d1 = .3;//0可以省略
d1 = 3.14e2;//表示3.14*10^2
System.out.println(d1);
int a = 123_456;//jdk-7非常规
float f1 = 3.14F;//浮点数float后面加f或者F
System.out.println("----除法测试----");
System.out.println("整数做除法:=" + 7/4);
System.out.println("浮点数做除法:" + 7.0/4);
System.out.println("----浮点数会丢失精度----");
System.out.println(1.1-1.0);
//BigDecimal
}
}
六、字符类型(char)
- 语法格式:char a = ‘x’;一个字符只能存一个字符
- char其实是一个无符号整数,在底层整数和字符进行对应
- 97 ->a ;65 ->A ;48 ->0 ;
- 乱码的原因是因为字符集不匹配
- 字符集
- ASCII码:只能存英文字母等少量的字符
- ISO8859-1:
- GBK、GB2312…等等支持中文
- unicode字符集:全世界通用,其中包括utf-8存储方式,utf-8不是字符集是存储方式
- 特殊字符
- \ 转义字符
- \t 缩进
- \n 换行
- \’ ’
- \r 回车
ASCII对照表
ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 |
---|---|---|---|---|---|---|---|
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | , | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | \ | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ` |
31 | US | 63 | ? | 95 | _ | 127 | DEL |
public class Demo_03_char {
public static void main(String[] args) {
char c1 = 'a';
c1 = '中';
System.out.println(c1);
c1 = 97;
System.out.println("底层a对应的是:"+c1);
System.out.println("-----特殊字符----");
System.out.println("\t");//tab缩进
c1 = '\u535A';//这是一个Unicode值
}
}
七、布尔类型(boolean)
在Java中布尔类型只有两个值:true、false(真值和假值)。布尔类型主要在逻辑判断方面使用。
public class Demo_04_boolean {
public static void main(String[] args) {
int a = 134;
boolean b1 = true;//真
b1 = false;//假
int x = 9;
int y = 10;
b1 = x > y;
System.out.println("x 是否大于 y :" + b1);//result:( x 是否大于 y :false)
}
}