JavaSE部分复习(一)
前言
计划用 两三天的时间 重新回顾一下javase部分的知识,是第一次写技术博客,也是第一次使用markdown编辑写作。萌新胡乱写写,欢迎指正错误和共同学习。后续会一直保持更新,加油!
一、JavaSE基础知识
1. 输出
system.out.println("hello world");
2. 命名规则
关键字
java中所有关键字都是小写,比如class,interface
包
全部小写,多级包用点隔开。
com.cn.xiaohan
类
一个单词首字母大写 Student,Car
多个单词,每个单词首字母大写 HelloWorld
变量或者方法
一个单词首字母小写。 age,show()
多个单词,从第二个单词开始每个单词首字母大写 maxAge,getAge()
- 变量定义的注意事项:
变量未赋值,不能使用,定义即赋值。尽量不要一行定义多个变量。
3. 数据类型
整数的默认类型是int,若定义成long,需要在后面加上L;浮点的默认类型是double,若定义成float,需要在后面加上F。
4. 关系运算符
==, != ,> , >= , < ,<=
关系运算符的结果都是boolean型,也就是要么是true,要么是false。
5. 逻辑运算符
在Java中不可以写成3<x<6,应该写成x>3 && x<6 。
6. 三元运算符
(关系表达式)?表达式1:表达式2;
获取两个数中大数:
int x=3,y=4,z;
z = (x>y)?x:y;
7. 键盘录入(Scanner)
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int x = sc.nextInt();
8. 流程控制语言
(1)if语句
- 第一种格式:
if(关系表达式) {
语句体
}
执行流程:
如果是true就执行语句体,如果是false就不执行语句体
- 第二种格式:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
执行流程:如果是true就执行语句体1,如果是false就执行语句体2
- 第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
(2)switch语句
格式:
switch(表达式) {
case 值1:语句体1;
break;
case 值2:语句体2;
break;
…
default: 语句体n+1;
break;
}
(3)for循环
(4)while循环语句格式:
基本格式
while(判断条件语句) {
循环体语句;
}
改版格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
(5)do…while循环
(6)break和continue
-
break的使用场景:在选择结构switch语句中;在循环语句中
break的作用:跳出单层循环;直接结束当前循环 -
continue的使用场景: 循环语句中
continue的作用: 结束一次循环,继续下一次的循环
9. 随机数(Random)
//创建对象
Random r = new Random()
//获取随机数
int number = r.nextInt(10); //产生的数据在0到10之间,包括0,不包括10
如何获取一个2-26的随机数?
int number=r.nextInt(25)+2;
10. 数组
数组必须先初始化,然后才能使用。
//数组的初始化:
int[] arr = new int[3];
//解释:定义一个int类型的数组,可存放3个int类型的值
int[] arr = {1,2,3};
//解释:定义一个int类型的数组,可存放3个int类型的值,并且值分别是1,2,3
获取数组长度:数组名.length
int [] array=new int[5];
int a=array.length; //length 是属性
11. 二维数组
//初始化
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
二维数组的遍历
int[][] arr = {{1,2,3,5,6},{4,5,6,5,4},{7,8,8,9}};
System.out.println(arr.length);
//二维数组一个项,对应一个一维数组
for(int i=0;i<arr.length;i++) {
for(int m=0;m<arr[i].length;m++) {
System.out.print(arr[i][m]+" ");
}
}
12. 方法(函数)
- 创建一个方法
public static void main(){};
public int sum(int a,int b){
return a+b;
};
- 调用方法:推荐赋值调用
int s = sum(10, 20);
注意:void类型方法的调用只能单独调用
- 方法重载
在同一个类中,出现了方法名相同的方法,这就是方法重载。 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法。
方法重载特点:
方法名相同,参数列表不同。与返回值无关。
参数列表不同:参数的个数不同 ; 参数对应的类型不同
- 方法中参数传递
方法的形式参数是基本类型(整数int等、浮点数double等、字符char、布尔数boolean):形式参数的改变不影响实际参数。
public class ArgsDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:" + a + ",b:" + b);
// a:10,b:20
change(a, b);
System.out.println("a:" + a + ",b:" + b);
// a:10,b:20
}
public static void change(int a, int b) {
// a=10,b=20
System.out.println("a:" + a + ",b:" + b);
// a:10,b:20
a = b; // a=20;
b = a + b;// b=40;
System.out.println("a:" + a + ",b:" + b);
// a:20,b:40
}
}
方法的形式参数为引用数据类型(类class、接口interface,数组[ ]): 形式参数的改变直接影响实际参数
public class ArgsDemo2 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
System.out.println("----------------");
change(arr);
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
}
public static void change(int[] arr) {
for (int x = 0; x < arr.length; x++) {
// 如果元素是偶数,值就变为以前的2倍
if (arr[x] % 2 == 0) {
arr[x] *= 2;
}
}
}
}