java复习day1
- idea编写java快捷键
- 1.基础语法
- 1.1注释
- 1.2关键字
- 1.3常量(java**单引号和双引号含义不同**)
- 1.4数据类型
- 1.5变量
- 1.6标识符
- 1.7类型转换
- 1.7.1自动类型转换
- 1.7.2强制类型转换
- 2.运算符
- 2.1算数运算符
- 2.1.1字符的+操作
- 2.1.2字符串+操作
- 2.2 赋值运算符
- 2.2.1赋值运算符
- 2.3自增自减运算符
- 2.4关系运算符
- 2.5逻辑运算符
- 2.5.1 逻辑运算符
- 2.5.2 短路逻辑运算符
- 2.6 三元运算符
- 3.数据输入
- 3.1 Scanner的使用
- 3.1.1 eg:三个和尚比身高(Scanner和三元运算符)
- 4.流程控制语句
- 4.1 流程控制
- 4.2 分支结构
- 4.2.1 if语句体
- 1. if语句
- 2. if else语句
- 案例:奇偶数判断
- 3. else if 语句
- 案例:星期几?
- 4.2.2 switch语句
- 案例1:星期几?
- 4.3 循环结构
- 4.3.1 for循环
- 案例:水仙花
- 4.3.2 while语句
- 4.3.3 do...while语句
- 4.3.4 三个循环的区别
- 4.3.5 循环跳转控制语句
- 4.4 循环嵌套
- 4.5 Random随机数
- 5.数组
- 5.1数组定义
- 5.2数组初始化
- 5.2.1 数组动态初始化
- 5.2.2 数组静态初始化
- 5.3数组元素访问
- 5.4数组内存分配
- 5.4数组常见操作
- 5.4.1遍历
- 6.方法(未完)
idea编写java快捷键
- 快速生成main方法:psvm,回车
- 快速生成输出语句:sout,回车
- 内容提示:ctrl+alt+space
- 单行注释:ctrl+/
- 多行注释:选中,ctrl+shift+/
- 格式化:ctrl+alt+L
1.基础语法
1.1注释
单行注释://注释信息
多行注释:/* 注释信息*/
1.2关键字
java赋予特定的含义的单词,关键字字母全部小写,常用的编译器中,一般有颜色;
1.3常量(java单引号和双引号含义不同)
“kkk”——字符串常量
‘k’ ——— 字符常量
1.4数据类型
1.5变量
eg:int a = 10
注意1:定义long数据类型为了防止超量,在赋值的数字后面加上L
eg: int long = 10000000000L
注意2:浮点数默认是double类型,定义变量和赋值时候,小数后加上F
eg: float f = 1.14F
1.6标识符
6.1由数字、字母、下划线和美元符组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
6.2 常见命名规定:
- 大驼峰命名法:类
一个单词,首字母大写:Student
多个单词,每个单词首字母大写:GoodStudent - 小驼峰命名法:方法,变量
一个单词,首字母小写:name
多个单词,第一个小写,其余大写:firstNameGood
1.7类型转换
1.7.1自动类型转换
把小范围的数值和变量赋值给大范围的数据(小➡大)
1.7.2强制类型转换
把大范围的数值和变量赋值给小范围的数据(大➡小)
eg:int k = (int)88.88 加个括号强制转换
2.运算符
2.1算数运算符
用运算符把常量或者变量连接起来符合java语法的表达式
- 加号 +
- 减 -
- 乘 *
- 除 /
- 取余 %
2.1.1字符的+操作
- A的值时65 a的值时97 字符0的值是48
注意:算术表达式中包含多个数据类型时候,整个算数表达式类型自动提升
2.1.2字符串+操作
- eg:“wts”+666 结果为"wts666"
- eg:1+99+“wts"结果为"100wts”
字符串连接,多个加号,从左到右逐个执行
2.2 赋值运算符
2.2.1赋值运算符
- +=
- -=
- *=
- /=
- %=
2.3自增自减运算符
j=i++ 先把i赋值给j,i再+1
j=++i 先把i+1,再把结果赋值给j
2.4关系运算符
2.5逻辑运算符
2.5.1 逻辑运算符
- & 逻辑与: a&b,a和b都是true,结果为true,否则为false
- | 逻辑或: a|b,a和b都是false,结果为false,否则为true
- ^ 逻辑异或:a^b,a和b结果不相同为true,否则为false
- ! 逻辑非:!a,结果和a相反
2.5.2 短路逻辑运算符
&& 短路与:作用和&一样,但是又短路效果
&,无论左边真假,右边都要执行
&&,左边为假,不执行右边;左边为真,执行右边||短路或:作用和 | 一样,但是又短路效果
|,无论左边真假,右边都要执行
||,左边为真,不用执行右边总结短路逻辑:根据左边满足或者不满足,再结合右边判断
2.6 三元运算符
a>b?a:b
判断依据:先计算a>b的值,如果true,取a;反之,取b。
可以用来判断较大的值
3.1 Scanner的使用
import java.util.Scanner;
public class helloworld {
public static void main(String[] arge) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
int x = sc.nextInt();
//输出数据
System.out.println("x:"+x);
}
}
3.1.1 eg:三个和尚比身高(Scanner和三元运算符)
import java.util.Scanner;
public class helloworld {
public static void main(String[] arge) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收三个和尚的身高数据
System.out.println("输入第1个和尚的身高:");
int x1 = sc.nextInt();
System.out.println("输入第2个和尚的身高:");
int x2 = sc.nextInt();
System.out.println("输入第3个和尚的身高:");
int x3 = sc.nextInt();
//零时身高变量保存,逐个比较,得出最大值
int heighttemp = x1>x2?x1:x2;
int maxheight = heighttemp > x3 ? heighttemp : x3;
//输出结果
System.out.println("最高的和尚身高:"+maxheight+"cm");
}
}
4.1 流程控制
分类:
- 顺序结构(先后顺序)
- 分支结构(if,switch)
- 循环结构(for,while,do…while)
4.2 分支结构
4.2.1 if语句体
1. if语句
格式:
if(关系表达式){
语句体;
}
2. if else语句
格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
案例:奇偶数判断
import java.util.Scanner;
public class helloworld {
public static void main(String[] args){
//创建项目
Scanner sc = new Scanner(System.in);
System.out.println("输入一个正整数:");
int number = sc.nextInt();
if(number%2==0){
System.out.println("偶数!");
}else{
System.out.println("基数!");
}
}
}
3. else if 语句
格式:
if(关系表达式){
语句体1;
}else if{
语句体2;
}
…
else{
语句体n+1;
}
案例:星期几?
import java.util.Scanner;
public class helloworld {
public static void main(String[] args){
//创建项目
Scanner sc = new Scanner(System.in);
System.out.println("输入数据(1-7):");
int week = sc.nextInt();
if(week==1){
System.out.println("周一!");
}else if(week==2){
System.out.println("周二!");
}else if(week==3){
System.out.println("周三!");
}else if(week==4){
System.out.println("周四!");
}else if(week==5){
System.out.println("周五!");
}else if(week==6){
System.out.println("周六!");
}else if(week==7){
System.out.println("周七!");
}
}
}
4.2.2 switch语句
格式:
switch(表达式){
case 值1 :
语句体1;
break;
case 值2 :
语句体1;
break;
…
default :
语句体 n+1;
[break;]
}
case后面跟的值 是要跟表达式比较的值
案例1:星期几?
import java.util.Scanner;
public class helloworld {
public static void main(String[] args){
//创建项目
Scanner sc = new Scanner(System.in);
System.out.println("输入数据(1-7):");
int week = sc.nextInt();
switch (week){
case 1:
System.out.println("周一!");
break;
case 2:
System.out.println("周二!");
break;
case 3:
System.out.println("周三!");
break;
case 4:
System.out.println("周四!");
break;
case 5:
System.out.println("周五!");
break;
case 6:
System.out.println("周六!");
break;
case 7:
System.out.println("周七!");
break;
default:
System.out.println("输入的数字有错误!");
break;
}
}
}
4.3 循环结构
4.3.1 for循环
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环语句体;
}
案例:水仙花
import java.util.Scanner;
public class helloworld {
public static void main(String[] args){
//创建项目
Scanner sc = new Scanner(System.in);
//水仙花
int a,b,c,i;
for(i=100; i<999 ; i++){
a = i/100; //百位
b = i/10%10 ; //十位数
c = i%10; //个位
if(i == a*a*a+b*b*b+c*c*c ){
System.out.println(i+"水仙花数!");
}
}
}
}
注意:在java里面没有a^3的表示方法,只有aaa,或者其他的(应该是用到其他的包或者函数,还没学到!)
4.3.2 while语句
基本格式:
while(判断条件){
循环语句体;
}
4.3.3 do…while语句
基本格式:
do{
循环语句体;
}while(判断条件);
4.3.4 三个循环的区别
- for循环和while循环,先判断后执行;do…while,先执行一边后判断;
- for和while的区别: 呃,条件控制语句控制的变量for不能接着用,while可以接着用
- 死循环三种:
for(;;){ }
while(true) { }
do{ }while(true)
4.3.5 循环跳转控制语句
- continue 跳过当前内容,继续下一次循环
- break 结束整个循环
4.4 循环嵌套
有手就行
4.5 Random随机数
使用步骤:
1.导包:
import java.util.Random;
2.创建对象:
Random r = new Random();
3.获取随机数:(注意范围)
int number = r.nextInt(10);
System.out.println(number);
//获取随机数的范围是[0,10)!!!!
5.1数组定义
格式1:(推荐使用)
int[] arr;//定义了一个int类型的数组,数组名为arr
格式2:
int arr[];//定义了一个int类型的变量,变量名为arr数组
5.2数组初始化
5.2.1 数组动态初始化
概念:只指定数组的长度,由系统给数组分配初始值(默认值如下:)
- 整数默认值 0
- 浮点数 0.0
- 布尔值: false
- 字符:空字符
- 引用数据类型:null
int[] arr = new int[3];
/*左边:
int:说明数组类型是int型
[]: 说明这是一个数组
arr:数组名
右边:
new:为数组申请空间
int:数组中的元素类型是int型
[]:说明这是个数组
3:数组长度
5.2.2 数组静态初始化
格式:
int[] arr = new int[]{1,2,3};
简化格式:
int[] arr = {1,2,3};
5.3数组元素访问
int[] arr = new int[3];
System.out.println(arr);//[I@5305068a 内存地址!!!
System.out.println(arr[0]);//默认值是0 数据!
5.4数组内存分配
左栈右堆
- 栈内存:存储局部变量
定义在方法中的变量,例如:arr使用完毕,立即消失 - 堆内存:存储new出来的内容(实体,对象),会为存储空间添加默认值
每一个new出来的东西都有一个地址值使用完毕,会在垃圾回收器空闲时被回收
5.4数组常见操作
5.4.1遍历
- 获取数组长度:数组名.length
int[] arr = new int[]{1,2,3,4,5};
int i ;
for(i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
概念:具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集