一仪召、計算機基礎
1. 打開 CMD 的方式
- 開始 > Windows 系統(tǒng) > 命令提示符。
- Win + R 輸入 CMD 打開控制臺 (推薦使用)牲距。
- 在任意文件夾下返咱,按住 Shift 鍵 + 鼠標右鍵 打開命令行窗口。
- 在資源管理器的地址欄前加上 CMD 路徑牍鞠。
2.管理員身份運行方式
- 選擇以管理員方式運行咖摹。
3.常見的Dos命令
-
盤符切換:英文(盤符 + 冒號)
Microsoft Windows [版本 10.0.19043.1348] (c) Microsoft Corporation。保留所有權(quán)利难述。 C:\Users\xinzh>d: D:\>
-
查看當前盤符下的全部目錄:dir
D:\>dir 驅(qū)動器 D 中的卷是 工作臺 卷的序列號是 1718-20F6 D:\ 的目錄 2021/05/17 16:15 <DIR> BaiduNetdiskDownload 2021/05/15 19:50 <DIR> CloudMusic 2021/05/14 21:19 <DIR> Dev-Cpp 2021/05/14 16:56 <DIR> DTL8Folder 2021/05/14 22:35 <DIR> HBuilderX 2021/05/14 22:36 <DIR> java 2021/05/14 17:00 <DIR> MyDrivers 2021/05/14 22:47 <DIR> Notepad++ 2021/05/14 22:29 <DIR> Sublime Text 3 2021/05/14 18:56 <DIR> Typora 2021/05/17 17:53 <DIR> VCW 2021/05/14 21:25 <DIR> VS2017 2021/05/14 21:47 <DIR> Windows Kits 0 個文件 0 字節(jié) 13 個目錄 663,783,088,128 可用字節(jié)
-
切換目錄:cd change directory
E:\>cd /d d: d:\>cd /d d:\leven // '/d'可實現(xiàn)進入跨盤符目錄切換 d:\LEVEN>cd .. d:\>
返回上一級:cd ..
清理屏幕: cls
退出終端:exit
查看電腦IP信息:ipconfig
打開計算器:calc
打開畫圖:mspaint
打開記事本:notepad
ping 命令:ping 網(wǎng)址
-
文件操作
C:\Users\xinzh\Desktop>md test C:\Users\xinzh\Desktop>cd test C:\Users\xinzh\Desktop\test>cd>a.txt C:\Users\xinzh\Desktop\test>
-
刪除文件
C:\Users\xinzh\Desktop\test>del a.txt C:\Users\xinzh\Desktop\test>cd .. C:\Users\xinzh\Desktop>rd test C:\Users\xinzh\Desktop>
二萤晴、Java 基礎
1. 簡介及安裝、配置
2. 編寫第一個 Java 程序
-
新建 Hello.java 文件胁后,內(nèi)容如下:
public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello,world!"); // 輸出 Hello,wrold! } }
編譯 java 文件:在命令行窗口輸入
javac HelloWorld.java
店读,回車鍵編譯代碼,生成 HelloWorld.class 文件
- 運行 class 文件:輸入
java HelloWorld
攀芯,回車鍵運行程序
可能遇到錯誤的情況
- 單詞大小寫屯断,Java 區(qū)分大小寫
- 盡量使用英文
- 文件名與類名必須保持一致,且首字母要大寫
- 符號中不能出現(xiàn)中文
3. Java 三種注釋方式
-
單行注釋
//
, idea 快捷鍵Ctrl + /
idea 常用快捷鍵public class HelloWorld { public static void main(String[] args) { // 單行注釋侣诺,輸出 Hello,wrold! System.out.println("Hello,world!"); } }
-
多行注釋
/* */
, idea 快捷鍵Ctrl + Shift + /
public class HelloWorld { public static void main(String[] args) { /* 多行注釋 */ System.out.println("Hello,world!"); } }
文檔注釋:JavaDoc
/** */
/**
* @Description HelloWorld
* @Author LIU
*/
public class HelloWorld {
public static void main(String[] args) {
// 單行注釋殖演,輸出 Hello,wrold!
System.out.println("Hello,world!");
}
}
4. 標識符與關鍵字
- 標識符
Java 所有的組成部分都需要名字。類名年鸳、變量名以及方法名都被稱為標識符趴久。- 所有的標識符都應該以字母
A-Z
或者a-z
,美元符$
搔确,或者下劃線_
開始彼棍; - 首字符之后可以是字母
A-Z
或者a-z
美元符$
灭忠、下劃線_
或數(shù)字的任何字符組合; - 不能使用關鍵字作為變量名或方法名座硕;
- 標識符是大小寫敏感的弛作;
- 可以使用中文命名,但是一般不建議這樣去使用坎吻,也不建議使用拼音缆蝉。
- 合法標識符舉例:age、$salary瘦真、_value刊头、__1_value
- 非法標識符舉例:123abc、-salary
- 所有的標識符都應該以字母
/**
* @author Liu
* @create 2021-11-26 11:38
*/
public class Demo01 {
public static void main(String[] args) {
String Ahello = "Liu";
String hello = "Liu";
String $hello = "Liu";
String _hello = "Liu";
String _vvhh = "Liu";
String 變量 = "Liu"; // 不建議這樣去使用
}
}
- Java 關鍵字 點擊查看
5. 數(shù)據(jù)類型
- 語言類型分類
- 強類型語言:要求變量的使用要嚴格符合規(guī)定诸尽,所有變量都必須先定義后才能使用原杂。
- 弱類型語言
- Java 數(shù)據(jù)類型基本分類:基本類型和引用類型
- 基本類型(八種)
- 數(shù)值類型
- 整數(shù)類型
- byte (位) 占1字節(jié),范圍:
-128
-127
- short (短整數(shù)) 占2字節(jié)您机,范圍:
-2^15
-2^15-1
- int (整數(shù)) 占4字節(jié)穿肄,范圍:
-2^31
-2^31 - 1
- long (長整數(shù)) 占8字節(jié),范圍:
-2^63
-2^63-1
- byte (位) 占1字節(jié),范圍:
- 浮點類型
- float (單精度) 占4字節(jié)
- double (雙精度) 占8字節(jié)
- 整數(shù)類型
- 字符類型:char (字符) 占2字節(jié)
- boolean 類型 (布爾值):占1位其值只有 true 和 false 兩個际看。
- 數(shù)值類型
- 引用類型 (三種)
- 類
- 接口
- 數(shù)組
public class Demo02 {
public static void main(String[] args) {
// 八大基本數(shù)據(jù)類型
// 整數(shù)
int num1 = 10; // 最常用
byte num2 = 20;
short num3 = 30;
long num4 = 40L; // Long 類型要在數(shù)字后面加 L
// 小數(shù):浮點數(shù)
float num5 = 50.1F; // float 類型要在數(shù)字后面加 F
double num6 = 3.1415926534546246455;
// 字符類型
char name = '中';
// 字符串咸产,String 不是關鍵字,是類
String names = "Liu";
// 布爾值
boolean flag = true;
boolean flag2 = false;
}
}
- 什么是字節(jié)
- 位(bit):是計算機內(nèi)部數(shù)據(jù)儲存的最小單位仲闽,11001100是一個八位二進制數(shù)脑溢。
- 字節(jié)(byte):是計算機中數(shù)據(jù)處理的基本單位,習慣上用大寫 B 來表示赖欣,1B(byte 字節(jié))= 8bit(位)屑彻。
- 字符:是指計算機中使用的字母、數(shù)字顶吮、字和符號社牲。
- 1bit表示1位
- 1Byte表示一個字節(jié)1B = 8b
- 1024B = 1KB
- 1024KB = 1M
- 1024M = 1G
數(shù)據(jù)類型擴展知識
public class Demo03 {
public static void main(String[] args) {
// 整數(shù)拓展: 進制 二進制0b 十進制 八進制0 十六進制0x
int i=10;
int i2 = 010; // 八進制0
int i3 = 0x10; // 十六進制0x
System.out.println(i); // 10
System.out.println(i2); // 8
System.out.println(i3); // 16
System.out.println("-------------------------------------");
//************************************************
// 浮點數(shù)拓展
// BigDecimal 數(shù)學工具類
// float 有限 離散 舍入誤差 大約 接近但不等于
// 最好完全避免使用浮點數(shù)進行比較
float f = 0.1f; // 0.1
double d = 1.0/10; // 0.1
System.out.println(f==d); // false
float d1 = 2425444564215654564f;
float d2 = d1 + 1;
System.out.println(d1==d2); // true
System.out.println("-------------------------------------");
//************************************************
// 字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); // 強制轉(zhuǎn)換
System.out.println(c2);
System.out.println((int)c2); // 強制轉(zhuǎn)換
// 所有字符的本質(zhì)還是數(shù)字
// 編碼 Unicode 2字節(jié) 0 - 65536 Excel
char c3 = '\u0061';
System.out.println(c3); // a
// 轉(zhuǎn)義字符
// \t 制表符
// \n 換行
// ......
System.out.println("hello\tworld!");
System.out.println("hello\nworld!");
System.out.println("-------------------------------------");
//
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); // false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd); // true
// 布爾值擴展
boolean flag = true;
if(flag==true){} // 新手
if(flag){} // 老油條
// 代碼要精簡易讀
}
}
6. 類型轉(zhuǎn)換
-
由于 Java 是強類型語言,所以要進行有些運算的時候的悴了,需要用到類型轉(zhuǎn)換搏恤。
低 ------------------------------------------------> 高 byte -> short -> char -> int -> long -> float -> double
-
運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型湃交,然后進行運算熟空。
public class Demo04 { public static void main(String[] args) { int i = 128; byte b = (byte)i; // 內(nèi)存溢出 double b1 = i; // 強制轉(zhuǎn)換 (類型)變量名 高--低 // 自動轉(zhuǎn)換 低--高 System.out.println(i); System.out.println(b); System.out.println(b1); /* 注意點: 1.不能對布爾類型轉(zhuǎn)換 2.不能將對象類型轉(zhuǎn)換為不相干的類型 3.在把高容量轉(zhuǎn)換到低容量時,強制轉(zhuǎn)換 4.轉(zhuǎn)換的時候可能存在內(nèi)存溢出巡揍,或者精度問題痛阻! */ System.out.println("++++++++++++++++++++++++++++++++++++"); System.out.println((int)123.7); System.out.println((int)-45.89f); System.out.println("======================="); char a = 'a'; int c = a+1; System.out.println(c); // 98 System.out.println((char)c); // b } }
常見問題
public class Demo05 {
public static void main(String[] args) {
// 操作比較大時菌瘪,注意溢出
// JDK7特性腮敌,數(shù)字之間可以用下劃線分割
int money = 10_0000_0000;
System.out.println(money);
int years = 20;
int total = money*years; // -1474836480 計算時溢出
System.out.println(total);
long total2 = money*years;
System.out.println(total2); // 默認是int阱当,轉(zhuǎn)換之前已經(jīng)存在問題了!!!
long total3 = money*(long)years;
System.out.println(total3); // 20000000000
}
}
7. 變量與常量
- 變量:可以變化的量。
- Java 是一種強類型語言糜工,每個變量都必須聲明其類型弊添。
- Java 變量是程序中最基本的存儲單元,其要素包括變量名捌木,變量類型和作用域油坝。
- 每個變量都有類型,類型可以是基本類型刨裆,也可以是引用類型澈圈。
- 變量名必須是合法的標識符。
- 變量聲明是一條完整的語句帆啃,因此每一個聲明都必須以分號結(jié)束瞬女。
public class Demo06 { static int allClicks = 0; // 類變量 String str = "hello world"; // 實例變量 public void method(){ int i = 0; // 局部變量 } public static void main(String[] args) { // int a,b,c; // int a=1,b=2,c=3; String name = "Liu"; char x = 'X'; double pi = 3.14; } }
public class Demo07 { // 類變量 static static double salary = 2500; // 屬性:變量 // 實例變量:從屬于對象:實例變量:從屬于對象;如果不自行初始化努潘,這個類型的默認值 0 0.0 // 布爾值:默認是 faLse // 除了基本類型诽偷,其余的都是null String name; int age; // main 方法 public static void main(String[] args) { // 局部變量:必須聲明和初始化值 int i = 10; System.out.println(i); // 變量類型 變量名字 = new Demo08(); Demo07 demo07 = new Demo07(); System.out.println(demo07.age); System.out.println(demo07.name); // 類變量 static System.out.println(salary); } // 其他方法 public void add(int i){ System.out.println(i); } }
- 常量( Constant):初始化( initialize)后不能再改變值!不會變動的值疯坤;
- 所謂常量可以理解成一種特殊的變量报慕,它的值被設定后,在程序運行過程中不允許被改變压怠。
- 常量名一般使用大寫字符眠冈。
public class Demo08 { // 修飾符,不存在先后順序 static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }
- 變量的命名規(guī)范
- 所有變量刑峡、方法洋闽、類名:見名知意;
- 類成員變量:首字母小寫和駝峰原則:monthSalary突梦;
- 局部變量:首字母小寫和駝峰原則诫舅;
- 常量:大寫字母和下劃線:MAX_VALUE;
- 類名:首字母大寫和駝峰原則:Man, GoodMan宫患;
- 方法名:首字母小寫和駝峰原則:run()刊懈,runRun()。
8. 基本運算符
Java 語言支持如下運算符:
- 算術運算符:+娃闲,-虚汛,*,/皇帮,%卷哩,++,--
- 賦值運算符: =
- 關系運算符:>属拾,≤将谊,>=冷溶,<=,==尊浓,!=逞频, instanceof
- 邏輯運算符:&&,‖栋齿,!
- 位運算符:&苗胀,|,^瓦堵,~基协,>>,<<菇用,>>>(了解1ぬ汀!E偬邸)
- 條件運算符: 泉唁?:
- 擴展賦值運算符:+=,-=揩慕,*=亭畜,/=
查看更多
package github.demo01;
public class Demo01 {
public static void main(String[] args) {
// 二元運算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a/(double)b);
}
}
package github.demo01;
public class Demo02 {
public static void main(String[] args) {
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);
System.out.println(b+c+d);
System.out.println(c+d);
}
}
package github.demo01;
public class Demo03 {
public static void main(String[] args) {
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);
System.out.println(b+c+d);
System.out.println(c+d);
System.out.println((double)c+d);
}
}
package github.demo01;
public class Demo04 {
public static void main(String[] args) {
// 關系運算符返回的結(jié)果
int a = 10;
int b = 20;
int c = 21;
System.out.println(c%a); // c / a 的余數(shù)
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
9. 自增自減運算符、初識 Math 類
package github.demo01;
public class Demo05 {
public static void main(String[] args) {
// ++ -- 自增迎卤,自減 一元運算符
int a = 3;
int b = a++; // 執(zhí)行完這一行代碼后拴鸵,先給b賦值,再自增
System.out.println(a);
int c = ++a; // 執(zhí)行完這一行代碼前蜗搔,先自增劲藐,再給c賦值
System.out.println(a);
System.out.println(b);
System.out.println(c);
// 冪運算 2^3
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
10. 邏輯運算符、位運算符
package github.demo01;
public class Demo06 {
// 邏輯運算符
public static void main(String[] args) {
// 與(and)一假則假 或(or)一真則真 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:" + (a && b)); // 邏輯與:兩個變量都為真樟凄,結(jié)果才為true
System.out.println("a || b:" + (a || b)); // 邏輯或:兩個變量有一個為真聘芜,則結(jié)果才為true
System.out.println("!(a && b):" + !(a && b)); // 取反:如果是真,則變?yōu)榧俜炝洌蝗绻羌偬郑瑒t變?yōu)檎? // 短路運算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
package github.demo01;
public class Demo07 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
----------------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16
<< 左移一位等同于 *2
>> 右移一位等同于 /2
*/
System.out.println(2<<3);
}
}
11. 三元運算符
package github.demo01;
public class Demo08 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a += b; // a = a+b
a -= b; // a = a-b
System.out.println(a);
// 字符串連接 + String
System.out.println(""+a+b); // 1020 直接轉(zhuǎn)換為字符串
System.out.println(a+b+""); // 30 先計算 a+b 再轉(zhuǎn)成字符串
}
}
package github.demo01;
public class Demo08 {
public static void main(String[] args) {
// 三元運算符
// x ? y : z
// 如果x==true,則結(jié)果為y叔壤,否則結(jié)果為z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
}
}
12. 包機制
為了更好地組織類瞎饲,Java 提供了包機制,用于區(qū)別類名的命名空間炼绘。
-
包語句的語法格式為:
package pkg1[.pkg2[.pkg3……]];
一般利用公司域名倒置作為包名嗅战;如:
com.xxx.www
-
為了能夠使用某一個包的成員,我們需要在 Java 程序中明確導入該包俺亮。使用
”import”
語句可完成此功能驮捍。import package1[.package2……].(classname | *); // * 表示導入包下所有的類
13. JavaDoc
-
javadoc
命令是用來生成自己 API 文檔的形庭。 - 參數(shù)信息
- @ author 作者名
- @ version 版本號
- @ since 指明需要最早使用的 jdk 版本
- @ param 參數(shù)名
- @ return 返回值情況
- @ throws 異常拋出情況
package github.demo01;
public class Doc {
String name;
/**
* @author
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
javadoc -encoding UTF-8 -charset UTF-8 Doc.java // 命令行生成 java 文檔