持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
Java 三大体系分别是 JavaSE、JavaEE、JavaME。
JavaSE 是标准版,主要是基础的建设;JavaEE 是企业版,主要是企业应用的开发和规范;JavaME 是嵌入版,主要是早期嵌入式应用。
Java 三大核心机制分别是 JVM、GC、CS。
JVM 是 Java 虚拟机,GC 是 Java 自动垃圾回收机制,CS 是 Java 代码安全检测。
JVM 实现了一处编译到处运行,GC 让程序员可以更方便的对内存进行操作使用,CS 完全是底层完成的安全性处理。
注释
文档注释
那什么是文档注释呢?
文档注释,存在的意义主要是为企业级项目而准备的,所谓企业级项目就是较为庞大的、完善的、规范的项目,最后需要有项目 API 文档的生成,以便于后期的代码维护和重构,或是提高代码的重用率。 那么在 Java 源文件中哪些地方需要书写文档注释呢?
- 对类进行描述,标注该类的作用,编写者和版本信息,创建的时间等信息。
- 对方法进行描述,标注该方法的用途,方法参数传递的是什么数据,方法返回的是什么内容,可能会出现什么异常等信息。
在使用时需要注意:
- 对于类和接口而言,不是 public 修饰的,无须添加文档注释。
- 对于方法而言,不是 public 和 protected 修饰的,无须添加文档注释。
- 在方法体或语句块里面,一般只需要使用单行或多行注释即可。
- 养成好习惯,在后面书写的代码中要慢慢的习惯书写注释,并且书写有意义的标注解释。
java变量
变量的用途就是存储数据。 在 Java 语言中,所有数据都存储在变量中。
在 Java 语言中,每个变量都有 3 个部分组成:「类型」、「名称」和「值」。 声明变量的语法格式:
赋值运算符( = ): 最常用的运算符,Java 中 就是将等号 ( = )右边的值赋给左边的变量
为变量、方法和类起的名字叫标识符,也就是变量名、方法名、类名总之和名称相关的都可以叫做标识符。
名字命名时可以使用字母、数字、下划线、美元符,中间不能有空格、不能使用数字开头,除了下划线、美元符其他符号都不能使用。 Java 语言中严格区分大小写。。不要使用关键字作为变量名。
数据类型,就是确定存储的数据到底是啥类型的,类型的统一便于对相同数据进行管理,最常见的两种类型是整数(使用 int 来声明)和文本(使用 String 来声明)
java常量
一种常量值是 Java 中的常用的转义符,如下表:
| 转义符 | 说明 |
|---|---|
| \n | 换行符 |
| \t | 制表符 |
| \r | 回车符 |
| \b | 退格符 |
| ' | 单引号 |
| " | 双引号 |
| \ | 斜杠 |
常量,它需要先定义后赋值,才能使用
- 声明常量必须使用
final关键字进行修饰,也就是说,不加final关键字就不是一个常量; - 对于数据类型而言,各种类型都可以;
- 常量名建议字母全部大写,还可以采用下划线( _ )进行分隔;
- 常量声明后必须赋值,赋值后将不能改变其值
常量一旦赋值,就不能再改变了
那就是常量还可以分为:静态常量、成员常量和局部常量。
静态常量,就是在类体中声明一个常量,添加 public static final 这几个关键字来进行修饰。这样的常量可以放在任何地方使用。
成员常量,是指在类体中,方法或代码块以外声明的常量;而局部常量,是指在方法体或语句块中声明的常量。
数据类型
整型
| 类型 | 占用存储空间 | 取值范围 |
|---|---|---|
| byte | 1 字节 | -128 ~ 127 |
| short | 2 字节 | -215 ~ 215-1 |
| int | 4 字节 | -231 ~ 231-1 |
| long | 8 字节 | -263 ~ 263-1 |
整型常量值默认情况下也是 int 类型。当整数值超过了 int 类型取值范围,那么赋值给 long 类型时,数值后面需要加上 l 或 L ,来表明长整型类型,否则无法赋值
布尔型
boolean 类型数据用来表示只有两种状态的逻辑值,即 true 和 false ,true 和 false 是属于保留字
浮点类型
浮点类型,指的就是数值有小数位的存在,这个类型分为单精度 float 和双精度 double,浮点数值默认情况下是 double 类型。
字符类型
字符类型数据,就是用来描述字符的,使用 char 关键字来声明。
字符常量是用单引号括起来的单个字符,例如: char c = 'A';,也可用十六进制编码形式表示,例如: char c = '\u0061';,还可以使用之前我们讲过的转义字符,例如:char c = '\n';
引用类型
除了简单类型外的所有类型,我们都称之为引用类型。
引用类型可以包括:类、接口、数组、枚举等
String 类型数据可以和任何其它数据类型进行" + "操作,这里的加号不是在进行数学计算操作,而是实现字符串连接的效果。
简单类型之间的转换
自动类型转换,我们又称为隐式类型转换,是因为代码中无须添加任何其他内容,就可以完成转换操作。
下图是数据类型转换原则图。
按箭头的方向是自动完成的,红色虚线方向会丢失精度。
byte、short、char 这三个类型参与运算时运算结果的类型为 int 类型,也就是说这三个类型参与运算时会先转换为 int 类型再进行运算。
有多种类型的数据混合运算时,系统首先自动地将参与运算的变量或字面值常量转换成容量最大的数据类型,然后再进行计算,因此结果为容量最大的数据类型。
使用 Scanner 进行数据传递
步骤
创建scanner对象:Scanner input = new Scanner(System.in);
【需要导入包,才能使用 Scanner 类 import java.util.Scanner;】
创建接收对象: 从控制台输入 byte 类型的数据 byte byteNum = input.nextByte();
从控制台输入 short 类型的数据 short shortNum = input.nextShort();
从控制台输入 int 类型的数据 int intNum = input.nextInt();
从控制台输入 long 类型的数据 long longNum = input.nextLong();
从控制台输入 float 类型的数据 float floatNum = input.nextFloat();
从控制台输入 double 类型的数据 double doubleNum = input.nextDouble();
从控制台输入 boolean 类型的数据 boolean booleanValue = input.nextBoolean();
从控制台输入 String 类型的数据 String stringValue = input.next();
需要注意以下两点:
- 不能直接从控制台输入
char类型的数据; - 在从控制台输入
String类型的数据时,除了使用next()以外,还可以使用nextLine(),二者的区别是nextLine()方法返回的是 Enter 键之前的所有字符,它是可以得到带空格的字符串的,而next()会将这些空白符作为输入字符串的结束标识只能获取空白符之前的内容。
运算符
算术运算符
| 运算符 | 名称 | 描述 |
|---|---|---|
| + | 加 | 两个数值相加,例如 1 + 1 |
| - | 减 | 两个数值相减,例如 2 - 1 |
| * | 乘 | 两个数值相乘,例如 2 * 2 |
| / | 除 | 进行除法计算,返回整除部分,例如 5 / 2 |
| % | 取模 | 进行除法计算,返回余数部分,例如 5 % 2 |
在 Java 中又新增了两个算术运算符,那就是递增运算符 ++ 和递减运算符 -- 。 当++,--在数左边,表示先++,--再运算,如果在右边,先计算后++,--
关系运算符
| 运算符 | 表达式 | 描述 |
|---|---|---|
| == | x == y | 等于:比较值是否相等 |
| != | x != y | 不等于:比较两个值是否不相等 |
| x > y | 大于:返回 x 是否大于 y | |
| < | x < y | 小于:返回 x 是否小于 y |
| >= | x >= y | 大于等于:返回 x 是否大于等于 y |
| <= | x <= y | 小于等于:返回 x 是否小于等于 y |
注意: 在高级编程语言中,一个 = 代表赋值符,两个 = 才代表数学意义上的“相等”。
逻辑运算符
逻辑运算符,可以对 boolean 类型数据进行“与”、“或”、“非”、“异或”等逻辑运算,结果仍为 boolean 类型,通常用于程序的运行流程控制。
Java 逻辑运算符,较为常用的逻辑运算有三个: !、&& 、||。 !表示相反 && 左右同时为真,才为真。 || 左右同时为假才是假
赋值运算符
最常用的赋值运算符 =
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 赋值运算符 | c = a + b :将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a :等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a :等效于 c = c - a |
| *= | 乘法赋值运算符 | c *= a :等效于 c = c * a |
| /= | 除法赋值运算符 | c /= a :等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a :等效于 c = c % a |
| &= | 逻辑与赋值运算符 | c &= a : 等效于 c = c & a |
| 竖线= | 逻辑或赋值运算符 | c 竖线= a : 等效于 c = c 竖线 a |
| ^= | 逻辑异或赋值运算符 | c ^= a : 等效于 c = c ^ a |
条件运算符
条件运算符是由问号和冒号组成的,? 左边的表达式 1 必须返回 boolean 类型值,需要根据布尔值来确定执行后 : 左边还是右边的表达式,当表达式 1 返回 true 时,执行 表达式 2,当返回值为 false 时,执行 表达式 3。
位运算符
位运算符主要包括按位非(用符号 ~ 表示)、按位与(用符号 & 表示)、按位或(用符号 | 表示)、按位异或(用符号 ^ 表示)和移位运算符(用符号 <<、>>、>>> 表示)。
按位非表示按位取反,其关系值表如下表所示。
| A | ~ A |
|---|---|
| 1 | 0 |
| 0 | 1 |
按位与就是逐位逻辑与。按位与的关系值表如下表所示。
| A | B | A & B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
按位或就是逐位逻辑或。按位或的关系值表如下表所示。
| A | B | A 竖线 B |
|---|---|---|
| 1 | 1 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
按位异或就是当两个运算位不同时结果为 1,否则为 0。按位异或的关系值表如下表所示。
| A | B | A ^ B |
|---|---|---|
| 1 | 1 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
移位运算符
| 名称 | 符号 | 说明 |
|---|---|---|
| 左移 | << | 高位移出低位补 0 。 |
| 右移 | >> | 底位移出高位根据正负符号补位,正数补 0、负数补 1 。 |
| 无符号右移 | >>> | 底位移出高位补 0 。 |