java
java基础程序设计
关键字
-
关键字中所有字母都是小写
java保留字,当前版本未使用,以后可能会作为关键字使用,goto、const
标识符(Identifier)
- Java中对各种变量、方法和类等要素命名时使用的字符序列称为标识符
- 定义合法标识符规则:
- 由 26 个英文字母大小写,0-9,_或$ 组成
- 数字不可以开头。
- 标识符不能包含空格。
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- Java 中严格区分大小写,长度无限制。
数据类型
变量在类中声明的位置:
成员变量vs局部变量
自动类型提升
- 当容量小的数据类型和容量大的数据类型做运算时,结果会自动提升为容量大的类型
byte–>short–>int–>long–>float–>double
char–>int–>long–>float–>double
当byte short char 做运算,都用int类型接收
强制类型转换
- 自动类型提升运算的逆运算
package main.foundation;
public class day01 {
public static void main(String[] args) {
double i1 = 13.9;
int m = (int) i1;
System.out.println(m);
}
}
String
- String类型是引用数据类型,字符串
- String可以和八种基本数据类型做运算,运算只能是连接运算 +
运算符
先运算后取值还是先取值后运算都是针对变量本身,例如a++,其针对的变量是a
赋值运算符
package main.foundation.day01;
public class day01_03 {
public static void main(String[] args) {
short h =6;
h+=2;//不改变变量本身的数据类型
System.out.println(getType(h));
}
public static String getType(Object obj) {
return obj.getClass().toString();
}
}
比较运算符
逻辑运算符
位运算符
把数字从十进制转换为二进制,进行左移和右移
三元运算符
-
条件表达式的结果为boolean类型
-
根据条件表达式真或假,决定执行表达式1或表达式2,如果表达式为true,则执行表达式1.如果表达式为false,则执行表达式2
-
三元运算符可以嵌套
package main.foundation.day01;
public class day01_04 {
public static void main(String[] args) {
// int m =4;
// int n=5;
// int max;
// max=(m>n)?m:n;
// System.out.println(max);
int m=12;
int n=12;
int max;
System.out.println((m>n)?"m big":((m == n)?"same":"n big"));
}
}
运算符的优先级
流程控制
if-else
package main.foundation.day01;
import java.util.Scanner;
public class day01_05 {
public static void main(String[] args) {
Scanner score = new Scanner(System.in);
System.out.println("岳云鹏成绩");
int m=score.nextInt();
if(m == 100){
System.out.println("奖励一台Tesla");
} else if (99 >= m &&80<m ) {
System.out.println("一台iphone");
}else if (80 >=m&&m>=60){
System.out.println("一台ipad");
}else {
System.out.println("nothing");
}
}
}
Switch- case
语法:switch(表达式) {
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
•表达式:(将要匹配的值)取值为byte、short、int、char, JDK5以 后可以是枚举,JDK7以后可以是String
表达式类型有:
整型:byte、short、int
字符:char
字符串:String
枚举
*case:后面跟的是要和表达式进行比较的值(被匹配的值)
*break:表示中断,结束的意思,用来结束switch语句(break不写的话会一直执行下去直到遇到break)
*default:表示所有情况都不匹配的时候,就执行该处的内容,和if语 句的else相似。
While
条件1
While(条件2){
条件3;
条件4;
}
注意:写while循环千万不要丢掉条件四
break,continue关键字的使用
break:switch-case和循环结构中使用 结束当前循环
continue:循环结构中 结束当次循环
相同点:关键字后面都不可以有执行语句
数组
- 数组(Array),是多个相同类型的数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
- 数组属于引用数据类型
- 数组分类
按照维数:一维数组,二维数组 …
按照数组元素的类型:基本数据类型元素的数组,引用数据元素的数组
静态初始化
int[] nums = new int[]{12,13,14,5,6};
动态初始化
String[] nusm = new String[5];
//调用数组的指定元素:通过角标的方式调用
//数组的角标(或索引)从0开始的,到数组的长度-1结束
//数组元素的默认初始化值
> 数组元素是整形 0
> 数组元素是浮点型 0.0
> 数组元素是char型
> 数组元素是boolean:false
> 数组元素是引用数据类型:null
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ULKEy92Z-1665575002788)(D:\Typora markdown\picgo picture\image-20221012110953865.png)]
二维数组
- 一维数组array1作为另一个一维数组array2的元素存在,其实从数组的底层运行机制来看,并没有多维数组
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gzsAOmI5-1665575002789)(D:\Typora markdown\picgo picture\image-20221012191743928.png)]
Arrays工具类的使用
数组常见异常
-
数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
-
空指针异常:NullPointerException