JDK和JRE
JDK:(Java Develop Kit)Java语句开发软件的工具包,内部包含JRE和开发工具包
JRE:(Java Runtime Environment)Java运行环境,内部包含了JVM和Java核心类库
类:Java文件在代码中的集合体现(类=Java文件,一个Java文件,一个Java类)
类库:存放多个Java文件的仓库
核心类库:Java已经写好的,非常核心的代码仓库
关键词
- 关键词的字母全部小写
- 常用的代码编辑器,针对关键词有特殊的颜色标记,非常直观
- main不是关键词,可以理解为比关键词更关键的一个词,因为JVM在执行代码的时候,只会识别该单词
数据类型
最小信息单元:比特位(bit)通常使用小写字母b表示
计算机最小存储单元:字节(byte)通常使用大写字母B表示,字节是由连续的8个位组成
1byte=8bit
基本数据类型 | 内存占用(字节) |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
char | 2 |
boolean | 1 |
标识符
- 由数字,字母,下划线和$组成
- 不能以数字开头
- 不能是关键词
- 区分大小写
代码
键盘录入-Scanner
package cn.cdw.demo;
import java.util.Scanner;
/**
* @author DW-CHEN
* 键盘录入
*/
public class Demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//键盘录入
while (true) {
System.out.print("请输入:");
String str= scanner.nextLine();
System.out.println("你输入的结果是:" + str);
}
}
}
数值拆分
package cn.cdw.demo;
import java.util.Scanner;
/**
* @author DW-CHEN
* 数值拆分
*/
public class Demo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要拆分的数值:");
int num=scanner.nextInt();
int ge=num%10;//获取个位
int shi=num/10%10;//获取十位
int bai=num/10/10%10;//获取百位
//...以此类推
System.out.println("你输入的数字:"+num+"的数值拆分为:个位 "+ge+",十位 "+shi+",百位 "+bai);
}
}
三元运算符运用之获取三个数的最大值
package cn.cdw.demo;
/**
* @author DW-CHEN
* 三元运算符运用之获取三个数的最大值
*/
public class Demo3 {
public static void main(String[] args) {
int i1=52;
int i2=62;
int i3=34;
int temp=i1>i2?i1:i2;//先比较两个数获取到启动最大值
int max=temp>i3?temp:i3;//然后和第三个数据比较获取最终最大值
System.out.println(max);
}
}
if语句
package cn.cdw.demo;
import java.util.Scanner;
/**
* @author DW-CHEN
* if语句
*/
public class Demo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("输入你的成绩:");
int num=scanner.nextInt();
if (num > 0 && num <= 100) {//成绩范围
if (num >= 90 && num <= 100) {
System.out.println("优秀");
}else if(num >= 60 && num <= 90) {
System.out.println("一般");
}else {
System.out.println("不合格");
}
}else{
System.out.println("输入成绩错误");
}
}
}
}
switch语句
switch语句的case穿透现象:如果case控制语句后面不写break,将会出现穿透现象
- 现象:当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行直到看见break,或者将整个switch语句执行完毕才会结束。
- 应用场景:switch语句中如果有多个case给出的语句体出现了重复的,可以考虑时使用case穿透来优化代码
package cn.cdw.demo;
import java.util.Scanner;
/**
* @author DW-CHEN
* switch语句
*/
public class Demo5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入星期:");
String str=scanner.nextLine();
switch (str){
case "星期一":
System.out.println("爬山");
break;
case "星期二":
System.out.println("游泳");
break;
case "星期三":
System.out.println("看书");
break;
case "星期四":
System.out.println("睡觉");
break;
case "星期五":
System.out.println("听音乐");
break;
case "星期六":
System.out.println("锻炼");
break;
case "星期日":
System.out.println("跑步");
break;
default:
System.out.println("你输入有误");
}
}
}
}
for循环之计算总和,偶数总和,奇数总和
package cn.cdw.demo;
import java.util.Scanner;
/**
* @author DW-CHEN
* for循环之计算总和,偶数总和,奇数总和
*/
public class Demo6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("输入你要计算到的数字:");
int num=scanner.nextInt();
int sum1=0;
int sum2=0;
int sum3=0;
for (int i = 1; i <= num; i++) {
sum1+=i;//计算总和
if (i % 2 == 0) {
sum2+=i;//计算偶数总和
}else {
sum3+=i;//计算奇数总和
}
}
System.out.println("1到"+num+"的总和为:" + sum1);
System.out.println("1到"+num+"的偶数总和为:" + sum2);
System.out.println("1到"+num+"的奇数总和为:" + sum3);
}
}
for循环之找出水仙花数
package cn.cdw.demo;
import java.util.Scanner;
/**
* @author DW-CHEN
* for循环之找出水仙花数
* 水仙花数:水仙花数的个位,十位,百位的立方和等于原数
* 例如:
* 123=1³+2³+3³=1+8+27≠123 所以这个123它不是水仙花数
* 371=3³+7³+1³=27+343+1=371 所以371是水仙花数
*/
public class Demo7 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count=0;//定义个记数变量,当水仙花数量大于2则换下一行打印数据。每行只打印两个数据
System.out.print("输入最大范围数字:");
int num = scanner.nextInt();
if (num >= 100 && num <= 999) {//规定范围100到999
for (int i = 100; i < num; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) == i) {//水仙花数的个位,十位,百位的立方和等于原数
System.out.print("水仙花数:"+i+" ");
count++;//每找到一个水仙花数,计数加一
if (count % 2 == 0) {//有两个数据了,换行
System.out.println();
}
}
}
}else {
System.out.println("输入值不在100到999内");
}
}
}
while循环之一张纸对折多少次有珠穆朗玛峰高
package cn.cdw.demo;
/**
* @author DW-CHEN
* while循环之一张纸对折多少次有珠穆朗玛峰高
*一张纸0.1毫米,珠穆朗玛峰高度8844米等于8844000毫米
*/
public class Demo8 {
public static void main(String[] args) {
Long num=8844000L;
float paper=0.1f;
int count=0;//记录对折次数
while (paper <= num) {
paper*=2;//对折
count++;
System.out.println("对折第"+count+"次的纸张高度:"+paper/1000+"米");
}
System.out.println("总共对折了"+count+"次,现在纸张高度为:"+paper/1000+"米");
}
}
三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断,后执行)
- do… while循环先执行一次循环,然后判断条件是否成立,是否继续执行循环体(先执行,后判断)
for和while的区别
- for循环的条件控制语句的自增变量是在自己的语法结构中,在for循环结束后,就不能再次被访问到了
- while循环的条件控制语句的自增变量不在自己的语法结构中,所以在while循环结束后该变量还是可以继续使用。
三种循环的应用场景
- 明确循环次数,推荐使用for循环
- 不明确循环次数,推荐使用while循环
- 很少使用do…while循环
continue,break
continum:用在循环中,基于条件控制,用于跳过某次循环体内容的执行
break:用在循环中,基于条件控制,终止循环体内容的执行,就是结束当前的整个循环
package cn.cdw.demo;
/**
* @author DW-CHEN
* continue,break
*/
public class Demo9 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;//跳过这个循环
}
if (i == 8) {
break;//结束整个循环
}
System.out.println(i);
}
System.out.println("====================================================");
int i = 0;
while (i<10){
System.out.println(i);
i++;
if (i == 5) {
continue;
}
if (i == 8) {
break;
}
}
System.out.println("====================================================");
int num=1;
switch (num) {
case 1:
System.out.println(1);
case 2:
System.out.println(2);
case 5:
break;//结束
default:
num++;
}
}
}
随机数之猜数字游戏-Random
package cn.cdw.demo;
import java.util.Random;
import java.util.Scanner;
/**
* @author DW-CHEN
* 随机数之猜数字游戏
*/
public class Demo10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int count=10;//只可以猜10次
int num = random.nextInt(100) + 1;//生成1到100内的任意一个随机数
while (true) {//死循环
System.out.print("请输入你猜的数字:");
int i=scanner.nextInt();
if (i < num) {
count--;
System.out.println("猜小了,你还有" + count + "次机会");
} else if (i > num) {
count--;
System.out.println("猜大了,你还有" + count + "次机会");
} else if (i == num) {
System.out.println("恭喜你猜对了"+"正确答案为:"+num);
break;//结束循环
}else {
System.out.println("输入有误");
}
if (count == 0) {
System.out.println("当前次数已用完,游戏结束,下次再来吧!"+"正确答案为:"+num);
break;//结束循环,游戏结束
}
}
}
}