Java 编程入门
搭建环境
多版本 JDK
下载并安装想要的版本,设置环境变量
1 | setx /M JDK8_PATH "C:\Program Files\Java\jdk1.8.0_361" |
设置1
2
3
4
5#默认使用 JDK8
setx /M JAVA_HOME "%JDK8_PATH%"
#默认使用 JDK18
setx /M JAVA_HOME "%JDK18_PATH%"
java -version
PS. 如果不成功请删除,Path 环境变量中的C:\ProgramData\Oracle\Java\javapath
Maven
语法基础
标识符
在 Java 中,标识符用来给程序中的包、常量、变量、方法、类和接口命名,其命名需要遵循如下规范:
- 标识符由英文字母 A~Z、a~z、数字 0~9、 _ 、$ 组成
- 标识符的首字符必须是字母、下画线或 $
- 标识符的命名不能与关键字、布尔值(true、false)和 null 相同
- 标识符严格区分大小写,没有长度限制
- 为了使程序具有可读性,标识符命名须符合顾名思义的规则,如:姓名使用 name,年龄使用 age
关键字
关键字是事先定义的有特殊含义的单词,Java 的关键字对 Java 的编译器有特殊的意义,和其他编程语言一样,Java 中预留了很多关键字,如:public、void、for、if 等
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | private | 私有的 |
访问控制 | protected | 受保护的 |
访问控制 | public | 公共的 |
访问控制 | default | 默认 |
修饰符 | abstract | 声明抽象 |
修饰符 | class | 类 |
修饰符 | extends | 扩充,继承 |
修饰符 | final | 最终值,不可改变的 |
修饰符 | implements | 实现(接口) |
修饰符 | interface | 接口 |
修饰符 | native | 本地,原生方法(非 Java 实现) |
修饰符 | new | 创建 |
修饰符 | static | 静态 |
修饰符 | strictfp | 严格,精准 |
修饰符 | synchronized | 线程,同步 |
修饰符 | transient | 短暂 |
修饰符 | volatile | 易失 |
程序控制语句 | break | 跳出循环 |
程序控制语句 | case | 定义一个值以供 switch 选择 |
程序控制语句 | continue | 继续 |
程序控制语句 | do | 运行 |
程序控制语句 | else | 否则 |
程序控制语句 | for | 循环 |
程序控制语句 | if | 如果 |
程序控制语句 | instanceof | 实例 |
程序控制语句 | return | 返回 |
程序控制语句 | switch | 根据值选择执行 |
程序控制语句 | while | 循环 |
错误处理 | assert | 断言表达式是否为真 |
错误处理 | catch | 捕捉异常 |
错误处理 | finally | 有没有异常都执行 |
错误处理 | throw | 抛出一个异常对象 |
错误处理 | throws | 声明一个异常可能被抛出 |
错误处理 | try | 捕获异常 |
包相关 | import | 引入 |
包相关 | package | 包 |
基本类型 | boolean | 布尔型 |
基本类型 | byte | 字节型 |
基本类型 | char | 字符型 |
基本类型 | double | 双精度浮点 |
基本类型 | float | 单精度浮点 |
基本类型 | int | 整型 |
基本类型 | long | 长整型 |
基本类型 | short | 短整型 |
变量引用 | super | 父类,超类 |
变量引用 | this | 本类 |
变量引用 | void | 无返回值 |
保留关键字 | goto | 是关键字,但不能使用 |
保留关键字 | const | 是关键字,但不能使用 |
标签 | 含义 |
---|---|
@author | 用于标记作者 |
@version | 用于标记版本 |
@param | 参数及其含义 |
@since | 最早使用该方法、类、接口的 JDK 版本 |
数据类型
标签 | 含义 | 字节 | 位数 | 取值范围 | 默认值 |
---|---|---|---|---|---|
boolean | 布尔型 | - | - | true,false | false |
byte | 字节型 | 1 | 8 | -128 ~ +127 | 0 |
char | 字符型 | 2 | 16 | 0 ~ 65535 | ‘u0000’ |
double | 双精度浮点 | 8 | 64 | -1.79E+308 ~ +1.79E+308 | 0.0d |
float | 单精度浮点 | 4 | 32 | -3.40E+38 ~ -3.40E+38 | 0.0f |
int | 整型 | 4 | 32 | -2147483648 ~ +2147483647 | 0 |
long | 长整型 | 8 | 64 | -263 ~ 263-1 | 0L |
short | 短整型 | 2 | 16 | -32768 ~ +32767 | 0 |
常量 & 变量
- 局部变量(Local Variables):定义在方法、构造方法或语句块中的变量,作用域只限于当前方法、构造方法或语句块中;局部变量必须在使用前声明,并且不能被访问修饰符修饰
- 成员变量(Instance Variables):定义在类中、方法之外的变量,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问;成员变量可以被访问修饰符修饰
- 静态变量(Class Variables):定义在类中、方法之外的变量,并且使用 static 关键字修饰,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问,静态变量的值在程序运行期间只有一个副本;静态变量可以被访问修饰符修饰
- 参数变量(Parameters):方法定义时声明的变量,作为调用该方法时传递给方法的值;参数变量的作用域只限于方法内部
运算符
算术运算符
| 操作符 | 描述 |
|——-|—————————|
| + | 加法:相加运算符两侧的值 |
| - | 减法:左操作数减去右操作数 |
| * | 乘法:相乘操作符两侧的值 |
| / | 除法:左操作数除以右操作数 |
| % | 取余:左操作数除以右操作数的余数 |
| ++ | 自增:操作数的值增加 1 |
| — | 自减:操作数的值减少 1 |关系运算符
| 运算符 | 描述 | 例子 |
|——-|————————————————-|——————-|
| == | 检查如果两个操作数的值是否相等,如果相等则条件为真 | (A == B)为假 |
| != | 检查如果两个操作数的值是否相等,如果值不相等则条件为真 | (A != B) 为真 |
| > | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真 | (A> B)为假 |
| < | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A = | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 | (A> = B)为假 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真 | (A <= B)为真 |位运算符
- &:如果相对应位都是 1,则结果为 1,否则为 0;(A&B),得到12,即0000 1100
- |:如果相对应位都是 0,则结果为 0,否则为 1;(A | B)得到61,即 0011 1101
- ^:如果相对应位值相同,则结果为 0,否则为 1;(A ^ B)得到49,即 0011 0001
- 〜:按位取反运算符翻转操作数的每一位,即 0 变成 1,1 变成 0;(〜A)得到-61,即1100 0011
- <<:按位左移运算符,左操作数按位左移右操作数指定的位数;A << 2 得到 240,即 1111 0000
- >>:按位右移运算符,左操作数按位右移右操作数指定的位数;A >> 2 得到 15 即 1111
- >>>:按位右移补零操作符,左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充;A>>>2 得到 15 即 0000 1111
逻辑运算符
- &&:称为逻辑与运算符,当且仅当两个操作数都为真,条件才为真
- ||:称为逻辑或操作符,如果任何两个操作数任何一个为真,条件为真
- !:称为逻辑非运算符,用来反转操作数的逻辑状态,如果条件为 true,则逻辑非运算符将得到 false
赋值运算符
其他运算符
条件语句
if 语句
可以用 else 和 else if 嵌套1
2
3if (布尔表达式) {
语句;//表达式为 true 时执行
}switch 语句
1
2
3
4
5
6switch (表达式) {
case 值1:语句;break;
case 值2:语句;break;
case 值3:语句;break;
[default:默认语句;]
}循环语句
while 语句
1
2
3while ( 布尔表达式 ) {
循环内容;//布尔表达式为 true,一直循环
}do-while 语句
先执行再判断1
2
3do {
循环内容;//布尔表达式为 true,一直循环
} while ( 布尔表达式 );for 语句
1
2
3for( 初始值; 布尔表达式; 更新) {
循环内容;//布尔表达式为 true,一直循环
}跳转语句
break 语句和 continue 语句都可以用来跳出当前循环,break 语句还可以用在 switch 语句当中;两者的主要区别是: - break 语句用于结束整个循环语句,不再执行该循环语句或者程序块
- continue 语句的作用是中断当前的这次循环,还会继续执行后面的循环
break 语句跳出循环,continue 语句继续执行下一个循环
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 君玉自牧!