目录
1. 什么是 Java?2. 配置 Java 开发环境2.1 安装 JDK2.2 JDK 的组成2.3 集成开发环境的配置2.3.1 设置 IDEA 主题2.3.2 设置 IDEA 字体2.3.3 设置 IDEA 背景色2.3.4 IDEA 常用快捷键2.3.5 IDEA 导入模块 3. Java 程序的结构4. 第一个 Java 程序5. Java 基础知识5.1 注释5.2 字面量5.3 变量5.4 关键字5.5 标识符5.6 数据类型5.7 自动类型转换5.7.1 赋值的自动类型转换5.7.2 表达式的自动类型转换 5.8 强制类型转换5.9 运算符5.9.1 基本运算符5.9.2 自增自减运算符5.9.3 赋值运算符5.9.4 关系运算符5.9.5 逻辑运算符5.9.6 三目操作符5.9.7 运算符优先级
正文开始。
1. 什么是 Java?
Java 是一门面向对象的计算机高级编程语言。作为世界上最流行的编程语言之一,它的可移植性、安全性非常强大,并且随着发展,开发社区最为完善,功能最为丰富。
Java 在桌面应用开发、企业级应用开发、移动应用开发、服务器系统、大数据开发、游戏开发等方面都发挥着不可替代的作用。
2. 配置 Java 开发环境
2.1 安装 JDK
Java 语言的产品是 JDK(Java Development Kit : Java开发者工具包),必须要 安装 JDK 才可以使用 Java 语言。如果把使用 Java 语言开发比作做饭,那么 JDK 就可以看作菜刀、调料等一整套工具。
2.2 JDK 的组成
JDK 分为三个部分:
JVM(Java Virtual Machine):Java 虚拟机,真正运行 Java 程序的地方。核心类库:Java 自己写好的程序,给程序员自己的程序调用的,提高开发效率。开发工具:java-执行工具、javac-编译工具等JRE(Java Runtime Environment):Java 的运行环境,核心內容是核心类库和 JVM
2.3 集成开发环境的配置
集成开发环境(IDE,Integrated Development Enviroment)是把代码的编写、编译、执行等多种功能综合到一起的开发工具,可以进行代码智能提示、错误提醒、项目管理等功能。
常见的 Java IDE 工具有:Eclipse、MyEclipse、IntelliJ IDEA、Jbuilder、NetBeans等等,这里我们使用 IntelliJ IDEA 来学习,IntelliJ IDEA 下载链接。
注意:建议修改安装路径以便于管理(不要安装在有空格和中文的路径下)
2.3.1 设置 IDEA 主题
2.3.2 设置 IDEA 字体
2.3.3 设置 IDEA 背景色
2.3.4 IDEA 常用快捷键
快捷键 | 功能 |
---|---|
main/psvm、sout、… | 快速键入相关代码 |
Ctrl + D | 复制当前行到下一行 |
Ctrl + Y | 删除所在行 |
Ctrl + ALT + L | 格式化代码 |
ALT + SHIFT + ↑ , ALT + SHIFT + ↓ | 上下移动当前代码 |
Ctrl + / | 使用 // 注释代码 |
Ctrl + Shift + / | 使用 /**/ 注释代码 |
2.3.5 IDEA 导入模块
IDEA 中导入模块有些点需要注意,这里着重讲解一下,还不了解模块是什么的朋友可暂时跳过,不影响后续学习。
关联导入(并不改变原模块的位置)若想要使导入的模块与工程文件位置统一,可以将指定模块复制到工程文件下,并按上述步骤导入。
3. Java 程序的结构
Java 程序分为四种结构,从大到小依次为:
project:项目module:模块package:包class:类将整个程序划分为了四种结构,是为了方便管理项目代码,更有利于提高开发效率。
如果将 project 比作一个小区,那么 module 就相当于小区里的一栋楼,package 就相当于一栋楼里的一个楼层,class 就相当于一个楼层中的一个房间。
4. 第一个 Java 程序
下面展示执行程序的完整步骤:
打开 IDEA 并新建一个项目:选择空项目类型
新建模块(ps:这里加了汉化插件)
新建包,包的命名规则一般是公司官方的域名倒置,并且将www部分替换为当前文件的作用说明,例如:com.taobao.test
新建类
编写代码并运行
package com.wwangxu.test;public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!"); }}
恭喜你!刚刚你成功运行了一个 Java 程序,让我们总结一下整个流程:
新建项目新建模块新建包新建类编写代码运行5. Java 基础知识
5.1 注释
注释就是对代码的说明,并不影响程序的执行,编译后生成的.class文件中会将注释去掉,写注释的目的就是让开发人员能更轻松地看懂代码,提高程序代码的可读性。
基本格式:
// 单行注释/*多行注释多行注释*//**文档注释:文档注释的內容是可以提取到一个程序说明文档中去的*/
5.2 字面量
字面量是用于表达源代码中一个固定值的表示法,通俗来讲就是告诉程序员数据在程序中的书写格式
数据类型 | 生活中的写法 | 程序中的写法 | 说明 |
---|---|---|---|
整数 | 13,-21 | 13,-21 | 写法一致 |
小数 | 1.3,-2.1 | 1.3,-2.1 | 写法一致 |
字符 | A,0,好 | ‘A’,‘0’,‘好’ | 程序中必须使用单引号,有且只能有一个字符 |
字符串 | 你好呀 | “你好呀”,“” | 程序中必须使用双引号,內容可有可无 |
布尔值 | 真、假 | true、false | 只有两个值:true 代表真,false 代表假 |
空值 | / | null | 一个特殊的值,空值 |
5.3 变量
变量是用来记录数据的,可以把变量想象成一个容器,里面存放的就是数据。
格式如下:
//数据类型 变量名称 = 数据;int a = 0;//整型变量 a 存储了 0 这个整型数据
使用变量有如下注意事项:
变量要先声明才能使用变量是什么类型,就只能存储该类型的数据变量的作用域是它所在的一对花括号{}中,同一范围内,变量不能重名;不同范围中的变量彼此之间相互独立变量定义的时候可以不赋初始值,但在使用时,变量必须有值5.4 关键字
Java 语言自己用到的一些词,有特殊作用的,我们称之为关键字,关键字不能用来作为类名、变量名。
常见关键字如下:
5.5 标识符
标识符就是名字,我们在写程序时会起一些名字,比如类名、变量名等等都是标识符。
标识符的要求:
只能由数字、字母、下划线_和美元符$等组成。不能以数字开头不能以关键字命名标识符对大小写敏感,例如 test 与 Test 是两个不同的标识符。标识符的规范:
变量名称:满足标识符规则,同时建议用英文、有意义、首字母小写,满足“小驼峰命名法”,例如testCases类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足“大驼峰命名法”,例如TestCases5.6 数据类型
数据类型分为基本数据类型和引用数据类型,这里只对基本数据类型做说明,引用数据类型留到后面讲。
需要注意的是,当我们任写一个整数时,它都默认是int类型的;任写一个小数时,它都默认是double类型的。例如:
// long a = 12345678901;// 数据默认是 int 类型,但12345678901超过了 int 类型的数据范围,所以会报错// 将数据设置为 long 类型时,需要在数据末尾加 L 或 llong a = 12345678901L;// float b = 3.14;// 数据默认是 double 类型,但 b 是 float 类型,所以会报错// 将数据设置为 float 类型时,需要在数据末尾加 F 或 ffloat b = 3.14F;
5.7 自动类型转换
5.7.1 赋值的自动类型转换
在 Java 语言中,当不同类型的数据进行赋值操作时,内存占用小的变量,可以直接赋值给内存占用大的变量
例如:
byte a = 12;short b = a;// a在内存中:00001100(8位)// b在内存中:00000000 00001100(16位)
其他形式的自动类型转换:
5.7.2 表达式的自动类型转换
在表达式中,内存占用小的变量会自动转换成表达式中较大范围的类型,再参与运算
注意:
例如:
byte a = 1;int b = 10;double c = 1.1;// 表达式 a + b// 是将 a 的类型转换为 int 类型,再进行运算// 表达式结果的类型为 int//表达式 b + c// 是将 b 的类型转换为 double 类型,再进行运算// 表达式结果的类型为 double
5.8 强制类型转换
内存占用大的数据或变量,直接赋值给内存占用小的变量,会报错,例如:
int a = 20;byte b = a;//报错
强制类型转换可以将数据类型进行指定转换
例如:
int a = 20;byte b = (byte)a;// 将 int 类型的变量 a 强制类型转换为 byte 类型,从而使表达式合法
强制类型转换的执行原理:
需要注意的是:
强制类型转换可能造成数据丢失 / 溢出浮点型强转成整型,会直接丢掉小数部分,保留整数部分5.9 运算符
5.9.1 基本运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 使两个操作数相加 |
- | 减 | 使两个操作数相减 |
* | 乘 | 相当于“×” |
/ | 除 | 相当于“÷” |
% | 取余 | 获取两个数做除法的余数 |
注意:
运算符+可以用于字符串的连接符,连接的结果是一个字符串。例如:String a = "abcd" + 5; // "abcd5"String b = "abcd" + "aa"; // "abcdaa"
5.9.2 自增自减运算符
符号 | 作用 |
---|---|
自增:++ | 放在某个变量前面或后面,对自身的值加1 |
自减:– | 放在某个变量前面或后面,对自身的值减1 |
注意:
自增或自减运算符放在变量前面或后面时,是有区别的。放在变量的前面,是先对变量进行自增或自减,然后再拿变量的值进行运算。放在变量的后面,是先拿变量的值进行运算,再对变量的值进行自增或自减。例如:
int c = 10;int b = c++ + ++c;// 结果:// b = 22// a = 12
5.9.3 赋值运算符
符号 | 用法 | 作用 | 底层代码形式 |
---|---|---|---|
= | a = b | 赋值 | 将右边值赋给左边变量 |
+= | a += b | 加后赋值 | a = (a的类型)(a + b) |
-= | a -= b | 减后赋值 | a = (a的类型)(a - b) |
*= | a *= b | 乘后赋值 | a = (a的类型)(a * b) |
/= | a /= b | 除后赋值 | a = (a的类型)(a / b) |
%= | a %= b | 取余后赋值 | a = (a的类型)(a % b) |
5.9.4 关系运算符
符号 | 例子 | 作用 |
---|---|---|
> | a > b | 判断 a 是否大于 b |
>= | a >= b | 判断 a 是否大于等于 b |
< | a < b | 判断 a 是否小于 b |
<= | a <= b | 判断 a 是否小于等于 b |
== | a == b | 判断 a 是否等于 b |
!= | a != b | 判断 a 是否不等于 b |
上述表达式的结果为:成立返回 true;不成立返回 false;
5.9.5 逻辑运算符
符号 | 叫法 | 例子 | 运算逻辑 |
---|---|---|---|
& | 逻辑与 | 2 > 1 & 3 > 2 | 多个条件必须都是 true,结果才是 true,反之为 false |
| | 逻辑或 | 2 > 1 | 3 < 5 | 多个条件中只要有一个 true,结果就是 true |
! | 逻辑非 | !(2 > 1) | 取反操作,!true == false、!false == true |
^ | 逻辑异或 | 2 > 1 ^ 3 > 1 | 前后条件结果相同,结果为 false;前后条件结果不同,结果为 true |
&& | 短路与 | 2 > 10 && 3 > 2 | 判断逻辑同“&”相同,但若左边为 false,则右边直接跳过不执行 |
|| | 短路或 | 2 > 1 || 3 < 5 | 判断逻辑同“|”相同,但若左边为 true,则右边直接跳过不执行 |
5.9.6 三目操作符
基本格式:条件表达式 ? 值1 : 值2;
执行流程:首先判断条件表达式,若为 true,则结果为值1、若为 false,则结果为值2
例如:
int a = 1 > 3 ? 7 : 8;// 1 > 3 为 false 所以结果为8// a == 8
5.9.7 运算符优先级
在表达式中,运算符优先级越高,执行顺序就越靠前。
运算符优先级由高到低排列为:
优先级 | 运算符 |
---|---|
1 | () |
2 | !、-、++、– |
3 | *、/、% |
4 | +、- |
5 | <<、>>、>>> |
6 | <、<=、>、>=、instanceof |
7 | ==、!= |
8 | & |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ? : |
14 | =、+=、-=、*=、/=、%=、&= |
完