文章目录
一 数据类型
1.整形
整形有正整数,零,负整数,含义与数字中的含义相同。其中,在Java语言中的证书有三种进制的表示形式。
- 十进制
- 八进制
- 十六进制
Java7语言中定义了四种表示证书的类型:字节型(byte),短整型(short),整形(int),长整形(long)。其中每种整型的数据都是带符号位的。
类型 | 数据位 | 范围 |
---|---|---|
byte(字节型) | 8 | -128~127,即-2^7 ~ 2^7-1 |
short(短整型) | 16 | -32768~32767,即-2^15 ~2^15-1 |
int(整型) | 32 | -2147483648~2147483647,即-2^31 ~ 2^31-1 |
long(长整型) | 64 | -9223372036854775808~9223372036854775807.即-2^63 ~ 2^63-1 |
一个整数的隐含为整型(int型)。当要将一个整数强制表示为长整数,需要在后面加上字母l或L。所以声明long型变量的值超过int型的取值范围时,如果数的后面不加l或L,系统会自动认为是int类型而出错。
2.浮点型
Java语言中有两种浮点数表示方式。
- 标准计数法,如:4.38,3.14等
- 科学计数法,如:1.48E+2等
Java语言中的浮点型有单精度浮点(float)和双精度浮点(double)两种类型。
类型 | 数据位 | 范围 |
---|---|---|
float(单精度浮点型) | 32 | 负数范围:-3.4028235E+38 ~ -1.4E-45 正数范围:-1.4E-45 ~ 3.4028235E+38 |
double(双精度浮点型) | 64 | 负数范围:1.7976931348623157E+308 ~ -4.9E-324 正数范围:4.9E-324 ~ 1.7976931348623157E+308 |
一个浮点数隐含为double型,若是在一个浮点数后加字母f或F,将其强制转换为float型。故如果声明float类型变量,数字后面不加上f或F,则系统会认为其实double类型,从而出错。double类型占用8个字节,其中有效数字最长为15位,之所以double叫double,因为它的精度是float类型的精度的2倍,所以成为double,双精度类型。
3.布尔型
布尔类型也称为逻辑类型,用来表示逻辑值。它只有true
和false
两种取值,在其中,·true·代表着真,而false
代表着假,其中true
和false
均不能够转换为数字表示形式。
所有的关系运算的返回值都是布尔类型的值。
4.字符型
字符型(char
)用来存储耽搁字符的,在Java语言之中,字符采用的是Unicode字符集编码方案,它占用两个字节,是一个16位无符号的整数,一个有65535个。其中Unicode字符是用"\u0000"到"\uFFFF"的之间的十六进制数值来表示的。其中Unicode字符表的前128个字符刚好是ASCII表。因为它采用了Unicode编码,故与其他语言相比较,Java的语言处理多语种的能力大大加强。
注意:
- 字符型数据只可以表示单个字符,且表示的时候要使用单引号。
5.归纳表
Java基本数据类型
数据类型 | 关键字 | 占用字节数 | 默认数值 | 取值范围 |
---|---|---|---|---|
字节型 | byte | 1 | 0 | -128 ~ 127 |
布尔型 | boolean | 1 | false | true,false |
字符型 | char | 2 | ‘\u0000’ | ‘\u0000’~’\uffff’ |
短整型 | short | 2 | 0 | -32768~32767,即-2^15 ~2^15-1 |
整型 | int | 4 | 0 | -2147483648~2147483647,即-2^31 ~ 2^31-1 |
长整型 | long | 8 | 0L | -9223372036854775808~9223372036854775807.即-2^63 ~ 2^63-1 |
单精度浮点型 | float | 4 | 0.0F | 负数范围:-3.4028235E+38 ~ -1.4E-45 正数范围:-1.4E-45 ~ 3.4028235E+38 |
双精度浮点型 | double | 8 | 0.0D | 负数范围:1.7976931348623157E+308 ~ -4.9E-324 正数范围:4.9E-324 ~ 1.7976931348623157E+308 |
数值型常量的最大值最小值代码
数据类型 | 所在的类 | 最小值的代码 | 最大值的代码 |
---|---|---|---|
byte | java.lang.Byte | Byte.MIN_VALUE | Byte.MAX_VALUE |
short | java.lang.Short | Short.MIN_VALUE | Short.MAX_VALUE |
int | java.lang.Integer | Integer.MIN_VALUE | Integer.MAX_VALUE |
long | java.lang.Long | Long.MIN_VALUE | Long.MAX_VALUE |
float | java.lang.Float | Float.MIN_VALUE | Float.MAX_VALUE |
double | java.lang.Double | Double.MIN_VALUE | Double.MAX_VALUE |
注:该表之中的最大值和最小值的常分别是正数范围的最小值和最大值!加一个小负号,即可取到负数的最小值和最大值了!
二 关键字与标识符
1.关键字
Java语言中赋予了特殊含义的一些单词。
abstract | assert | boolean | break | byte | case |
---|---|---|---|---|---|
catch | char | class | const | continue | default |
do | double | else | enum | extends | final |
finally | float | for | if | goto | implements |
import | instanceof | int | interface | long | native |
new | package | private | protected | public | return |
short | static | strictfp | super | switch | synchronized |
this | throw | throws | transient | try | void |
volatile | while | _(下划线) |
注意:Java有一共51个关键字,其中enum是Java 5新增的关键字。_下划线是Java 9中新增保留关键字。
2.标识符
标识符就是用来给程序中变量、类、方法命名的符号。
规定:
- 标识符只可以由字母、数字、下划线(_)和美元符号($)组成,其中数字不能够作为开头
- 标识符不能够是Java的关键字和保留字,但可以包含。
3.命名习惯(非强制)
- 类名、接口名:所有单词字母大写,驼峰式命名(Camel Case),例如:XxxYyyZzz。
- 变量名、函数名:首字母小写,其他单词字母大写,驼峰式命名,例如:xxxYyyZzz。
- 常量名:所有字母都大写,其中单词之间使用下划线分割,例如:XXX_YYY_ZZZ。
- 包名:全部小写,例如:xxx.yyy.zzz。
Java之中支持标识符为中文,但是最好使用英文,做到“见名知意”。
4.常量
- 整型常量
- 浮点型常量
- 布尔型常量
- 字符型常量
转义符 | 代表的意义 |
---|---|
\a | 响铃 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 一个制表符 |
\\ | 反斜杠字符 |
\’ | 单引号字符 |
\" | 双引号字符 |
uxxxx | 1~4位十六进制数代表的Unicode字符 |
\ddd | 1~3位八进制数代表的Unicode字符。 |
- 字符串常量
其中字符串常量使用双引号括起来的一串若干个字符,可以是0个。字符串之中的开始和结束的双引号一定在源代码的同一行上。
常量的声明:
常量的声明形式基本与变量的声明形式一样,只需要多一个关键字final
。
例如:
final int MAX = 10;
final float PI = 3.14f;
在Java之中,建议常量的标识符全部使用大写字母来表示。
使用常量的好处:
- 增加可读性。
- 增强可维护性,程序多处使用常量的时候,当进行修改的时候,只需要修改常量的声明语句即可!
5.变量
在程序之中固定不变的量为常量,但是在程序之中不可能全部都是常量,肯定会有大量需要经常变化的数据。
1)变量的声明
声明格式: 类型 变量名 (= 初值);
例如:
int a;
int a = 10;
int i, j, k;
int i, j, k = 10;
2)变量的初始化
声明变量的时候同时对变量进行初始化操作,即为赋初值。
例如
int i = 10;
boolean flag = true;
3)变量的赋值
当一个变量没有赋初值,亦或者对变量重新赋值时,就需要使用赋值语句。
赋值语言格式:变量名 = 值;
例如:
int i = 10;
i = 1;
boolean j;
j = true;
6.数据类型转换
Java是一种强语言类型的语言,其数据类型在定义的时候就已经确定了,所以,不能随意转换成为其他的数据类型,但是在Java语言之中容许用户有限度的语言进行做类型转换处理,这便是所谓的数据类型转换,简称类型转换。
1)自动类型转换。
要求:
- 转换前的数据类型与转换后的数据类型要兼容。
- 转换后的数据类型表示的范围要比转换之前的数据类型的表示范围要大。
byte -> short -> char -> int -> long -> float -> double
低--------------------------------------------------->高
例如
public class demo{
public static void main(String[] args){
int a = 138;
float b = 250.0f;
System.out.println("a+b=" + (a+b));
}
}
//输出的结果是:a+b=388.0
2)强制类型转换
如果将一个数据范围大的数据类型的数据转换为一个数据范围小的数据类型的数据,则需要进行强制转换。
强制转换的格式:(将转换的数据类型)变量名
注意:强制类型转换可能会丢失数据精度。一般来说,不推荐较长的数据向较短的数据进行转换。
例如
public class demo{
public static void main(String[] args){
float num1 = 13.8f;
int num2 = (int) num1;
System.out.println(num2);
}
}
//输出的结果是13.
3)字符串型数据转换为数值型数据
数字字符串型数据是可以转换为数值类型的。
转换的方法 | 说明 |
---|---|
Byte.parseByte(String s) | 将数字字符串转换为字节型数据 |
Short.parseByte(String s) | 将数字字符串转换为短整型数据 |
Integer.parseByte(String s) | 将数字字符串转换为整型数据 |
Long.parseByte(String s) | 将数字字符串转换为长整型数据 |
Float.parseByte(String s) | 将数字字符串转换为浮点型数据 |
Double.parseByte(String s) | 将数字字符串转换为双精度型数据 |
Boolean.parseByte(String s) | 将数字字符串转换为布尔型数据 |
4)数值型数据转换成字符串
数值型数据非常容易转换为字符串,因为在Java语言之中,字符串可以使用“+”进行操作,且如果其中一个操作的数据不是字符串的话,会在连接之前将其转换为字符串的,所以可以使用加号来实现自动的转换。
例如:
int demo = 1234;
String demoString = demo + "";
7.从键盘输入数据
方法1:
import java.io.*;
public class demo{
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("请输入字符串:");
str = buf.readLine();//通过readLine()方法读入字符串,存入str之中。需要处理IOException异常
System.out.println("输入的字符串:" + str);
}
}
方法2:利用Scanner类
package com.azwcl.demo;
import java.util.*;
public class demo{
public static void main(String[] args){
System.out.println("请输入一个数字:");
Scanner in = new Scanner(System.in);
double num;
num = in.nextDouble();//有nextInt(),nextFloat()等等方法。
System.out.println("输入的数字是:"+num);
}
}
8.运算符与表达式
- 算数运算符
运算符 | 功能 |
---|---|
+ | 加运算 |
- | 减运算 |
* | 乘运算 |
/ | 除运算 |
% | 取余运算 |
++ | 自增1运算 |
– | 自减1运算 |
注意:
a. 两个整数做除法运算的时候,只是会保留整数。
b. 自增符号在操作数前面与在操作数后面有区别。
- 关系运算符
运算符 | 功能 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
== | 等于 |
!= | 不等于 |
注意:不可以在两个浮点数之间进行“==”的比较。
- 逻辑运算符
运算符 | 功能 | 规则 |
---|---|---|
& | 逻辑与 | 两个操作数均为true 的时候,结果才为true |
| | 逻辑或 | 两个操作数均为false 的时候,结果才为false |
! | 逻辑非 | 将操作数取反 |
^ | 异或 | 两个操作数同真或同假时,结果才为true |
&& | 简洁与 | 两个操作数均为true 的时候,结果才为true |
|| | 简洁或 | 两个操作数均为false 的时候,结果才为false |
注意:简洁与或简洁或均有短路特性。
- 位运算符
运算符 | 功能 | 规则 |
---|---|---|
~ | 按位取反 | 将a按位取反 |
& | 按位与 | 将两个操作数按比特位相与 |
| | 按位或 | 将两个操作数按比特位相或 |
^ | 按位异或 | 将两个操作数按比特位相异或 |
>> | 右移 | 将操作数各比特位均向右移右边操作数的位数 |
<< | 左移 | 将操作数各比特位均向左移右边操作数的位数 |
>>> | 0填充右移 | 将左操作数比特位按右移有操作数位,左边的空位一律填0 |
- 赋值运算符
运算符 | 实例 | 等效表达式 |
---|---|---|
+= | a+=b | a=a+b |
-= | a-=b | a=a-b |
*= | a*=b | a=a*b |
/= | a/=b | a=a/b |
%= | a%=b | a=a%b |
&= | a&=b | a=a&b |
|= | a|=b | a=a|b |
^= | a^=b | a=a^b |
>>= | a>>=b | a=a>>b |
<<= | a<<=b | a=a<<b |
>>>= | a>>>=b | a=a>>>b |
-
条件运算符
Java中提供了三元条件运算符
格式:表达式1?表达式2:表达式3;
解释:其中,表达式1是一个结果为布尔值的逻辑表达式,计算表达式1的真假,然后表达式1为真,则表达式2位整个表达式的值,表达式1位假,则表达式3位整个表达式的值。与if-else
类似。 -
字符串运算符
"+"为字符串运算符,完成字符串的连接操作,且,当一个字符串和一个其他不是字符串类型的相加,则会自动转变为字符串类型。 -
表达式及运算符的优先级、结合性
优先级 | 运算符 | 运算符的结合性 |
---|---|---|
1 | . [] () | 左->右 |
2 | ++ - - ! ~ +(正号) -(负号) instanceof | 右->左 |
3 | new | 右->左 |
4 | * / % | 左->右 |
5 | + -(二元) | 左->右 |
6 | << >> >>> | 左->右 |
7 | < > <= >= | 左->右 |
8 | == != | 左->右 |
9 | & | 左->右 |
10 | ^ | 左->右 |
11 | | | 左->右 |
12 | && | 左->右 |
13 | || | 左->右 |
14 | ? : | 左->右 |
15 | = += -= *= /= %= <<= >>= >>>= &= ^= |= | 右->左 |