Java语言基础(环境搭建、语法、变量、类型转换、运算符、控制语句、数组)
目录
- 1 Java环境搭建
- 1.1 JDK下载
- 1.2 JDK安装
- 1.3 JDK的安装目录
- 1.4 常用DOS命令
- 1.5 Path环境变量配置
- 1.6 IDEA编辑器
- 2 基本语法
- 2.1 注释
- 2.2 关键字
- 2.3 常量
- 2.4 数据类型
- 2.4.1 数据类型
- 2.4.2 内存占用和取值范围
- 2.5 变量
- 2.5.1 定义变量
- 2.5.2 变量的注意事项
- 2.6 标识符
- 2.6.1 标识符定义规则
- 2.6.2 常用命名约定(驼峰法)
- 2.7 类型转换
- 2.7.1 自动类型转换
- 2.7.2 强制类型转换
- 2.8 打印输出
- 3 运算符
- 3.1 算术运算符
- 3.1.1 字符的“+”操作
- 3.1.2 字符串的“+”操作
- 3.2 赋值运算符
- 3.3 自增自减运算符
- 3.4 关系运算符
- 3.5 逻辑运算符
- 3.6 短路逻辑运算符
- 3.7 三元运算符
- 3.8 Scanner使用的基本步骤
- 3.9 案例:三个和尚
- 4 流程控制语句
- 4.1 流程控制语句分类
- 4.2 if语句
- 4.2.1 if语句格式1
- 4.2.2 if语句格式2
- 4.2.3 if语句格式3
- 4.3 switch语句
- 4.4 for循环语句
- 4.4.1 案例1: 输出数据
- 4.4.2 案例2: 求1-5数据和
- 4.4.3 案例3: 求1-100偶数数据和
- 4.4.4 案例4: 打印1-100的数每行10个
- 4.4.5 案例5: 水仙花数
- 4.4.6 案例6: 统计水仙花个数
- 4.5 while循环语句
- 4.6 do...while循环语句
- 4.7 三个循环的区别
- 4.7.1 第一
- 4.7.2第二
- 4.7.3死循环
- 4.8 跳转控制语句
- 4.9 循环嵌套
- 4.10 Random使用步骤
- 5 数组
- 5.1 数组定义格式
- 5.2 数组初始化
- 5.2.1 动态初始化
- 5.2.2 静态初始化
- 5.3 数组元素访问
- 5.4 内存分配
- 5.5 遍历数组
- 5.6 获取数组最值
- 6 二维数组
- 6.1 二维数组格式
- 6.2 动态初始化
- 6.3 访问元素
- 6.4 静态初始化
- 6.5 遍历二维数组
- 前七章知识点案例总结
- 1.缝七过
- 2.不死神兔
- 3.百钱百鸡
- 4.数组元素求和
- 5.数组内容相同
- 6.查找
- 7.反转
- 8.评委打分
- 8 import导包
1 Java环境搭建
1.1 JDK下载
- 官网:https://www.oracle.com/
- 或浏览器搜索java8download
1.2 JDK安装
- 傻瓜式点击下一步就行
- 改路径安装更改JDK路径和JRE路径
- 注意点:安装路径不要包含中文和空格,所有开发工具最好安装路径统一
1.3 JDK的安装目录
1.4 常用DOS命令
1.5 Path环境变量配置
- 1.右键电脑>属性>高级系统设置>高级>环境变量
- 2.系统变量配置:点击新建,名称为JAVA_HOME,变量值为jJava安装路径,如:F:\Java
- 3.编写Path变量:系统变量>path>编辑>新建>添加 %JAVA_HOME%\bin
- 4.验证:cmd窗口输入javac
1.6 IDEA编辑器
- 快速生成语句
- 快速生成main()方法:psvm,回车
- 快速生成输出语句:sout,回车
- 内容辅助键
- Ctrl+Alt+space(内容提示,代码补全等)
- 快捷键
- 注释:
1.单行:选中代码Ctrl+/,再来一次,就是取消
2.多行:选中代码Ctrl+Shift+/,再来一次,就是取消 - 格式化:Ctrl+Alt+L
- 注释:
2 基本语法
2.1 注释
1.单行注释
格式://注释信息
2.多行注释
格式:/*注释信息*/
3.文档注释
格式:/**注释信息*/
2.2 关键字
- 关键字的字母全部小写
- 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
2.3 常量
2.4 数据类型
2.4.1 数据类型
- 基本数据类型
- 整数(byte、short、int、long)
- 浮点数(float、double)
- 字符(char)
- 布尔(boolean)
- 引用数据类型
- 类(class)
- 接口(interface)
- 数组([ ])
2.4.2 内存占用和取值范围
2.5 变量
2.5.1 定义变量
- 数据类型+变量名=值
2.5.2 变量的注意事项
- 变量名不能重复
- 变量未赋值不能使用
- long类型的变量定义时,为防止整数过大,值后面加L
- float类型的变量定义时,为防止类型不兼容,值后面加F
- 一条语句可以定义多个变量,但需要使用逗号进行分割
- 数值不能超过变量取值范围
2.6 标识符
2.6.1 标识符定义规则
- 由字母、数字、下划线(_)和美元符($)组成
- 不能以数字开口
- 不能是关键字
- 区分大小写
- 不能有空格
2.6.2 常用命名约定(驼峰法)
- 小驼峰命名法:方法、变量
- 标识符是一个单词时,首字母小写
- 范例:name
- 标识符由多个单词组成时,第一个单词首字母小写,其他单词首字母大写
- 范例:firstName
- 大驼峰命名法:类
- 标识符是一个单词时,首字母大写
- 范例:Student
- 标识符由多个单词组成时,全部首字母大写
- 范例:GoodStudent
2.7 类型转换
2.7.1 自动类型转换
- 把一个表示数据范围小的数值或变量赋值给另一个表示数据范围大的变量
- 范例:doubled = 10;
2.7.2 强制类型转换
- 把一个表示数据范围大的数值或变量赋值给另一个表示数据范围小的变量
- 格式:目标数据类型+变量名 = (目标数据类型)值或变量
- 范例:
int k = (int)88.88
2.8 打印输出
System.out.print(打印内容) //打印后不换行
System.out.println(打印内容) //打印后换行
System.out.println() //没内容时起到换行效果
3 运算符
3.1 算术运算符
public static void main(String[] args) {int a = 6;int b = 4;System.out.println(a + b); //10System.out.println(a - b); //2System.out.println(a * b); //24System.out.println(a / b); //1System.out.println(a % b); //2//除法得到商,取余得到余数//整数相除只能得到整数,要想得到小数要有浮点数参与System.out.println(6.0 / 4); //1.5}
3.1.1 字符的“+”操作
- 字符进行“+”操作时,拿的是字符在计算机底层对应的数值进行操作
- ‘A’ > 65
- ‘a’ > 97
- ‘o’ > 48
- 算术运算符表达式中多个基本数据类型的值的时候,整个算术运算符的类型会自动提升
- 提升规则:
- 1.byte类型、short类型和char类型都会提升到int类型
- 2.整个表达式的类型自动提升到表达式中最高等级操作数同样类型
等级顺序:byte、short、char -> int -> long -> float -> double
- 范例:
public class Demo {public static void main(String[] args) {int i = 10;char c = '0';System.out.println(i + c); //75//char cj = i + c;//char类型会自动提升到int类型int j = i + c;System.out.println(j); //75//10.1是double类型高于int类型//int k = 10 + 10.1; double k = 10 + 10.1;}
}
3.1.2 字符串的“+”操作
- 当 “+” 操作出现字符串时,这个 “+” 是字符串连接符,而不是算术运算符
- 范例:
System.out.println('it'+6+66) //it666
- 在 “+” 操作中,如果出现字符串就是连接符,否则就是算术运算。当连续 “+” 操作时,从左到右依次执行。
- 范例:
System.out.println(1+99+'it') //100it
3.2 赋值运算符
注意事项
:扩张的赋值运算符隐含强制类型转换。
3.3 自增自减运算符
- ++ 和 - - 可以放变量前面也可以放变量后面
- 单独使用时, ++ 和 - - 放变量前后结果都是一样的
- 参与操作使用时,如果放变量后面,先拿变量参与操作,后拿变量做++或- -;
参与操作使用时,如果放变量前面,先拿变量做++或- -,后拿变量参与操作。 - 范例:
public class Demo {public static void main(String[] args) {//单独使用int i = 10;//i++;++i;System.out.println(i); //11//参与操作使用++在后面int b = 10;int j = b++;System.out.println(b); //11System.out.println(j); //10//参与操作使用++在前面int c = 10;int k = ++c;System.out.println(c); //11System.out.println(k); //11}
}
3.4 关系运算符
- 关系运算符的结果都是boolean类型,要么true,要么false
3.5 逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | 同真为真,其余为假(满足两个为真) |
` | ` | 逻辑或 |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
3.6 短路逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
&& | 短路与 | 作用与&相同,但是有短路效果 |
` | ` |
- 范例:
public class Demo {public static void main(String[] args) {int i = 10;int j = 20;//&& :具有短路效果,符号左边为false的时候,右边就不执行//如果符号左边为true,右边要继续执行System.out.println((i++>100) && (j++>100)); //false & false,System.out.println("i="+i); //11System.out.println("j="+j); //20}
}
注意事项
:1、逻辑与 &:无论左边真假,右边都要执行
2、短路与 &&:如果左边为真,右边执行;如果左边为假,右边不执行
3、逻辑或 | : 无论左边真假,右边都要执行
4、短语或 ||:如果左边为假,右边执行;如果左边为真,右边不执行
3.7 三元运算符
- 格式:关系表达式 ? 表达式1 :表达式2;
- 范例:a > b ? a : b;
- 计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果;
如果值为false,表达式2的值就是运算结果。 - 范例:
public class Demo {public static void main(String[] args) {int i = 10;int j = 20;//输出两个数据中的较大值int max = i > j ? i : j;System.out.println("max=" + max); //20}
}
3.8 Scanner使用的基本步骤
导包的三种方式:
- 1、手动导包:
import java.util.Scanner
; - 2、快捷键导包:创建好Scanner对象后,鼠标放在Scanner上按Alt+Enter
- 3、自动导包:写Scanner单词创对象时,按tab补全导包
- 1、手动导包:
导包的步骤:
- 1.导包
import java.util.Scanner; //导包必须在定义类上面
- 2.创建对象
Scanner sc = new Scanner(System.in); //只有sc是变量名可以变,其他都不可以变
- 3.接收数据
int i = sc.nextInt(); //i是变量名可以变,其他都不能变 sc.nextInt(); //Ctrl+alt+v:补全生成左边的内容
3.9 案例:三个和尚
import java.util.Scanner;
public class Demo {public static void main(String[] args) {//从键盘输出三个身高求出最高值Scanner sc = new Scanner(System.in);//键盘输入三个数值int height1 = sc.nextInt();int height2 = sc.nextInt();int height3 = sc.nextInt();int temp = (height1>height2) ? height1:height2;int max = (temp>height3) ? temp:height3;System.out.println(max);}
}
4 流程控制语句
4.1 流程控制语句分类
- 顺序结构
- 分支结构(if、switch)
- 循环结构(for、while、do…while)
4.2 if语句
4.2.1 if语句格式1
- 格式:
if(关系表达式) {语句体;
}
- 执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体
3、如果关系表达式的值为false就不执行语句体
4、继续执行后面的语句内容
4.2.2 if语句格式2
- 格式:
if(关系表达式) {语句体1;
}else {语句体2;
}
- 执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体1
3、如果关系表达式的值为false就执行语句体2
4、继续执行后面的语句内容
4.2.3 if语句格式3
- 格式:
if(关系表达式1) {语句体1;
}else if(关系表达式2){语句体2;
}
...
else {语句体n+1;
}
- 执行流程:
1、首先计算关系表达式1的值
2、如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
3、如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
…
4、如果没有任何关系表达式值为true就执行语句体n+1 - 范例:
import java.util.Scanner;public class Demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入你的成绩");int score = sc.nextInt();if(score == 100){System.out.println("满分");}else if(score >= 90) {System.out.println("优秀");}else if(score >= 80) {System.out.println("良好");}else if(score >= 70) {System.out.println("中等");}else if(score >= 60) {System.out.println("及格");}else {System.out.println("不及格");}}
}
4.3 switch语句
- 格式:
switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;...default:语句体n+1;break; //最后一个可以省略
- 格式说明
- 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String
- case:后面跟的是要跟表达式比较的值
- break:表示中断结束的意思,用来结束switch语句
- default:表示所有情况都不匹配的时候,就执行该处内容,和if语句中的else相似
- 执行流程:
1、首先计算表达式的值
2、以此和case后面的值进行比较,如果有对应值,就会执行相应语句,在执行过程中,遇到break就会结束
3、如果所有的case的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束 - 注意事项:在switch语句中,如果case控制的语句后面不写break,将会出现穿透现象,在不判断下一个case的情况下,向下运行,直到遇到break,或者整体程序结束
- 案例:初夏秋冬(case穿透)
import java.util.Scanner;
public class Demo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个月份");int month = sc.nextInt();switch(month) {//case穿透case 1:case 2:case 12:System.out.println("冬季");break;case 3:case 4:case 5:System.out.println("春季");break;case 6:case 7:case 8:System.out.println("夏季");break;case 9:case 10:case 11:System.out.println("秋季");break;default:System.out.println("你输入的月份有误");}}
}
4.4 for循环语句
- 格式:
for(初始化语句;条件判断语句;条件控制语句){循环体语句;
}
- 流程图
- 执行流程
1、执行初始化语句
2、执行条件判断语句,且看结果是true还是false
如果是false,循环结束;如果是true,继续执行
3、执行循环体语句
4、执行条件控制语句
5、返回到2继续
4.4.1 案例1: 输出数据
public class Demo {public static void main(String[] args) {// 输出1-5for(int i=1;i<=5;i++) {System.out.print(i+" "); //1 2 3 4 5}// 输出5-1for(int i=5;i>0;i--) {System.out.print(i + " "); //5 4 3 2 1}}
}
4.4.2 案例2: 求1-5数据和
public class Demo {public static void main(String[] args) {int sum = 0;for(int i=1;i<=5;i++) {sum += i;}System.out.println(sum); //15}
}
4.4.3 案例3: 求1-100偶数数据和
public class Demo {public static void main(String[] args) {int sum = 0;for(int i=1;i<=100;i++) {//判断i是否为偶数if(i%2==0){sum += i;}}System.out.println(sum);}
}
4.4.4 案例4: 打印1-100的数每行10个
public class Demo {public static void main(String[] args) {//打印1-100,每行10个int a = 0;for(int i=0;i<100;i++){a++;System.out.print(i+" ");if(a % 10 == 0){ //10代表每行10个,可以换为所需个数System.out.println(); //10个后换行}}}
}
4.4.5 案例5: 水仙花数
- 什么是水仙花数?
1、水仙花数是一个三位数
111 333 456 999 530
2、水仙花数的个位、十位、百位的数字立方和等于原数
- 怎么获取个位、十位、百位上的数
1、个位数
371 ;1就是原始数字对10进行取余的运算结果;371 % 10 = 1
2、十位数
371;371通过除以10,可以将7移动到个位上去(整数);371 / 10 = 37
37 ;37对10进行取余可以得到最后一位的值7 ; 37 % 10 = 7
3、百位数
371 ; 3就是原始数字除以100的结果(整除);371 /100 = 3
4、思考:任意数字的指定位置上的数值如何求?
123456789 ; 先10000得到12345;再对10取余得到5
public class Demo {public static void main(String[] args) {for(int i=100;i<=999;i++) {int a = i % 10; //个位int b = i / 10 % 10; //十位int c = i / 100 ; //百位if(a*a*a + b*b*b + c*c*c == i) {System.out.println("水仙花数:"+i); //有153、370、371、407}}}
}
4.4.6 案例6: 统计水仙花个数
public class Demo {public static void main(String[] args) {int count = 0; //存放判断水仙花的次数for(int i=100;i<=999;i++) {int a = i % 10; //个位int b = i / 10 % 10; //十位int c = i / 100 ; //百位if(a*a*a + b*b*b + c*c*c == i) {count++;}}System.out.print("水仙花共有"+count+"个"); //4个}
}
4.5 while循环语句
- 用法:用来描述未知次数循环
- 格式:
初始化语句;
while(条件判断语句) {循环体语句;//比如:输出内容条件控制语句;
}
- 执行流程:
1、执行初始化语句;
2、执行条件判断语句,看其结果为true还是false
如果是false,循环结束;如果是true,继续执行
3、执行循环体语句
4、执行条件控制语句
5、回到2继续 - 案例:珠穆朗玛峰
public class Demo {public static void main(String[] args) {//需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米)//假如我有一张足够大的纸,它的厚度是0.1毫米。//请问,我折叠多少次,可以折成珠穆朗玛峰的高度?//1.定义计数器变量,用于统计折叠的次数int count = 0;//2.定义纸张厚度变量double paper = 0.1;//3.定义珠峰高度变量int zf = 8844430;//不知道循环次数,更适合使用whilewhile(paper<=zf) {//循环过程中每次纸张堆叠,厚度加倍paper *= 2;//在循环中累加次数count++;}//循环结束后打印System.out.println(count); //27}
}
4.6 do…while循环语句
- 格式:
初始化语句;
do{循环体语句;//比如:输出内容条件控制语句;
}while(条件判断语句);
- 执行流程:
1、执行初始化语句
2、执行循环体语句
3、执行条件控制语句
4、执行条件判断语句,看其结果为true还是false
如果是false,循环结束;如果是true,继续执行
5、回到2继续
4.7 三个循环的区别
4.7.1 第一
- do…while:先输出一次再进行判断(最少输出一次)
- for、while:先判断再输出
4.7.2第二
- for循环结束后变量不能使用
- while循环结束后还可以使用(打印变量次数)
4.7.3死循环
- for语句
for(;;){System.out.println("死循环");
}
- while语句
while(true){System.out.println("死循环了");
}
- do…while语句
do{System.out.println("死循环");
}while(true);
4.8 跳转控制语句
- continue:用于循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次执行
- break:用于循环中,基于条件控制,终止循环体内容执行,结束当前整个循环
- 范例:
public class Demo {public static void main(String[] args) {for(int i=1;i<=5;i++) {if(i%2==0) {//continue; //为偶数时跳过输出,1 3 5break; //当遇到偶数终止循环,只输出1}System.out.println(i);}}
}
4.9 循环嵌套
public class Demo {public static void main(String[] args) {//九九乘法表for(int i=1;i<=9;i++) {for(int j=1;j<=i;j++) { //j<=i,当i=1时,j=1,输入一次后循环结束;i的值加1,i=2,j=1,输出两次后跳出...System.out.print(i +"*"+j + "=" + i*j +" ");}System.out.println();}}
}
4.10 Random使用步骤
作用:用于产生一个随机数
步骤:
- 1.导包:
import java.util.Random
- 2.创建对象:
Random r = new Random(); //r是变量名可变
- 3.获取随机数:
int number = r.nextInt(10); //获取数据的范围是:[0,10),包括0,不包括10 //number是变量名可变,数字10可变
案例:猜数字游戏
import java.util.Scanner;
import java.util.Random;public class Demo {public static void main(String[] args) {//1.生成随机数1-100Random r = new Random();int number = r.nextInt(100)+1; ////4.不确定次数用while,死循环while(true) {//2.键盘输出数字Scanner b = new Scanner(System.in);System.out.println("请输入要猜的数字:");int guessnumber = b.nextInt();//3.比较if(guessnumber>number) {System.out.println("你猜的数字"+guessnumber+"大了");}else if(guessnumber<number) {System.out.println("你猜的数字"+guessnumber+"小了");}else {System.out.println("猜对了");break;}}}
}
5 数组
- 数组(array [əˈreɪ] )是一种用来存储多个相同类型数据的存储模型
5.1 数组定义格式
- 格式1(常用)
//数据类型[] 变量名;
int[] arr; //定义了一个int类型的数组,数组名是arr
- 格式2
//数据类型 变量名[];
int arr[]; //定义了一个int类型的变量,变量名是arr数组
5.2 数组初始化
5.2.1 动态初始化
- 初始化时只指定初始化长度,由系统为数组分配默认初始化值
- 默认值:
- int:默认值0
- float:默认值0.0
- boolean:默认值false
- char:默认值是空字符
- 引用数据类型:默认值null
- 格式:
数据类型[] 变量名 = new 数据类型[数组长度];
- 范例:
//new:为数组申请内存空间 3:数组长度/数组中元素个数
int[] arr = new int[3];
System.out.print(arr[0]) //0 系统分配的默认初始化值
5.2.2 静态初始化
- 初始化指定数组元素,系统会根据元素个数,计算出数组的长度
- 格式:
数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,.....}数据类型[] 变量名 = {数据1,数据2,数据3,....} //简化格式
- 范例:
int[] arr = new int[]{1,2,3};
System.out.println(arr[0]);int[] arr1 = {1,2,3};
System.out.println(arr1[0]); //1
5.3 数组元素访问
- 数组变量访问方式
- 格式:变量名
- 数组内部保存数据访问方式
- 格式:数组名[索引] //0、1、2、3…
int[] arr1 = {1,2,3};
System.out.println(arr1); //[I@1b6d3586:内存空间地址值
System.out.println(arr1[0]); //1
System.out.println(arr1[1]); //2
System.out.println(arr1[2]); //3
5.4 内存分配
- 栈内存:存储局部变量(定义在方法中的变量,如:arr,使用完毕立刻消失)
- 堆内存:存储new出来的内容(实体、对象)(垃圾回收器空闲时回收)
5.5 遍历数组
- 获取数组元素个数,格式:
数组名.length
public class Demo {public static void main(String[] args) {int[] arr = {1,2,3,4,5};for(int i=0;i<arr.length;i++) {System.out.println(arr[i]); // 1 2 3 4 5}}
}
5.6 获取数组最值
- 执行流程:
1、假设数组中的第一个元素为最大值
2、遍历数组,获取每一个元素,准备进行比较
3、如果比较的过程,出现了比max更大的,让max记录更大的值
4、循环结束后,打印最大值
public class Demo {public static void main(String[] args) {int[] arr = {2,6,7,8,1,3,5,4,9};int max = arr[0];for(int i=1;i<arr.length;i++) {if(arr[i] > max) {max = arr[i];}}System.out.println(max); //循环结束后打印}
}
6 二维数组
6.1 二维数组格式
- 格式一 :数据类型[ ][ ] 变量名;
int[][] arr;
- 格式二 :数据类型 变量名[][];
int arr[][];
- 格式三 :数据类型[] 变量名[];
int[] arr[];
6.2 动态初始化
- 格式:数据类型[ ][ ] 变量名 = new 数据类型[m][n];
- m:行
- n:列(每行可以存放多少数据)
- 范例:
public class Demo {public static void main(String[] args) {int[][] arr = new int[2][3];for(int[] row : arr) {for(int data : row) {System.out.printf("%d\t",data); // 0 0 0} // 0 0 0 System.out.println();}}}
6.3 访问元素
public class Demo{public static void main(String[] args){/*问题:二维数组中存储的是一维数组,那能不能存入[提前创建好的一维数组]呢?*/int[] arr1 = {11,22,33};int[] arr2 = {44,55,66};int[] arr3 = {77,88,99,100};int[][] arr = new int[3][3];arr[0] = arr1;arr[1] = arr2;arr[2] = arr3;//输出二维数组for(int[] row : arr) {for(int data : row) {System.out.printf("%d\t",data); //11 22 33} //44 55 66System.out.println(); //77 88 99 100}System.out.println(arr[1][2]); //66System.out.println(arr[2][3]); //100}
}
6.4 静态初始化
- 格式1:格式: 数据类型[ ][ ] 变量名 = new 数据类型[ ][ ] {{元素1,元素2…},{元素1,元素2…}};
int[][] arr = new int[][]{{11,22},{33,44}};
- 格式2(简化格式):数据类型[][] 变量名 ={{元素1,元素2},{元素1,元素2…}};
int[][] arr = {{11,22},{33,44}};
6.5 遍历二维数组
public class Demo{/*需求:已知一个二维数组 arr = {{11,22,33},{44,55,66}}遍历该数组,取出所有元素并打印*/public static void main(String[] args){int[][] arr = {{11,22,33},{44,55,66}};// 遍历二维数组,取出里面每一个一维数组for(int i = 0;i < arr.length;i++){// 遍历一维数组,arr[i]就是每一个一维数组for(int j = 0;j < arr[i].length;j++){System.out.print(arr[i][j]+" "); //11 22 33 44 55 66}}}
}
前七章知识点案例总结
1.缝七过
public class Demo {public static void main(String[] args) {//个位是7,十位是7,7的倍数过//i%10==7 i/10%10==7 i%7==0 for (int i = 1; i <= 100; i++) {if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {System.out.print(i + " ");}}}
}
2.不死神兔
public class Demo {public static void main(String[] args) {//1int[] arr = new int[20];//2arr[0] = 1;arr[1] = 1;//3for(int x=2;x< arr.length;x++) {arr[x] = arr[x-2] + arr[x-1];//arr[2] = arr[0] +arr[1];}System.out.println("第二十个月兔子个数为"+arr[19]); //6765}
}
3.百钱百鸡
public class Demo {public static void main(String[] args) {//1.第1层循环,用来表示鸡公范围,x=0,x<=20for(int x=0;x<=20;x++){//2.第2层循环,表示母鸡范围for(int y=0;y<=33;y++){//3.小鸡数量int z = 100 -x -y;//4.三种鸡的总钱是否等于100if(z%3==0 && 5*x+3*y+z/3==100){System.out.println("公鸡个数:"+x+","+"母鸡个数"+y+","+"小鸡个数"+z);
// 公鸡个数:0,母鸡个数25,小鸡个数75
// 公鸡个数:4,母鸡个数18,小鸡个数78
// 公鸡个数:8,母鸡个数11,小鸡个数81
// 公鸡个数:12,母鸡个数4,小鸡个数84}}}}
}
4.数组元素求和
public class Demo {public static void main(String[] args) {int[] arr = {68,27,95,88,171,996,51,210};int sum = 0;for(int i=0;i< arr.length;i++) {if(arr[i]%10!=7 && arr[i]/10%10!=7 && arr[i]%2==0){sum += arr[i];}}System.out.println(sum); //1362}
}
5.数组内容相同
public class Demo {public static void main(String[] args) {int[] arr = {11, 22, 33, 44, 55, 66};//int[] arr2 = {11, 22, 33, 44, 55, 66}; //返回trueint[] arr2 = {22, 11, 33, 44, 55, 66}; //返回falseboolean a = compare(arr, arr2);System.out.println(a); }public static boolean compare(int[] arr, int[] arr2) {//比较长度if (arr.length != arr2.length) {return false;}//比较元素内容for (int i = 0; i < arr.length; i++) {if (arr[i] != arr2[i]) {return false;}}//都相同时return true;}
}
6.查找
import java.util.Scanner;public class Demo {public static void main(String[] args) {int[] arr = {19,28,35,42,56};Scanner sc = new Scanner(System.in);System.out.println("请输入一个数");int number = sc.nextInt();int index = getIndex(arr,number);System.out.println("索引下标为:"+index);}public static int getIndex(int[] arr,int number) {//索引变量int index = -1;//遍历数组for(int i=0;i< arr.length;i++){if(number==arr[i]){index = i;break;}}return index;}
}
7.反转
public class Demo {public static void main(String[] args) {int[] arr = {11,22,33,44,55};//初始化两个索引变量用逗号隔开for(int start=0,end=arr.length-1;start<=end;start++,end--){//反转int temp = arr[start];arr[start] = arr[end];arr[end] = temp;}for(int i=0;i< arr.length;i++) {System.out.print(arr[i]+" "); //55 44 33 22 11}}
}
8.评委打分
import java.util.Scanner;
public class Demo {public static void main(String[] args) {int[] arr = new int[6];Scanner sc = new Scanner(System.in);//1.键盘输入六个评委的分数for(int i=0;i< arr.length;i++) {System.out.println("请输入第"+(i+1)+"个评委打分:");arr[i] = sc.nextInt();}//printArray(arr);//2.调用getMaxint max = getMax(arr);//3.调用getMinint min = getMin(arr);//4.调用getSumint sum =getSum(arr);//5.计算平均分int avg = (sum-max-min)/arr.length-2;System.out.println("选手最终得分是:"+avg);}//获取所有元素和public static int getSum(int[] arr) {int sum = 0;for(int i=0;i< arr.length;i++) {sum += arr[i];}return sum;}//获取最小值public static int getMin(int[] arr) {int min = arr[0];for(int i=1;i< arr.length;i++) {if(arr[i] < min) {min = arr[i];}}return min;}//获取最大值public static int getMax(int[] arr) {int max = arr[0];for(int i=1;i< arr.length;i++) {if(arr[i] > max) {max = arr[i];}}return max;}//遍历数组public static void printArray(int[] arr) {System.out.print("[");for(int i=0;i< arr.length;i++) {if(i==arr.length) {System.out.print(arr[i]);}else {System.out.print(arr[i]+",");}}System.out.print("]");}
}
8 import导包
- 格式:`import 包名;
- 范例:`Demo类中导入Student类的方法
- Student类
package Student;public class Student {public void study(){System.out.println("学习");}
}
- Demo类
package test;
import Student.Student;public class Demo {public static void main(String[] args) {Student s = new Student();s.study(); //学习}
}
Java语言基础(环境搭建、语法、变量、类型转换、运算符、控制语句、数组)相关推荐
- 2.Java之路(Java语言开发环境搭建)
1.Java虚拟机-----JVM · JVM(Java Virtual Machine): Java 虚拟机,简称JVM,是运行所有Java程序的假象计算机, 是Java程序的运行环境 ,是Java ...
- Java 语言基础知识
1.Java语言概述 Java是一门面向对象的编程语言,其吸收了C++语言的各种优点,还把C++里难以理解的多继承.指针等一系列概念摒弃掉.其功能强大,简单易用.可跨平台.其有三种技术架构:JAVAE ...
- 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建
原文链接:区块链基础语言(二)--Go语言开发环境搭建 一.操作系统位数的查询方法 在安装前首先要了解个人的电脑系统位数是32位还是64位. 1.1Windows系统查询方法 右击"计算 ...
- JAVA语言基础常量和变量
JAVA语言基础常量和变量 ###02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向 ...
- java语言基础-刘建-专题视频课程
java语言基础-4096人已学习 课程介绍 这是java语言基础入门课程,适合刚入门的小白. 课程收益 了解java发展历史 掌握开发环境搭建和IDE使用 学习基本语法 讲师 ...
- 2,Java语言基础-Java语言基本程序设计知识
Java语言基础 Java语言基本程序设计知识 1,JavaAPI概述 1.1,什么是API API是指应用程序接口( Application Program Interface, API),故名思意 ...
- [JAVA_开课吧资源]第一周 Java语言概述、Java语言基础
主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程 ...
- 【java后端学习】java语言基础(夯实基础)
文章目录 一.基础语法 1 java中的标识符 1.1 变量命名规范 1.2 保留字 2 java中的常量 3 java基本数据类型 4 数组 5 字符及字符串 6 运算符 7 控制语句 for语句 ...
- R语言开发环境搭建与实践
R语言开发环境搭建与实践 R语言是统计领域广泛使用的诞生于1980年左右的S语言的一个分支.R语言的特点: 集统计分析与图形显示于一体的统计分析软件. 自由软件,完全免费并且开放源代码. 可编程语言, ...
- 1,Java语言基础-Java语言概述和必要计算机知识
Java语言基础 Java语言概述 1,Java语言发展史 Java语言本质 Java是面向对象的高级语言,它是由c和c++发展而来. Java发展语言历史概述 Java 是由 James Gosli ...
最新文章
- ASP.NET的一套笔试题
- c语言中菲薄拉次数列,在VB子函数如何写出菲薄拉起数列
- python怎么读取文件-python如何读取文件的数据
- 六、数据的基本统计描述
- CentOS 7.2修改网卡名称
- oracle 监控 视图,【转】oracle几个常用的监控视图
- libgdx游戏引擎开发笔记(十)SuperJumper游戏例子的讲解(篇四)---- 主游戏界面内部框架编写...
- 模拟器显示空白图片_Kawaks街机模拟器,还是小时候的味道!
- java中CardLayout的使用方法
- 为什么程序员更喜欢用google搜索? 因为正经!
- Cortex-M0(3)---ARM Cortex-M0 异常与中断
- 你的手机浏览器不支持webgle_不支持n79频段5G手机不能买?OPPO Reno3全频覆盖消除后顾之忧...
- mysql——启动服务问题Found option without preceding group in config file
- Java基础之写文件——通过缓冲流写文件(StreamOutputToFile)
- ubantu 安装anaconad_Ubuntu16.04安装Anaconda (转)
- FAT文件系统简明教程
- UML核心元素之参与者
- 福昕扫描王将取代扫描仪,OCR文字识别应用办公标配
- 【单镜头反光相机】影调、反差、光比、宽容度;光质(硬光、软光)、硬调、软调、高调、低调、中间调...
- 评高级审计师需要什么计算机运用能力,告诉你怎么成为高级审计师
热门文章
- Office for iPad软件套装正式发布啦
- 网卡连接模式改成1.0Gbps全双工,速度还是只有100Mbps
- 谈一谈浅拷贝和深拷贝
- Thinkphp5使用workerman、socket、websocket、layui、layim建立即时通讯
- ubtun服务器如何修改密码,如何在Ubuntu中更改root密码
- 初学键盘计算机输入时注意,计算机基础键盘录入
- Tomcat服务器的启动及启动失败可能的原因
- 华为虚拟机 获取不到ip_无线客户端获取不到ip地址
- 苹果iPhone 5 4S发布会现场实录
- 3年规模翻7倍统治 5G、IoT时代,化合物半导体材料深度报告