目录
(一)基础知识
1、准备
JDK安装,环境安装,idea安装
2、基础
1.1转义字符:\n,\t,\r
1.2运行HelioWord.java
1)文件编码GBK
(String大写)
2)通过 javac 命令对该 java 文件进行编译,生成 .class 文件
打开CMD,输入javac HelioWord.java
3)通过 java 命令对生成的 class 文件进行运行。
java HelioWord
1.3使用idea编写项目,注意大小写
public class HelloWord {
//主方法,公共,静态,不返回值,主方法,字符串
public static void main(String[] args) {
System.out.println("HelloWord,你好!");
}
}
1.4相对路径与绝对路径,dos
cd ../表示打开上一级,cd /表示打开根目录
磁盘操作命令dos
cd打开,dir展示所有,tree目录树,cls清屏,exit退出
2.1变量
基本数据类型:
整数:byte字节1,short字节2,int字节4,long字节8
浮点:float字节4,double字节8
字符:char字节2 c1 = 'a'(必须单引号,双引号为字符串)
布尔:boolean字节1
引用数据类型:
class类
接口inferface
数组[]
码工具 - 代码在线工具箱-java-api文档
2.2变量类型转换
1)强制转换类型格式:(int)10,(int)(10*3.5)
2)基本与字符串类型转换
基本类型转字符串类型
int a = 1;
String s1 = a + "";
字符串转基本类型
int num = Integer.parseInt(s1);
float num1 = Float.parseFloat(s2);
3.1算数运算符
j= i++;先赋值,再自加,i赋值j,i+1
j= ++i;先自加,再赋值,i+1,i赋值j
3.2比较运算符
3.3逻辑运算符
3.4赋值运算符
b += 1; b=b+2
3.5三元运算符
4.1输入方法:Saanner.next()
4.2进制转换
其它转10进制:数字 × 进制 ×^(总位数-1)+ … + 数字 × 进制 ^ 0
10进制转其它:将数不断除以进制,直到商为 0 ,将每步得到的余数倒过来,就是对应的进制
4.3练习互相转换
4.4位运算
5.1程序控制结构
顺序控制
5.2分支控制
5.2.1单分支与双分支
// 单分支
if(age>18){
System.out.println("已经成年");
}
// 双分支
if(age>18){
System.out.println("已经成年");
} else {
System.out.println("未成年");
}
// 双分支练习
int years = mySaanner.nextInt();
if ((years % 4 == 0 && years % 100 != 0) || years % 400 == 0){
System.out.println(years+"是闰年");
}else {
System.out.println(years+"不是闰年");
}
5.2.2多分支与嵌套分支
import java.util.Scanner;
import java.util.Date;
import java.text.SimpleDateFormat;
public class IfElsePractices {
// 主方法,公共,静态,不返回值,主方法,字符串
// 编写main方法
public static void main(String[] args) {
// 多分支练习
SimpleDateFormat format = new SimpleDateFormat("MM"); //"yyyy-MM-dd hh:mm:ss" 获取系统时间
Date date = new Date();
String month = format.format(date);
System.out.println("现在是:" + month + "月");
int nowm_onth = Integer.parseInt(month); //月份转为整数类型
Scanner mySaanner = new Scanner(System.in);
System.out.println("请输入年龄:");
int age = mySaanner.nextInt(); //用户输入年龄
// 旺季3分支
if (nowm_onth > 4 && nowm_onth < 11) {
if (age > 18 && age < 60) {
System.out.println("成人票价:60 元");
} else if (age < 16) {
System.out.println("儿童票价:30 元");
} else if (age > 60) {
System.out.println("老人票价:20 元");
}
} else {
// 淡季双分支
if (age > 18 && age < 60) {
System.out.println("成人票价:40 元");
} else {
System.out.println("其他票价:15 元");
}
}
}
}
5.2.3switch 分支结构
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class IfSwitchPractices {
// 主方法,公共,静态,不返回值,主方法,字符串
// 编写main方法
public static void main(String[] args) {
// 多分支练习
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //"yyyy-MM-dd hh:mm:ss" 获取系统时间
Date date = new Date();
String month = format.format(date);
System.out.println("当前时间:" + month);
Scanner mySaanner = new Scanner(System.in);
// 对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。(注:输入的成绩不能大于 100), 提示 成绩/60
System.out.println("请输入成绩:");
int sorce = mySaanner.nextInt(); //用户输入成绩
if (sorce >= 0 && sorce <= 100){
switch ((int)sorce / 60){
case 0:
System.out.println("不合格");
break; //break必须有
case 1:
System.out.println("合格");
break;
}
}else {
System.out.println("你输入成绩的不对,请重新输入");
}
}
}
5.3.4 switch 和 if 的比较
5.3循环控制
5.3.1 for循环控制
结构:for(变量初始化;条件;变量迭代){}
for (int num = 1; num <= 2; num++){
// int res = 1;
System.out.println("你好!" + num);
}
for (int num1 = 1,num2 =2; num1 <= 2; num1++,num2 += 1){
// int res = 1;
System.out.println("你好!" + num1 + ", num2=" + num2);
}
练习:
// 打印 1~100 之间所有是 9 的倍数的整数,统计个数 及 总和
int i = 1;
int count = 0;
int sum = 0;
for (; i <= 100; i++){
if (i % 9 == 0){
System.out.println(i);
count++;
sum += i;
}
}
System.out.println("出现次数:" + count);
System.out.println("求和:" + sum);
5.3.2 while循环控制
// 打印 1—100 之间所有能被 3 整除的数,统计个数 及 总和
int i = 1;
int count = 0;
int sum = 0;
while (i <= 100){
if (i % 3 == 0) {
System.out.println("你好!" + i);
count++;
sum += i;
}
i++;
}
System.out.println("出现次数:" + count);
System.out.println("求和:" + sum);
5.3.3 do..while循环结构
先执行一次,再判断
// 统计 1---200 之间能被 5 整除但不能被 3 整除的个数
int i = 1;
int count = 1;
int sum = 0;
do {
if (i % 5 == 0 && i % 3 != 0){
System.out.println(i);
count++;
sum += i;
}
i++;
}while (i <= 200); //;不能忘
System.out.println("出现次数:" + count);
System.out.println("求和:" + sum);
5.3.4 多重循环
外层for循环执行一次,内层for循环开始执行至结束,外层for循环继续开始执行
多重循环 练习
5.4数组
// 数组
double sumhens = 0;
double[] hens = {1, 2, 3, 4, 5};
for(int i = 0; i < hens.length; i++){
System.out.println("第"+ (i+1) +"个值 = " + hens[i]);
sumhens += hens[i];
}
System.out.println("数组和 = " + sumhens);
System.out.println("数组平均 = " + sumhens/hens.length);
Scanner myScanner = new Scanner(System.in);
// 声明数组
double[] num;
// 分配数组空间
num = new double[3];
// 数组写入
for(int i = 0; i < num.length; i++){
num[i] = myScanner.nextDouble();
}
System.out.println(Arrays.stream(num).average());
// 数组打印输出
for(int i = 0; i < num.length; i++) {
System.out.println("第" + (i + 1) + "个值 = " + num[i]);
}
数组练习p162