文章目录
一、常见cmd命令
1.切换盘符:d:
2.查看当前路径的内容: dir
3.进入单级目录: cd
4.回退到上一级目录: cd …
5.进入多级目录: cd 目录1\目录2\
6.回退盘符目录: cd \
7.清屏:cls
8.退出命令提示符窗口: exit
二、JDK的目录
1.bin
存放各种工具命令,其中比较重要的有:javac和java
2.config
存放了相关配置文件
3.include
存放了一些平台特定的头文件
4.jmods
存放了各种模块
5.legal
存放了各模块的授权文档
6.lib
存放了工具的一些补充JAR包
三、编译和运行
1.jdk/bin下的javac.exe HelloWorld.java 编译
2.java.exe执行HelloWorld.class,class文件或者字节码文件。java HelloWorldclass 运行
四、JRE和JDK
五、注释
1.单行注释 ://
2.多行注释:/* */
3.文档注释:/** */
六、数据类型
1.Java数据类型分类
1.1基本数据类型
取值范围大小关系:double > float > long > int > short > byte
如果要定义 一个整数类型的变量,不知道选择哪种数据类型了,默认使用int。
如果要定义 一个小数类型的变量,不知道选择哪种数据类型了,默认使用double。
如果要定义一个long类型的变量,那么在数据值的后面需要加上L后缀。(大小写都可以)
如果要定义一个float类型的变量,那么在数据值的后面需要加上F后缀。(大小写都可以)
1.2引用数据类型
七、标识符
1.硬性要求:
必须由数字、字母、下划线_、美元符号$组成。
数字不能开头
不能是关键字
区分大小写的
2.软件建议:
2.1小驼峰命名法(变量名和方法名)
如果一个单词,那么首字母小写。
如果多个单词,那么从第二个单词开始,首字母大写。
2.2大驼峰命名法(类名)
如果是一个单词,那么首字母大写。
如果是多个单词,那么每一个单词首字母都需要大写。
八、运算符和表达式
a + b 这个整体就是表达式。而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。
九、隐式转换和强制转换
1. 隐式转换
- 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
- byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
double d = 10;
System.out.println(d);//10.0
byte b = 100;
int i = b;//可以成功赋值
2.强制转换
public class OperatorDemo2 {
public static void main(String[] args) {
double a = 12.3;
int b = (int) a;
System.out.println(b);//12
}
}
十、字符串的+操作
- 当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。
- 当连续进行+操作时,从左到右逐个执行的。
1 + "abc" + 1 //结果:"1abc1"
1 + 2 + "abc" + 2 + 1 //结果:“3abc21”
十一、判断和选择结构(if, switch)
//1.键盘录入星期数
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期");
int week = sc.nextInt();//3
//2.利用switch进行匹配
----------------------------------------------------
利用case穿透简化代码
switch (week){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("没有这个星期");
break;
}
----------------------------------------------------
利用JDK12简化代码书写
switch (week) {
case 1, 2, 3, 4, 5 -> System.out.println("工作日");
case 6, 7 -> System.out.println("休息日");
default -> System.out.println("没有这个星期");
}
十二、循环结构(for, while, do…while)
1.无限循环
for(;;){
System.out.println("循环执行一直在打印内容");
}
while(true){
System.out.println("循环执行一直在打印内容");
}
do{
System.out.println("循环执行一直在打印内容");
}while(true);
2.条件控制语句
- break
- continue
程序自动生成一个1-100之间的随机数,在代码中使用键盘录入去猜出这个数字是多少?
//1.生成一个1-100之间的随机数
Random r = new Random();
int number = r.nextInt(100) + 1;// 0 ~ 99 + 1 --- 1 ~ 100
System.out.println(number);
//2.使用键盘录入去猜出这个数字是多少?
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入一个整数");
int guessNumber = sc.nextInt();
//3.比较
if(guessNumber > number){
System.out.println("您猜的数字大了");
}else if(guessNumber < number){
System.out.println("您猜的数字小了");
}else{
System.out.println("恭喜你,猜中了");
break;
}
}
十三、数组
1.数组的静态初始化和动态初始化
String[] namesArr = new String[]{"zhangsan","lisi","wangwu"};
String[] namesArr = {"zhangsan","lisi","wangwu"};
//1.定义一个数组,存3个人的年龄,年龄未知
int[] agesArr = new int[3];
//2.定义一个数组,存班级10名学生的考试成绩,考试成绩暂时未知,考完才知道。
int[] scoresArr = new int[10];
数组的默认初始化值:
整数类型:0
小数类型:0.0
布尔类型:false
字符类型:'\u0000'
引用类型:null
2.地址值
int[] arr = {1,2,3,4,5};
System.out.println(arr);//[I@6d03e736
double[] arr2 = {1.1,2.2,3.3};
System.out.println(arr2);//[D@568db2f2
以[I@6d03e736为例:
[ :表示现在打印的是一个数组。
I:表示现在打印的数组是int类型的。
@:仅仅是一个间隔符号而已。
6d03e736:就是数组在内存中真正的地址值。(十六进制的)
3.Java内存分配
- 栈 方法运行时使用的内存,比如main方法运行,进入方法栈中执行
- 堆 存储对象或者数组,new来创建的,都存储在堆内存
- 方法区 存储可以运行的class文件