文章目录
Java基础
快捷键
修改类名 快捷键: shift + F6
删除一行:ctrl + y
交换行:ctrl + shift + 上下
格式化/对其:ctrl + alt + l
多行注释:ctrl + shift + /
补全:alt + enter
把一段代码抽取成一个方法:ctrl + alt + m
关键字
保留字
const
goto
标识符
标识符不能以数字开头,也不能是Java中的关键字,不能包含空格。
命名规范
- 包名所有字母一律小写(多级包名用
“.”
隔开) - 类和接口每个单词的首字母大写。 eg:Student
- 常量名所有字母都大写,单词之间用下划线连接。eg:STUDENT_MAX_AGE
- 变量名和方法名的第一单词字母小写,从第二个单词开始每个首字母大写(驼峰命名法)。eg:userName
注释
单行注释
多行注释
文档注释
/**
*
*文档注释
*
/
Java中对于文档注释的写法,提供了明确的规范,即Javadoc规范
符合Javadoc规范的文档注释可以使用javadoc指令,输出对应的说明文档
javadoc -encoding utf-8 Xxx.java
String
是类名,指简单类名
String
的全类名是java.lang.String(含包名)
数据类型
8种基本数据类型
byte、short、int、long、float、double、char、boolean
引用数据类型
class、interface、数组、enum、Annotation
变量与常量
字面值常量
整数常量、小数常量、字符常量、字符串常量、空常量(null)
自定义常量
final(如果它修饰一个变量的话,它就表示一个常量)
局部变量
局部位置:类体中的{}
里面是局部位置
- 在方法体
- 在代码块中
{}
- 类体的
{}
不算
局部变量只在{}
生效,出了{}
就不生效了
局部变量的使用:
- 声明:
数据类型 变量名;
- 初始化:使用
=
赋值符号,对变量进行赋值的过程
注意事项
- java当中的整数字面值常量,默认当作
int
处理 - 使用
long
类型的时候,结尾加上L
进行区分 - java中的小数字面值常量,默认当作
double
来处理 - 使用float类型的时候,结尾加上
F
/f
进行区分
变量的类型转换
自动类型转换
“自动”,编译器自行处理
适用于:小范围 —> 大范围的转换
强制类型转换
需要程序员在代码中显式处理
适用于:大范围 —> 小范围的转换
// 语法格式:(做强转需要慎重考虑再进行)
目标数据类型 变量名 = (目标数据类型)(被转换变量的变量名);
表达式提升
如果表达式中存在多种数据类型 变量 参与运算
结果 变量 会提升到“最大取值范围”的那个
byte
、short
、char
之间不相互转换,一旦发生运算,一律自动转换为`int``进行运算byte
、short
、char
中任何数据类型与int
进行计算,一旦发生运算,一律自动转换为int
进行运算byte
、short
、char
、int
中任何数据类型与long
进行计算,一旦发生运算,一律自动转换为long
进行运算byte
、short
、char
、int
、long
中任何数据类型与float
进行计算,一旦发生运算,一律自动转换为float
进行运算byte
、short
、char
、int
、long
、float
中任何数据类型与double
进行计算,一旦发生运算,一律自动转换为double
进行运算
运算符
表达式 vs 语句:
表达式一般是有确定的结果值
多数语句一般没有结果
算数运算符
“a++” vs “++a”:
a++:先取值后++
++a:先++后取值
赋值运算符
运算方向从右往左看,把右边的操作数(或计算后的结果)赋值给左边
比较运算符
基本数据类型和基本数据类型比较,引用数据类型和引用数据类型比较
String
比较内容还是用equals
方法
逻辑运算符
位运算符
>>
:右移除以2
<<
:左移乘以2
^
:异或运算符,满足交换律,可以做加密和解密,第一次^
加密,第二次^
解密
三目运算符
语法:
(条件表达式) ? 表达式1 : 表达式2;
// 如果true,执行表达式1
// 如果false,执行表达式2
运算符的优先级
Scanner
java.util
:util
这个包一般放的是工具类
// 调包
import Java.util.scanner;
// 创建Scanner对象
// 手动写
// 快捷键 .var
// 快捷键 alt + enter 自动补全
Scanner sc = new Scanner(System.in);
// 调用Scanner的方法
int num = sc.nextInt();
System.out.println("num: " + num);
// 输入文本的时候,使用nextLine()的方法
String s = sc.nextLine();
System.out.println("s: " + s);
关于nextInt()
方法现象:程序停住了,不往下执行了,这个方法称之为阻塞方法
String --> int类型
:
int i = Integer.parseInt(s);
Random
import java.util.Random;
// 生成随机数,借助Random
Random r = new Random();
// 得到随机数
// nextInt(int bound); ---> [0,bound)
int num = r.nextInt(bound:101);
转义字符
\n:换行
\r:回车
\t:跳到下一个TAB位置
\\:两个反斜杠表示一个反斜杠
\':代表一个单引号
\":代表一个双引号
流程控制
顺序结构
选择结构
if语句
:
1.
if(condition){
...
}
2.
if(condition){
...
}else{
...
}
3.
if(condition){
...
}else if(condition){
...
}else{
...
}
switch语句
switch(expression){
case val1:
statement1;
break;
case val2:
statement2;
break;
...
default:
statement;
break;
}
/*
expression:表示选择的条件或者依据,可以的数据类型:
1.byte
2.short
3.int
4.char
5.枚举类型(JDK5以后)
6.String(JDK7以后)
boolean不可以出现在expression中
要与val一致
switch记得加上`break`,若没有`break`,则会按顺序执行
*/
循环结构
for
while
:如果不满足循环体的条件是不会执行的
do while
:这种结构会先执行一次循环体语句
// 死循环的例子
for(;;){
// 循环体语句
}
while(true){
// 循环语句体
}
嵌套循环
break
在循环语句中,表示结束当前的循环,在嵌套循环中只能结束当前的那个循环
如果想结束外面的循环可以使用label
标签的方式
label1:for(){
label2:for(){
label3:for(){
break label1;
}
}
}
continue
只能在循环中使用,在循环表示结束当前次的循环,转而继续执行后面的循环。
return
- 结束方法
{
return;// 后面语句就无效了
}
- 在方法中表示返回值