共计 4841 个字符,预计需要花费 13 分钟才能阅读完成。
开源地址
开源项目地址:https://github.com/371854496/…
java 学习资料:https://github.com/371854496/…
各位觉得还阔以的话,点下 Star, 分享不易,thank you!
标识符
标识符就是用于给 Java 程序中变量、类、方法等命名的符号。
规则:
①可以由字母,数字,下划线(_),美元符($)组成,但不能包含 @,%,空格等其他特殊字符,不能以数字开头。
②不能是 java 关键字
③是区分大小写的
例如:下面的标识符是合法的:
myName,My_name,Points,$points,_sys_ta,OK,_23b,_3_,Myvoid
下面的标识符是非法的:
name,25name,class,&time,if
变量:
使用小驼峰命名法
常量:
使用纯大写的方式每个单词之间使用下划线链接
MAX_VALUE
方法:
使用小驼峰命名法
类, 接口, 抽象类, 枚举:
使用大驼峰命名法
包:
使用公司域名反写的方式
如:com.ujiuye.www
常见关键字
关键字 | 含义 | |
---|---|---|
abstract | 表明类或者成员方法具有抽象属性 | |
assert | 断言,用来进行程序调试 | |
boolean | 基本数据类型之一,布尔类型 | |
break | 提前跳出一个块 | |
byte | 基本数据类型之一,字节类型 | |
case | 用在 switch 语句之中,表示其中的一个分支 | |
catch | 用在异常处理中,用来捕捉异常 | |
char | 基本数据类型之一,字符类型 | |
class | 声明一个类 | |
const | 保留关键字,没有具体含义 | |
continue | 回到一个块的开始处 | |
default | 默认,例如,用在 switch 语句中,表明一个默认的分支 | |
do | 用在 do-while 循环结构中 | |
double | 基本数据类型之一,双精度浮点数类型 | |
else | 用在条件语句中,表明当条件不成立时的分支 | |
enum | 枚举 | |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 | |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 | |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 | |
float | 基本数据类型之一,单精度浮点数类型 | |
for | 一种循环结构的引导词 | |
goto | 保留关键字,没有具体含义 | |
if | 条件语句的引导词 | |
implements | 表明一个类实现了给定的接口 | |
import | 表明要访问指定的类或包 | |
instanceof | 用来测试一个对象是否是指定类型的实例对象 | |
int | 基本数据类型之一,整数类型 | |
interface | 接口 | |
long | 基本数据类型之一,长整数类型 | |
native | 用来声明一个方法是由与计算机相关的语言(如 C /C++/FORTRAN 语言)实现的 | |
new | 用来创建新实例对象 | |
package | 包 | |
private | 一种访问控制方式:私用模式 | |
protected | 一种访问控制方式:保护模式 | |
public | 一种访问控制方式:共用模式 | |
return | 从成员方法中返回数据 | |
short | 基本数据类型之一, 短整数类型 | |
static | 表明具有静态属性 | |
strictfp | 用来声明 FP_strict(单精度或双精度浮点数)表达式遵循 IEEE 754 算术规范 [1] | |
super | 表明当前对象的父类型的引用或者父类型的构造方法 | |
switch | 分支语句结构的引导词 | |
synchronized | 表明一段代码需要同步执行 | |
this | 指向当前实例对象的引用 | |
throw | 抛出一个异常 | |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 | |
transient | 声明不用序列化的成员域 | |
try | 尝试一个可能抛出异常的程序块 | |
void | 声明当前成员方法没有返回值 | |
volatile | 表明两个或者多个变量必须同步地发生变化 | |
while | 用在循环结构中 |
关键字的特点
1. 全部都是小写的
2. 自己给自己定义东西起名字的时候, 不能和关键字重名
3. 其中有两个关键字是保留关键字, goto 和 const, 当前 java 版本中还没有使用, 不代表以后不会被使用.
修饰符
Java 使用了一定数量的称为修饰符的关键字,这些修饰符指定了数据、方法和类的属性以及它们的使用方法。
例如 public 和 static 都是修饰符,另外还有 private、final、abstract 和 protected。
一个 public 数据、方法或者类可以被其他的类访问,而一个 private 数据或方法不能被其他类访问。
注释
在 Java 中,一行注释以双斜杠(//)标识;
多行注释包含在“/”和“/”之间;
文档注释包含在“/*”和“/”之间。
常量
// 声明常量
final int COUNT=10;
final float HEIGHT=10.2f;
变量
// 声明变量
// 数据类型 变量名 = 初始值;
int age = 18;
使用变量的注意事项
1. 变量是有作用域的
作用于: 起作用的范围
范围: 从他定义的哪一行起, 到出他所在大括号.
变量定义之前不能使用. 出了他所在的大括号就不能访问了.
2. 在同一个大括号 (同一个作用域) 中不能定义同名的变量.
3. 使用变量的时候必须先给初始值, 才能使用.
4. 变量的定义和变量初始化可以分开写.
5. 可以在同一行一次定义多个变量
数据类型 变量名 1 = 初始值 1, 变量名 2 = 初始值 2,….;
这种情况只适合一次定义多个同类型的变量;
代码示例
class test_变量使用注意事项 {public static void main(String[] args) {// System.out.println(a);
int a = 10;
// float a = 3.14f; 变量重名
{System.out.println(a);
// double a = 14.0; 变量重名
}
int num;
num = 1;
System.out.println(num);
int age = 18, age2 = 20, age3 = 40;
// int age = 18, age2 = 20, age3 = 40.5; 数据类型必须一致
System.out.println(age);
System.out.println(age2);
System.out.println(age3);
System.out.println(age +""+age2 +" "+age3);
}
public static void sayHi(){//System.out.println(a);
}
}
数据类型
1.java 是一种强类型语言,(定义变量的时候必须给改变执行数据类型), 数据类型就是为了执行内存空间大小的额.
2. 基本数据类型:
数值型:四类八种
整数类型:
- byte 比特 1 个字节 数据范围 -128~127 -2^7 ~ 2^7-1
- short 短整型 2 个字节 -2^15 ~ 2^15-1
- int 整型 4 个字节 -2^31 ~ 2^31-1
- long 长整型 8 个字节 -2^63 ~ 2^63-1
浮点类型:
- float 单精度浮点型 4 个字节 > long 类型存储范围
- double 双精度浮点型 8 个字节 > float 类型存储范围
字符类型:
- char 字符类型 2 个字节 0~65535
布尔类型:
- boolean 未知 true 和 false
引用数据类型:
类 接口 数组 枚举 标注
数据类型转换
自动类型转换:
取值范围小的类型的数据,往取值范围大的类型的变量中放,可以直接放进去,不会损失精度;
如:byte–>short–>int–>long–>float–>double;
char–>int;
强制类型转换:
将取值范围大的类型的数据,往取值范围小的类型变量中放,有可能放不进去,会出现精神读损失;
语法:
小的范围的数据类型 新的变量名 = (小的范围的数据类型) 旧的大范围的变量名
如
int a = 128;
byte b = (byte)a;
运算符
1. 概念: 用户运算和操作数据符号就是运算符
2. 运算符的分类
- 算数运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三元运算符
算数运算符
1. 用来进行算数运算的符号
2.+, -, *(乘), /(除号), %(取余运算符)
-
+: 加法运算
- -: 减法运算
- *: 乘法运算
- /: 除法运算
- %: 取余运算
3./ 如果运算符两边都是整数, 得到结果只保留整数部分.
/ 如果两边有一边是小数, 得到的结果就是小数
%: 取余运算符(取模运算符), 两边可以是小数也可以整数
赋值运算符
1. 作用: 把赋值运算符号右边的数据赋值给左边
2. 基本赋值运算符 =
3. 复合赋值运算符 +=, -=, *=, /=, %=
int a = 10;
a += 1; // a = a+1;
System.out.println(a); // 11
自增和自减运算符
1.++ 和 –-
2.++: 变量每次自增 1
3.–: 变量每次自减 1
4. 注意事项:
++: 如果在变量前, 先对变量进行 +1, 再使用这个变量
++: 如果在变量的后面, 先使用变量中的值, 再对变量 +1;
无论 ++ 在变量前面还是后面, 执行之后变量都会 +1;
–: 如果在变量前, 先对变量进行 -1, 再使用这个变量
–: 如果在变量的后面, 先使用变量中的值, 再对变量 -1;
无论 – 在变量前面还是后面, 执行之后变量都会 -1;
口诀:
++ 在前, 先加后用,++ 在后, 先用后加
– 在前, 先减后用,– 在后, 先用后减
int q = 5, n = 10;
// s 5 - 10 + 6 + 10 = 11
// q 6 6 7 7
// n 10 9 9 10
int s= (q++) - (n--) + (q++) + (++n);
比较运算符
1. 用于比较两个数据的关系, 比较大小, 比较是否相等, 比较运算符的运行结果是 boolean 类型,
只有 true 和 false 两个结果
2. 分类: >, <, >=, <= 比较数值大小
==: 判断连个数据是否相等
!=: 判断两个数据是否不相等
逻辑运算符
1. 用来判断逻辑是否成立的运算符, 如果逻辑成立, 返回 true, 如果不成立, 返回 false, 返回的数据类型是 boolean 类型
逻辑运算符两边必须是返回真或假的表达式
2. 逻辑运算符的分类
- &&: 与运算符 两边同时为真则为真, 有一边为假则为假
true && true true
true && false false
false && true false
false && false false
- ||: 或运算符 两边同时为假则为假, 有一边为真则为真
true || true true
true || false true
false || true true
false || false false
- !: 逻辑非 非真即假, 非假即真
!true false
!false true
- ^: 逻辑异或 两边数据相同, 返回假, 不同返回真
true ^ true false
true ^ false true
false ^ true true
false ^ false false
小技巧:
1. 为了提高执行效率, 习惯把容易为假的条件放到 && 运算符的前面. 只要前面为假, 后面就不参与运算.
2. 为了提供效率, 把容易为真条件放在 || 运算符的前面, 只要前面为真后面的表达式就不参与运算.
位运算符
1. 对于数据进行内存中运算, 让数据往左或者是往移位.
左移 1 位, 数据整体扩大 2 倍,
右移 1 位, 数据整体缩小 2 倍;
2. 位运算符分类:
<< 数字 : 左移运算符, 数字是几, 代表要往左移动几位
, 就相当于往左移动几位, 就相当于乘以 2 的几次方
‘>>’数字: 右移运算符, 数字是几, 代表要往右移动几位, 就相当于往右移动几位, 就相当于除以 2 的几次方
‘>>>’数字 : 无符号右移运算符, 只能操作正数. 数字是几, 代表要往右移动几位, 就相当于往右移动几位, 就相当于除以 2 的几次方
代码示例:
int a = 8;
System.out.println(a << 2); //32
int b = -16;
System.out.println(b >> 1); //-8
int c = -16;
System.out.println(c >>> 1);//2147483640
三元运算符
1. 元: 表示操作数据的个数或者操作的表达式的个数
2. 三运算符: 能操作三个数据或者三个表达式
3. 格式: 表达式 1 ? 表达式 2 : 表达式 3;
4. 说明
表达式 1: 必须是返回真或假的表达式, 返回 boolean 数据类型
表达式 2 和表达式 3 返回任意数据类型都行
5. 执行原理:
1. 表达式 1 为真, 把冒号前表达式 2 的结果, 当做整个三元运算符的返回的结果
2. 表达式 1 为假, 把冒号后表达式 3 的结果, 当做整个三元运算符的返回的结果
公众号 全战开花
获取更多技术干货