01_Java基础

Java基础

快捷键

修改类名 快捷键: shift + F6

删除一行:ctrl + y

交换行:ctrl + shift + 上下

格式化/对其:ctrl + alt + l

多行注释:ctrl + shift + /

补全:alt + enter

把一段代码抽取成一个方法:ctrl + alt + m

关键字

保留字

const
goto

标识符

标识符不能以数字开头,也不能是Java中的关键字,不能包含空格。

命名规范

  1. 包名所有字母一律小写(多级包名用“.”隔开)
  2. 类和接口每个单词的首字母大写。 eg:Student
  3. 常量名所有字母都大写,单词之间用下划线连接。eg:STUDENT_MAX_AGE
  4. 变量名和方法名的第一单词字母小写,从第二个单词开始每个首字母大写(驼峰命名法)。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(如果它修饰一个变量的话,它就表示一个常量)

局部变量

局部位置:类体中的{}里面是局部位置

  1. 在方法体
  2. 在代码块中{}
  3. 类体的{}不算

局部变量只在{}生效,出了{}就不生效了

局部变量的使用:

  1. 声明:数据类型 变量名;
  2. 初始化:使用=赋值符号,对变量进行赋值的过程

注意事项

  1. java当中的整数字面值常量,默认当作int处理
  2. 使用long类型的时候,结尾加上L进行区分
  3. java中的小数字面值常量,默认当作double来处理
  4. 使用float类型的时候,结尾加上F/f进行区分

变量的类型转换

自动类型转换

“自动”,编译器自行处理
适用于:小范围 —> 大范围的转换

强制类型转换

需要程序员在代码中显式处理
适用于:大范围 —> 小范围的转换

// 语法格式:(做强转需要慎重考虑再进行)
目标数据类型 变量名 = (目标数据类型)(被转换变量的变量名);

表达式提升

如果表达式中存在多种数据类型 变量 参与运算
结果 变量 会提升到“最大取值范围”的那个

  1. byteshortchar之间不相互转换,一旦发生运算,一律自动转换为`int``进行运算
  2. byteshortchar中任何数据类型与int进行计算,一旦发生运算,一律自动转换为int进行运算
  3. byteshortcharint中任何数据类型与long进行计算,一旦发生运算,一律自动转换为long进行运算
  4. byteshortcharintlong中任何数据类型与float进行计算,一旦发生运算,一律自动转换为float进行运算
  5. byteshortcharintlongfloat中任何数据类型与double进行计算,一旦发生运算,一律自动转换为double进行运算

运算符

表达式 vs 语句:
表达式一般是有确定的结果值
多数语句一般没有结果

算数运算符

“a++” vs “++a”:
a++:先取值后++
++a:先++后取值

赋值运算符

运算方向从右往左看,把右边的操作数(或计算后的结果)赋值给左边

比较运算符

基本数据类型和基本数据类型比较,引用数据类型和引用数据类型比较
String比较内容还是用equals方法

逻辑运算符

位运算符

>> :右移除以2
<< :左移乘以2
^:异或运算符,满足交换律,可以做加密和解密,第一次^加密,第二次^解密

三目运算符

语法:

(条件表达式) ? 表达式1 : 表达式2; 
// 如果true,执行表达式1
// 如果false,执行表达式2

运算符的优先级

Scanner

java.utilutil这个包一般放的是工具类

// 调包
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(;;){
	// 循环体语句
}

whiletrue{
	// 循环语句体
}

嵌套循环

break

在循环语句中,表示结束当前的循环,在嵌套循环中只能结束当前的那个循环
如果想结束外面的循环可以使用label标签的方式

label1:for(){
	label2:for(){
		label3:for(){
			break label1;
		}
	}
}

continue

只能在循环中使用,在循环表示结束当前次的循环,转而继续执行后面的循环。

return

  1. 结束方法
{
	return;// 后面语句就无效了
}
  1. 在方法中表示返回值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coo1heisenberg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值