//后面再用Eclipse或者IDEA
dir : 列出目录下的内容
md: 创建目录
rd : 删除目录
cd: 进入目录
cd… : 返回上一级
cd :返回根目录
del : 删除文件
echo ABC>1.doc 创建有内容的文件
编写: 代码保存在以".java"结尾的源文件中
cmd 得找到对应的文件目录!
编译: 使用 “javac 源文件.java” 编译文件
运行: 使用 “java 类名” 运行文件
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
标识符命名规范
①不包含关键字/保留字/空格 、不能数字开头 、 区分大小写
② 包括 26个字母 和 0-9 和 _ 和 $
包名: 全小写xxxyyyzzz
类名、接口名:首字母大写XxxYyyZzz
变量名、方法名:首字母小写,随后首字母大写 xxxYyyZzz
常量名: 全大写,用下划线 XXX_YYY_ZZZ
基本数据类型:
整型: byte/short/int/long [不定义的整型常量默认为int] 1248
浮点型:float/double [默认为double] 48
字符型:char 2 【使用’a’ 一个字符两个字节、或用转义字符、unicode字符集】
布尔型:boolean 0/1
引用数据类型:
类 class 【字符串String 使用" ",内容不限制】
接口 interface
数组 [array]
class ChangeTest {
public static void main(String[] args) {
String s1 = "我";
String s2 = "你";
System.out.println(s1 + "爱" + s2);
String temp;
temp = s1;
s1 = s2;
s2 = temp;
System.out.println(s1 +"也爱"+ s2);
}
}
//交换两个变量
运算规则① 自动提升类型
byte、char、short ==>int ==>long ==>float ==>double
②强制类型转换 【①的逆运算】
强转符() ,可能精度损失
double d1 = 12.9
int i1 = (int)d1 //截断操作,精度损失
String 字符串 【引用数据类型】
①String s1 = “Hello World”;
②可以和8种基本数据类型运算
String info = s1 + i1 //连接运算
二进制0b 、十进制 、 八进制0 、 十六进制0x 开头表示
二进制 原码=>反码=>补码 计算机储存默认补码
二=>十 反推 十=>二 除2取余求逆
+,-,+,-, * , / [取商,区分结果的整型和浮点型] , % [取模/余,结果符号与被模数一致]
(前)++ (后)++ [先自增1再运算 / 先运算后自增1] [不会改变变量类型]
(前)-- (后)-- [先自减1再运算 / 先运算后自减1]
+连接符 适用于String与其他类型之间
= += -= *= /= %= [不会改变数据类型]
int num1=10;
num1 += 2; // int num1 = num1 + 2
== ,!= ,< , > , <= , >=, instanceof ,比较的结果为boolean
//注意==和=区分
运用于boolean
&与 &&短路与 【左边为false, 短路右边不用运算,不影响输出结果】 多用短路
|或 ||短路或 【左边为true, 短路右边不用运算,不影响输出结果】 多用短路
! 非 ^异或(异则TRUE)
()? :
(条件表达式)? 表达式1 : 表达式2 [条件表达式结果为boolean,true执行1,false执行2]
//1和2可以统一类型
String max = (m > n)? "m大“ : ((m == n)? “m=n” : “n大”) //嵌套使用
都可以改写成if-else , 反正不然, 三元较简易
1.导包
// import java.util.Scanner;
2.Scanner的实例化
// Scanner scan = new Scanner(System.in);
3.调用Scanner的相关方法,获取相应数据类型
// int num = scan.nextInt(); //next(); //nextDouble(); //nextBoolean();
double value = Math.random();// [0.0,1.0)
[a,b] : (int)(Math.random() * (a-b+1) + a) //如10–99,(int)(Math.random() * (90) + 10)
条件表达式输出为boolean
说明:
1.多个if-else嵌套使用
2.如果多个条件表达式之间不为互斥关系,语句顺序会影响结果
3.如果执行语句只有一行,可以省略{} ,但不建议
class CompareTest {
public static void main(String[] args) {
int a = 10000,b = 400,c = 300000;
int max;
//max = (a >= b && a >= c)? a : (b >= c)? b: c;
if(a >= b && a >= c){
max = a;
}else {
if(b >= c){
max = b;
}
else{
max = c;
}
}
System.out.println("最大数为" + max);
}
}
//取最大值
switch-case
说明:
1.根据表达式中的值,依次匹配case中的常量,执行语句后会继续向下执行其他case结构,直至break或结束
2.switch中的表达式:byte short char int string(7.0) 枚举类型(5.0) (6种)[不能是浮点和boolean]
3.case中只能声明常量,多个case中的执行语句一样,可以合并
注:switch-case都可以转换为if-else ,反之不然。分支结构两者都可以使用时,简易(case较少)时才用switch-case
import java.util.Scanner;
class SwitchCaseTest{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入year");
int year = scan.nextInt();
System.out.println("请输入month");
int month = scan.nextInt();
System.out.println("请输入day");
int day = scan.nextInt();
int sumDays = 0;
int FebDays;
//判断year是否闰年;
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
FebDays = 29;
}else{
FebDays = 28;
}
//累加求sumDays;
switch(month){
case 12:
sumDays += 30;
case 11:
sumDays += 31;
case 10:
sumDays += 30;
case 9:
sumDays += 31;
case 8:
sumDays += 31;
case 7:
sumDays += 30;
case 6:
sumDays += 31;
case 5:
sumDays += 30;
case 4:
sumDays += 31;
case 3:
sumDays += FebDays;
case 2:
sumDays += 31;
case 1:
sumDays += day;
}
System.out.println(year + "年" + month + "月" + day + "日" + "是当年中的第" + sumDays + "天");
}
}
//输入年月日判断是当年的第几天
for①初始化条件 ②循环条件(boolean) ③循环体 ④迭代条件
执行顺序:①-②-③-④-②-③-④-……-②
//在循环体中求和: sum += i; 计数 count++;
import java.util.Scanner;
class ForTest1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("正整数m=?");
int m = scan.nextInt();
System.out.println("正整数n=?");
int n = scan.nextInt();
int min = (m < n)? m : n;
int max = (m > n)? m : n;
for(int i = min;i >= 1;i--){
if(m % i == 0 && n % i == 0){
System.out.println("最大公约数为" + i);
break;//跳出循环;
}
}
for(int j = max;j <= m * n;j++){
if(j % m == 0 && j % n == 0 ){
System.out.println("最小公倍数为" + j);
break;
}
}
}
}
//求m和n的最大公约数和最小公倍数
while①初始化条件 ②循环条件(boolean) ③循环体 ④迭代条件
执行顺序:①-②-③-④-②-③-④-……-②
// ①在for时只在循环内有效,在while时是循环外声明
①初始化条件 ②循环条件(boolean) ③循环体 ④迭代条件
结构:
执行顺序:①-③-④-②-③-④-……-②
//至少会执行一次循环体 ,同样是true时循环
多次执行循环时,while和do-while没有区别
五一放假正好出去溜达了几天,学习进度略慢,下周开始同步学习《计算机组成原理》,JAVA基础有点薄弱暂时只能跟着视频学习,学完一类基础再用书本复习一遍吧~
同时也对未来的方向感到迷茫,每个方向都是各种劝退,学着先吧~反之通用基础学了不亏。



