Java 基础语法

一、标识符

凡是自己明明的地方都叫标识符。例如:包名、类名、接口名、方法名、变量名、常量名
注意点: 在起名字时,为了提高阅读性,要尽量意义,“见名知意”。
关键字:被 Java 赋予了特殊含义的单词
在这里插入图片描述
在这里插入图片描述
保留字:现Java版本尚未使用,但以后版本可能会作为关键字使用。
具体哪些保留字:goto 、const
注意:自己命名标识符时要避免使用这些保留字

1、命名的规则(必须遵守,若不遵守编译不能通过)

①只能有字母 a-z A-Z 数字 0-9 特殊字符 “_” 下划线 和 “$” 美元符

②数字不能开头

③名字之间不能有空格

④不能使用关键字和保留字,但是可以包含关键字和保留字

⑤Java 严格区分大小写,但是长度无限制

2、命名的规范(可以不遵守,但是会受到鄙视)

①包名:所有字母都小写。 如: xxxyyyzzz

②类名、接口名:若有多个单词组成,每个单词首字母都大写。 如:XxxYyyZzz

③方法名、变量名:若有多个单词组成,第一个单词首字母小写,其余单词首字母都大写。 如:xxxYyyZzz

④常量名:所有字母都大写,每个单词之间以 “_” 隔开。 如:XXX_YYY_ZZZ

二、变量

保存数据

变量:局部变量 & 成员变量

1、变量的格式

数据类型 变量名 = 值;

如: int var = 10;

//声明一个变量

int var;

//为变量赋值

var = 10;

2、变量的概念

①在内存中开辟一块内存空间

②该空间有类型(数据类型)有名称(变量名)

③变量可以在指定的范围内不断的变化

3、变量的注意

①在同一个作用范围内变量名不能重复

②作用域:变量作用在所属的那对 {} 内

③局部变量在使用前必须赋值

④先声明,后使用

三、进制之间的转换(了解)

在这里插入图片描述
在这里插入图片描述

四、变量的数据类型

1、基本数据类型

在这里插入图片描述

​ 整型:byte(8位) short(16位) int(32位)-默认类型 long(64位)

​ 浮点型:float(32位) double(64位)-默认类型

​ 字符型:char(16位-2个字节)

​ 布尔型:boolean

2、引用数据类型

​ |–类(class) ------------------- String

​ |–接口(interface)

​ |–数组([])

3、声明变量的注意

①声明 long 型变量,值后必须加 L 或 l 。 如:long l1 = 1234345784L;

②声明 float 型变量,值后必须加 F 或 f 。 如:float f1 = 15.6F;

③声明 double 型变量,值后可以加 D 或 d 。如:double d1 = 15.6; double d2 = 15.6D;

④声明 char 型变量,值必须使用单引号,char 型变量只能存储单个字符。

​ char 型变量使用 Unicode 编码存储(ASCII、中文、日文、特殊字符)

​ 如:

​ char c1 = ‘A’;

​ char c2 = ‘中’;

​ char c3 = ‘$’;

​ char c4 = ‘\uC499’;

⑤声明 String 型变量,值必须使用双引号。 如: String str = “我大尚硅谷威武!”;

五、数据类型之间的转换

自动类型转换(自动升级)

小容量转大容量。系统自动完成

如:

​ byte b = 123;

​ int i = b; //自动类型转换

①byte short char ----> int ----> long ----> float ----> double

②byte short char 三者之间不做运算,若运算都将提升成 int 再做运算

③boolean 不参与运算

④任何基本数据类型与 String 使用 连接符 + , 都将自动串接成 String

强制类型转换

大容量转小容量。需要使用强转符 “(需要转换的类型)”,可能损失精度。

如:

​ int a = 130;

​ byte b = (byte)a;

六、运算符

算数运算符

+  -   +  -   *   /  %   ()++   ()++  ()-- ()--  +(连接符)
//除法
System.out.println(1234 / 1000 * 1000); //1000

//取模(求余)
System.out.println(10 % 5);

//++运算符
int a = 10;
//前++
System.out.println(++a);//11

//后++
System.out.println(a++);//11
System.out.println(a);//12

【面试题】

int a = 10;

a = a++;

System.out.println(a);//10

赋值运算符

=  +=  -=   *=  /=   %=
int a = 10;
a += 10; //a = a + 10;

【面试题】

short s = 1;

s = s + 1; //编译? NO

s += 1; //s = (short)(s + 1)编译? YES

比较运算符(关系运算符)

比较运算符运算结果都为 boolean

==   !=  >  <   >=   <=
int a = 10;
int b = 20;
boolean boo = a == b;

逻辑运算符

逻辑运算符结果都为 boolean

&& (短路与) || (短路或)  !(逻辑非)   &(逻辑与)  |(逻辑或) ^(逻辑异或)
//需求:判断一个数是不是大于10小于20
int a = 10;

