2.Java语言基础
2.1Java主类结构
一个Java项目组成:项目、包、类。
一个Java程序有若干个包,包的关键字为package,用于在文件开头声明类所在的包。
类是Java程序的基本组成单位,类中包含属性和方法。
含有main()方法的类称为主类,主类名必须和文件名相同,Java区分大小写。
2.1.1主方法main()
public static void 分别是main()方法的权限修饰符、静态修饰符、返回值修饰符。
String[] args 是一个字符串类型数组,main()方法的参数。
main()方法是程序执行的位置。
2.1.3API库
Java用关键字import导入相关类。API(应用程序接口)提供类130多个包,如java.awt、java.io等,可以通过JDK的API文档查看这些类。
2.2基本数据类型
Java有8种数据类型。6种数值型,一种字符型,一种布尔型。
2.2.1整数
三种进制,10进制,8进制(数字0开头),16进制(0x开头)
四种类型
byte,1字节,-2^7~2^7-1
short,2字节
int ,4字节,整数默认类型
long,8字节,需要在数字后面加上L或小写的l
2.2.2浮点类型
float,4字节,后方加f或F
double,8字节,浮点数默认类型
2.2.3字符类型
(1)char类型
char,2字节,由于其具有编码,可在0~65536的整数范围内可以和整数转换
ps:'s'是字符,"s"是字符串,'sss'是字符串
(2)”转义字符''的使用
转义字符 | 意义 | 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 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
2.2.4布尔类型
boolean,只有true和false两个值。
2.3变量与常量
2.3.1标志符
由字符、下划线、美元符号、数字组成;不能以数字开头
2.3.2关键字
在 Java中已被定义,不可作为标志符
访问控制
private protected public
类,方法和变量修饰符
abstract class extends final implements interface native new
static strictfp synchronized transient volatile
程序控制
break continue return do while if else for instanceof switch
case default
异常处理
try cathc throw throws
包相关
import package
基本类型
boolean byte char double float int long short null true false
变量引用
super this void
保留字
goto const
2.3.3常量
用final 定义
常量为“成员变量”时,定义时需要赋初值(static final修饰)
2.3.4变量作用域
(1)成员变量
类内定义的变量。分为实例变量和静态变量,实例变量作用域是整个类体;
静态变量用关键字static修饰,类外有效,在类外可以用“类名.静态变量”访问;
(2)局部变量
方法内部定义的变量。方法被调用时有效。方法结束时被销毁。
2.4运算符
2.4.1赋值运算符
'=',左操作数需要是一个变量
2.4.2算数运算符
'+' 加 '-' 减
'*' 乘 '/' 除
'%'求余
2.4.3自增自减运算符
++a: //在被使用前,a加一
a++; //在被使用后,a加一
++a; //在被使用前,a减一
a--; //在被使用后,a减一
2.4.4比较运算符
'>' '<'
'==' '!='
'>=' '<='
2.4.5逻辑运算符
'!' 逻辑非
'&'、'&&' 逻辑与
'|' 、 '||' 逻辑或
ps1: '||' 又被称为短路或,当左操作数为真时,右操作数不会运算
ps2: '&&' 又被称为短路与,左操作数为假时,右操作数不会运算
2.4.6位操作数
按位与 '&'
按位或 '|'
按位取反 '~'
按位异或 '^' 相同为0,否则为1
位移运算
'>>' 右移,最右补0
'<<' 左移,根据原本最高位0还是1,判断最左补0或者1
'>>>' 无符号右移,最左补0
2.4.7三元运算符
'条件式?值1:值2'
//等价于if...else...
2.4.8运算符优先级
通常优先级顺序:增量减量>算数运算>比较运算>逻辑运算>赋值运算
优先级 | 运算符 | 结合性 |
---|---|---|
1 | () [] . | 从左到右 |
2 | ! +(正号) -(负号) ~(取补) ++(自增) - -(自减) | 从右向左 |
3 | * / % | 从左到右 |
4 | +(加号) -(减号) | 从左到右 |
5 | << >> >>> | 从左到右 |
6 | < <= >= > instanceof | 从左到右 |
7 | ==(等于) != | 从左到右 |
8 | & | 从左到右 |
9 | ^ | 从左到右 |
10 | | | 从左到右 |
11 | && | 从左到右 |
12 | || | 从左到右 |
13 | ?: | 从右向左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右向左 |
3.5数据类型转换
3.5.1隐式类型转换
低精度到高精度的转换,由系统自动进行
bye<short<int<long<float<double
3.5.2显示类型转换(强制类型转换)
高精度到低精度到转换
'(类型名)要转换到值'
3.6代码注释
1.单行注释 '//'
2.多行注释 '/...../'
3.文档注释 '/*....../'
3.7编码规范
1.每个变量单独一行
2.关键字与关键字之间,仅有一个空格
3.不使用复杂、难理解技术,否则不利于维护
4.关键方法多加注释