Java基础语法
文章目录
数据类型
-
基本数据类型
-
数值型
-
整数型
- byte short int [默认] long
-
浮点型
- float double[默认]
-
字符型
- char
-
-
非数值型
-
布尔型
- blooean
-
-
-
引用数据类型[reference type]
- 类(class)
- 接口(interface)
- 数组[]
变量
-
格式
-
数据类型 变量名 = 数据;【最常用】
-
数据类型 变量名;
-
赋值;
-
数据类型 变量名1 = 数据,变量名2 = 数据;【不推荐】
-
-
注意事项
- 1、同一{}内,变量名不能重复
- 2、使用前,必须初始化
- 3、定义long,须在整数后加 l / L
- 4、定义float,小数后加 f / F
标识符
-
组成规则
- 1、由字母、数字、下划线、美元符号构成
- 2、第一个不能是数字
- 3、不能用Java中的关键字
- 4、大小写敏感【区分大小写】
-
命名约定
-
大驼峰
- 类
-
小驼峰
- 变量名、方法名
-
运算符[6+1]
运算符 | 符 | 补充 |
---|---|---|
算数运算符 | +、-、*、/、% | |
赋值运算符 | = 、 += 、 -= 、 *= 、 /= 、 %= | 底层蕴含强制转换 |
自增自减运算符 | ++a,a++, --a, a– | sout(++a)和sout(a++)不一样 |
关系运算符 | ==、!= 、>、>= 、< 、<= | 结果:boolean类型 |
逻辑运算符 | & 、| 、^ 、! | |
短路逻辑运算符 | &&、|| | 属于逻辑运算符 |
三元运算符 | (关系表达式)?表达式1:表达式2; |
流程控制语句
1、顺序结构
2、分支结构/选择结构
2.1 if
if(关系表达式){
语句体;
}else if{
语句体;
}……{
语句体
}else{
语句体
}
2.2 switch
switch(表达式){
case 1 :
语句体1;
break;
case 2:
……
default:
语句体n+1;
[break;]
}
2.3 if语句与switch的区别
- 从使用效率角度:在对同一个变量的不同值做条件判断时,使用switch语句效率更高,尤其是判断的分支越多越明显。
- 从语句的实用性角度:switch语句不如if语句,if语句是应用最广泛和最实用的语句
3、循环结构
3.1 for循环
//先判断后执行
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
3.2 while循环
//一、while 先判断后执行
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
//二、do while 先执行一次后判断
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
4、死循环与退出循环
4.1 死循环
- for( ; ; ){}
- while(true){}
- do{}while(true);
4.2 结束循环
-
break:结束循环
-
continue:跳过当前循环/终止本次循环
-
退出多层循环嵌套
-
1、使用标号和break
-
2、在外层循环中添加 标识符
-
例:退出二层循环
- 开始时 Loop: 外层循环
- 结束时 break Loop;
-
数组
数组
-
声明方式
数据类型[] 数组名称; 数据类型 数组名称[];
-
数组格式
-
静态初始化
//完整格式 数据类型[] 对象名 = new 数据类型[] {元素1,2,3……}; //简化格式 数据类型[] 对象名 = {元素1,2,3……};
-
动态初始化
数据类型[] 对象名 = new 数据类型[数组长度]
-
-
索引的特征
- 1、从0开始
- 2、是连续的
- 3、逐一增加的,每次加1
-
内存分配
- 局部变量------>栈内存
- new出来的------->堆内存
-
常见问题
- 索引越界异常[Array Index Out Of Bounds Exception]
- 空指针异常[Null Pointer Exception]
二维数组
-
声明方式
数据类型[][] 数据名称; 数据类型 数据名称[][];
-
初始化
- 静态初始化
//完整格式 数据类型[][] 数组名称= new 数据类型[][]{{第一行元素},{第二行元素}……}; //简化格式 数据类型[][] 数组名称= {{第一行元素},{第二行元素}……};
- 动态初始化
数据类型[][] 数组名称=new 数据类型[行数][列数]; //仅声明 行数 可行 //仅声明 列数 不可行
多维数组
比一维数组高的都是多维数组,包括二维数组。
一般三维、四维也不用数组表示,用List、Map集合来存储
方法
1、概述
- 概念:将具有独立功能的代码块组织成为一个整体,使其成为具有特殊功能的代码集。
- 方法定义:方法必须先创建后使用,这个过程叫方法定义
- 明确返回值类型和参数列表
- 方法调用:方法在创建后需要手动调用才执行,这个过程叫方法调用
- 调用时,参数列表保持一致
2、方法定义与方法调用
2.1 方法定义
-
//无参方法 public static void 方法名(){方法体}; //带参方法 public static void 方法名(参数){方法体};
-
//带返回值 public static 返回值类型 方法名(参数){ return 数据;//return结束方法 } //无返回值 public static void 方法名(参数){方法体}
2.2 方法调用
方法名(参数);
数据类型 变量名 = 方法名(参数);
对象.方法名(参数);
2.3 注意事项*
- 方法不能套方法。
- void 表示无返回值,return可不写可单写。
2.4 方法的通用格式
public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
2.5 方法重载
概念:同一个类中定义多种方法之间的关系。
2.5.1 互相重载的前提:
- 多个方法在同一个类中
- 多个方法拥有相同的方法名
- 多个方法参数不同(类型 / 数量)
注意:
- 方法重载仅针对“方法定义”,与“方法调用”无关。
- 重载仅识别同一个类中的方法的名称和参数,与返回值无关。
2.6 方法参数传递
基本数据类型:形参改变 实参不变
引用数据类型:形参改变 实参改变