//错误的做法
//boolean boo = 10 < a < 20;

//逻辑运算符
boolean boo = a > 10 && a++ < 20;

System.out.println(a);//10

【面试题】&& 和 & 的区别?

&& : 短路与,当 && 左边表达式结果为 false 时,右边表达式将不再计算

&:是位运算符,当用于逻辑运算时,无论左边表达式结果为 true 还是 false ,右边都计算

|| 和 | 的区别?

位运算符

~  &  |  ^   <<  >>  >>>  注意:没有 <<<

三元运算符(三目运算符)

格式:
条件表达式 ? 表达式1 : 表达式2;

①条件表达式结果为 true 时,执行表达式1,否则执行表达式2

②表达式1与表达式2结果的类型需要保持一致!

int a = 10;
int b = 20;
int max = a > b ? a : b;

一、流程控制

顺序结构

Java 程序的运行时顺序执行

分支结构

条件判断

​ ①

​ if(条件表达式){

​ //若条件表达式结果为 true 时,需要执行的语句

​ }

​ ②

​ if(条件表达式){

​ //若条件表达式结果为 true 时,需要执行的语句

​ }else{

​ //若条件表达式结果为 false 时,需要执行的语句

​ }

​ ③

​ if(条件表达式1){

​ //若条件表达式1 结果为 true 时,需要执行的语句

​ }else if(条件表达式2){

​ //若条件表达式2 结果为 true 时,需要执行的语句

​ }else if(条件表达式3){

​ //若条件表达式3 结果为 true 时,需要执行的语句

​ }

​ ……

​ else{

​ //若上述条件表达式结果都为 false 时,需要执行的语句

​ }

​ 注意:

​ ①若某个条件表达式结果为 true ,执行相应语句,其他 else if 不再执行

​ ②if-else 语句可以嵌套的

​ 选择结构

结果为 true 时,需要执行的语句

​ }

​ ②

​ if(条件表达式){

​ //若条件表达式结果为 true 时,需要执行的语句

​ }else{

​ //若条件表达式结果为 false 时,需要执行的语句

​ }

​ ③

​ if(条件表达式1){

​ //若条件表达式1 结果为 true 时,需要执行的语句

​ }else if(条件表达式2){

​ //若条件表达式2 结果为 true 时,需要执行的语句

​ }else if(条件表达式3){

​ //若条件表达式3 结果为 true 时,需要执行的语句

​ }

​ ……

​ else{

​ //若上述条件表达式结果都为 false 时,需要执行的语句

​ }

​ 注意:

​ ①若某个条件表达式结果为 true ,执行相应语句,其他 else if 不再执行

​ ②if-else 语句可以嵌套的

​ 选择结构

switch-case选择结构
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;

default:
执行语句n;
//break;
}
2.说明:
① 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构
末尾结束为止。
② break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
③ switch结构中的表达式,只能是如下的6种数据类型之一:
byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
④ case 之后只能声明常量。不能声明范围。
⑤ break关键字是可选的。
⑥ default:相当于if-else结构中的else.
default结构是可选的,而且位置是灵活的。
3.如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
4.break在switch-case中是可选的

循环结构

重复的执行某语句

①初始化值

②循环条件

③迭代条件

④循环体

for 循环:

for( ①; ② ; ③){

​ ④

}

执行流程:①②④③②……②

while 循环:

while(②){

​ ④

​ ③

}

do-while 循环:

do{

​ ④

​ ③

}while(②);

while 和 do-while 的区别?

while : 先判断循环条件,再执行循环体

do-while :先执行循环体,再判断循环条件,do-while 至少执行一次

嵌套循环

一个循环充当另一个循环的循环体

/*
1—100之间的所有质数:除了1和其本身,不能被其他自然数整除的数

*/
class PrimeNumber {
	public static void main(String[] args) {
		boolean flag = true;

		for(int i = 2; i <= 100; i++){
			for(int j = 2; j < i; j++){
				
				if(i % j == 0){
					//该数一定不是质数
					flag = false;
                    break;
				}
			}

			//可以确定 i 是否是质数,是质数打印。
			if(flag){
				System.out.println(i);
			}

			flag = true;
		}

	}
}

二、特殊流程控制语句

break :用于结束“当前”循环。可以使用在 switch-case 语句中,用于结束当前 switch-case 语句

continue :用于结束“当次”循环。

for(int i = 0; i <= 10; i++){
    if(i == 3){
        //break;
        continue;
    }
    System.out.println(i);
}
label:for(int i = 0; i <= 10; i++){
    for(int j = 0; j <= 10; j++){
        if(j == 3){
            //break label;
            continue label;
        }
    }
}
label:{//continue 不支持结束代码块
    for(int i = 0; i <= 10; i++){
        for(int j = 0; j <= 10; j++){
            if(j == 3){
                break label;
            }
        }
    }
    
    System.out.println("Hello Break!");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值