Java基础(1)基本语法
一、Java的特點
1、Java語言是面向對象的
2、Java語言是強壯的
3、Java語言是跨平臺性的
4、Java語言是解釋型的
二、Java核心機制
JDK = JRE + 開發工具箱
JRE = JVM + JavaSE標準庫
三、編寫第一個Java程序
寫一個名為Hello的java程序,輸出hello,world!
public class Hello{
?? ?public static void main(String[] args){
?? ??? ?System.out.println("hello,world!");
?? ?}
}
1.public class Hello表示Hello是一個類,是一個public公有的類
2.Hello{}表示一個類的開始和結束
3.public static void main(String[] args)表示一個主方法,即我們程序的入口
4.main()表示方法的開始和結束
5.System.out..println("hello,world!");表示輸出語句到屏幕
6.分號(;)表示語句結束?
四、Java注意事項
1、Java區分大小寫
2、類名必須以英文字母開頭,后接字母,數字和下劃線的組合 習慣性大寫 例上圖:(Hello)
3、所有的方法名都應該以小寫字母開頭,如果方法名含有若干單詞,則后面的每個單詞首字母大寫
4、源文件名與類名必須相同 例上圖:保存文件時應命名位Hello
5、Java有且只有一個public類 其他類個數不限
6、main方法有固定的書寫格式
7、{} 、()、[ ]括號都是成對出現
五、Java組成
一個 Java 程序可以認為是一系列對象的集合
對象:對象是類的一個實例,有狀態和行為。例如,一只貓是一個對象,它的狀態有:顏色、名字、品種;行為有:喵叫等。
類:類是一個模板,它描述一類對象的行為和狀態。
方法:方法就是行為,一個類可以有很多方法。邏輯運算、數據修改以及所有動作都是在方法中完成的。
實例變量:每個對象都有獨特的實例變量,對象的狀態由這些實例變量的值決定。
六、Java標識符
Java 所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標識符。
1、所有的標識符都應該以字母(A-Z 或者 a-z),美元符($)、或者下劃線(_)開始
2、首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下劃線(_)或數字的任何字符組合
3、關鍵字不能用作標識符
4、標識符區分大小寫
七、Java控制訪問權限
| 訪問控制 | private | 私有的 |
| protected | 受保護的 | |
| public | 公共的 | |
| default | 默認的 |
八、Java注釋
注釋快捷鍵:ctrl+/
1、單行注釋: //
2、多行注釋:/*
? ? ? ? ? ? ? ? ? ? ? ? */?
3、文檔注釋(Java Doc標簽):/**
? ? ? ? ? ? ? ? ? ? ? ????????????????????????????????? */
九、Java代碼規范
1、類、方法注釋要以Java Doc注釋方式來寫 即文檔標簽
2、非Java Doc注釋,即單行注釋/多行注釋,往往是給代碼的維護者看的,著重告訴讀者為什么這樣寫,如何修改,注意什么問題等
3、使用Tab鍵實現代碼縮進(默認向右),使用shift+Tab鍵取消縮進(即向左)
4、運算符和=兩邊習慣性各加一個空格,使用快捷鍵Ctrl+Alt+L快速規范代碼格式
5、源文件使用utf-8編碼
6、行寬不要超過80個字符
7、代碼編寫風格分為次行風格和行尾風格,推薦使用行尾風格
次行風格:
行尾風格:?
十、Java代碼的編寫步驟
1、編寫Java的源代碼
public class Hello{
?? ?public static void main(String[] args){
?? ??? ?System.out.println("hello,world!");
?? ?}
}
2、Java.c編譯,得到對應的.class字節碼文件
在控制臺(Win+R)輸入javac Hello.java,將源文件編譯成字節碼文件,目錄下會出現Hello.class文件表示編譯成功
?
3、Java運行,本質就是把.class加載到jvm運用
??運行字節碼文件,在控制臺輸入java Hello
十一、Java變量
變量分為兩種:基本類型的變量和引用類型的變量?變量必須先定義后使用 數字代表字節數
1、變量是程序的基本組成單位
2、變量的三個基本要素(類型+名稱+值)
3、變量相當于內存中一個數據存儲空間的表示
4、Java提供了8種基本類型,6種數字類型(4種整數,2種浮點數),1種字符型,1種布爾型)
(1)4種整數類型
| 整數類型 | 占用空間(字節) | 范圍 | ||
| byte[字節] | 1 | -128~127 | ||
| short[短整型] | 2 | -2^15~2^15-1 | ||
| int[整型] | 4 | -2^31~2^31-1 | ||
| long[長整型] | 8 | -2^63~2^63-1 | ||
1、聲明long型必須在后面在”l“或”L“
2、bit:計算機種最小的存儲單位
? ? ?byte:計算機種基本的存儲單位
? ? ?1 byte = 8 bit
(2)2種浮點數
5.12e2? ? ? ? 5.12X10的2次方
5.12e-2? ? ? ? 5.12/10的2次方
| 浮點數類型 | 占用空間(字節) | 范圍 |
| 單精度:float | 4 | -3.403E38~3.403E38 |
| 雙精度:double | 8 | -1.798E308~1.798E308 |
1、雙精度的精度更準
2、浮點數的存放形式:浮點數+指數位+尾數位(可能丟失)
3、聲明float型常量必須在后面加”f” 或“ F"
4、浮點數類型剛好是整數后面也會加.0 ????????例:15會寫成15.0
5、十進制形式,0可以省略? ? ? ? 例:0.52 可以寫成.52????????
6、double num = 8.1/3;? ? ? ? 結果是一個接近2.7的小數而不是2.7?
? ? ? 當我們對運算結果是小數進行相等判斷時,應該是以兩個數差值的絕對值,在某個精度范圍判斷
(3)1種字符型
1、char 存儲單個字符(String是存儲多個字符),char是兩個字節可以存儲漢字
2、char可以直接存放一個數字,輸出是ASCII碼
3、字符常量用單引號(‘ ’)括起來
4、char是可以進行運算的,進行運算后對照ASCII碼輸出
| Bin (二進制) | Oct (八進制) | Dec (十進制) | Hex (十六進制) | 縮寫/字符 | 解釋 |
| 0000 0000 | 00 | 0 | 0x00 | NUL(null) | 空字符 |
| 0000 0001 | 01 | 1 | 0x01 | SOH(start of headline) | 標題開始 |
| 0000 0010 | 02 | 2 | 0x02 | STX (start of text) | 正文開始 |
| 0000 0011 | 03 | 3 | 0x03 | ETX (end of text) | 正文結束 |
| 0000 0100 | 04 | 4 | 0x04 | EOT (end of transmission) | 傳輸結束 |
| 0000 0101 | 05 | 5 | 0x05 | ENQ (enquiry) | 請求 |
| 0000 0110 | 06 | 6 | 0x06 | ACK (acknowledge) | 收到通知 |
| 0000 0111 | 07 | 7 | 0x07 | BEL (bell) | 響鈴 |
| 0000 1000 | 010 | 8 | 0x08 | BS (backspace) | 退格 |
| 0000 1001 | 011 | 9 | 0x09 | HT (horizontal tab) | 水平制表符 |
| 0000 1010 | 012 | 10 | 0x0A | LF (NL line feed, new line) | 換行鍵 |
| 0000 1011 | 013 | 11 | 0x0B | VT (vertical tab) | 垂直制表符 |
| 0000 1100 | 014 | 12 | 0x0C | FF (NP form feed, new page) | 換頁鍵 |
| 0000 1101 | 015 | 13 | 0x0D | CR (carriage return) | 回車鍵 |
| 0000 1110 | 016 | 14 | 0x0E | SO (shift out) | 不用切換 |
| 0000 1111 | 017 | 15 | 0x0F | SI (shift in) | 啟用切換 |
| 0001 0000 | 020 | 16 | 0x10 | DLE (data link escape) | 數據鏈路轉義 |
| 0001 0001 | 021 | 17 | 0x11 | DC1 (device control 1) | 設備控制1 |
| 0001 0010 | 022 | 18 | 0x12 | DC2 (device control 2) | 設備控制2 |
| 0001 0011 | 023 | 19 | 0x13 | DC3 (device control 3) | 設備控制3 |
| 0001 0100 | 024 | 20 | 0x14 | DC4 (device control 4) | 設備控制4 |
| 0001 0101 | 025 | 21 | 0x15 | NAK (negative acknowledge) | 拒絕接收 |
| 0001 0110 | 026 | 22 | 0x16 | SYN (synchronous idle) | 同步空閑 |
| 0001 0111 | 027 | 23 | 0x17 | ETB (end of trans. block) | 結束傳輸塊 |
| 0001 1000 | 030 | 24 | 0x18 | CAN (cancel) | 取消 |
| 0001 1001 | 031 | 25 | 0x19 | EM (end of medium) | 媒介結束 |
| 0001 1010 | 032 | 26 | 0x1A | SUB (substitute) | 代替 |
| 0001 1011 | 033 | 27 | 0x1B | ESC (escape) | 換碼(溢出) |
| 0001 1100 | 034 | 28 | 0x1C | FS (file separator) | 文件分隔符 |
| 0001 1101 | 035 | 29 | 0x1D | GS (group separator) | 分組符 |
| 0001 1110 | 036 | 30 | 0x1E | RS (record separator) | 記錄分隔符 |
| 0001 1111 | 037 | 31 | 0x1F | US (unit separator) | 單元分隔符 |
| 0010 0000 | 040 | 32 | 0x20 | (space) | 空格 |
| 0010 0001 | 041 | 33 | 0x21 | ! | 嘆號 |
| 0010 0010 | 042 | 34 | 0x22 | " | 雙引號 |
| 0010 0011 | 043 | 35 | 0x23 | # | 井號 |
| 0010 0100 | 044 | 36 | 0x24 | $ | 美元符 |
| 0010 0101 | 045 | 37 | 0x25 | % | 百分號 |
| 0010 0110 | 046 | 38 | 0x26 | & | 和號 |
| 0010 0111 | 047 | 39 | 0x27 | ' | 閉單引號 |
| 0010 1000 | 050 | 40 | 0x28 | ( | 開括號 |
| 0010 1001 | 051 | 41 | 0x29 | ) | 閉括號 |
| 0010 1010 | 052 | 42 | 0x2A | * | 星號 |
| 0010 1011 | 053 | 43 | 0x2B | + | 加號 |
| 0010 1100 | 054 | 44 | 0x2C | , | 逗號 |
| 0010 1101 | 055 | 45 | 0x2D | - | 減號/破折號 |
| 0010 1110 | 056 | 46 | 0x2E | . | 句號 |
| 0010 1111 | 057 | 47 | 0x2F | / | 斜杠 |
| 0011 0000 | 060 | 48 | 0x30 | 0 | 字符0 |
| 0011 0001 | 061 | 49 | 0x31 | 1 | 字符1 |
| 0011 0010 | 062 | 50 | 0x32 | 2 | 字符2 |
| 0011 0011 | 063 | 51 | 0x33 | 3 | 字符3 |
| 0011 0100 | 064 | 52 | 0x34 | 4 | 字符4 |
| 0011 0101 | 065 | 53 | 0x35 | 5 | 字符5 |
| 0011 0110 | 066 | 54 | 0x36 | 6 | 字符6 |
| 0011 0111 | 067 | 55 | 0x37 | 7 | 字符7 |
| 0011 1000 | 070 | 56 | 0x38 | 8 | 字符8 |
| 0011 1001 | 071 | 57 | 0x39 | 9 | 字符9 |
| 0011 1010 | 072 | 58 | 0x3A | : | 冒號 |
| 0011 1011 | 073 | 59 | 0x3B | ; | 分號 |
| 0011 1100 | 074 | 60 | 0x3C | < | 小于 |
| 0011 1101 | 075 | 61 | 0x3D | = | 等號 |
| 0011 1110 | 076 | 62 | 0x3E | > | 大于 |
| 0011 1111 | 077 | 63 | 0x3F | ? | 問號 |
| 0100 0000 | 0100 | 64 | 0x40 | @ | 電子郵件符號 |
| 0100 0001 | 0101 | 65 | 0x41 | A | 大寫字母A |
| 0100 0010 | 0102 | 66 | 0x42 | B | 大寫字母B |
| 0100 0011 | 0103 | 67 | 0x43 | C | 大寫字母C |
| 0100 0100 | 0104 | 68 | 0x44 | D | 大寫字母D |
| 0100 0101 | 0105 | 69 | 0x45 | E | 大寫字母E |
| 0100 0110 | 0106 | 70 | 0x46 | F | 大寫字母F |
| 0100 0111 | 0107 | 71 | 0x47 | G | 大寫字母G |
| 0100 1000 | 0110 | 72 | 0x48 | H | 大寫字母H |
| 0100 1001 | 0111 | 73 | 0x49 | I | 大寫字母I |
| 01001010 | 0112 | 74 | 0x4A | J | 大寫字母J |
| 0100 1011 | 0113 | 75 | 0x4B | K | 大寫字母K |
| 0100 1100 | 0114 | 76 | 0x4C | L | 大寫字母L |
| 0100 1101 | 0115 | 77 | 0x4D | M | 大寫字母M |
| 0100 1110 | 0116 | 78 | 0x4E | N | 大寫字母N |
| 0100 1111 | 0117 | 79 | 0x4F | O | 大寫字母O |
| 0101 0000 | 0120 | 80 | 0x50 | P | 大寫字母P |
| 0101 0001 | 0121 | 81 | 0x51 | Q | 大寫字母Q |
| 0101 0010 | 0122 | 82 | 0x52 | R | 大寫字母R |
| 0101 0011 | 0123 | 83 | 0x53 | S | 大寫字母S |
| 0101 0100 | 0124 | 84 | 0x54 | T | 大寫字母T |
| 0101 0101 | 0125 | 85 | 0x55 | U | 大寫字母U |
| 0101 0110 | 0126 | 86 | 0x56 | V | 大寫字母V |
| 0101 0111 | 0127 | 87 | 0x57 | W | 大寫字母W |
| 0101 1000 | 0130 | 88 | 0x58 | X | 大寫字母X |
| 0101 1001 | 0131 | 89 | 0x59 | Y | 大寫字母Y |
| 0101 1010 | 0132 | 90 | 0x5A | Z | 大寫字母Z |
| 0101 1011 | 0133 | 91 | 0x5B | [ | 開方括號 |
| 0101 1100 | 0134 | 92 | 0x5C | \ | 反斜杠 |
| 0101 1101 | 0135 | 93 | 0x5D | ] | 閉方括號 |
| 0101 1110 | 0136 | 94 | 0x5E | ^ | 脫字符 |
| 0101 1111 | 0137 | 95 | 0x5F | _ | 下劃線 |
| 0110 0000 | 0140 | 96 | 0x60 | ` | 開單引號 |
| 0110 0001 | 0141 | 97 | 0x61 | a | 小寫字母a |
| 0110 0010 | 0142 | 98 | 0x62 | b | 小寫字母b |
| 0110 0011 | 0143 | 99 | 0x63 | c | 小寫字母c |
| 0110 0100 | 0144 | 100 | 0x64 | d | 小寫字母d |
| 0110 0101 | 0145 | 101 | 0x65 | e | 小寫字母e |
| 0110 0110 | 0146 | 102 | 0x66 | f | 小寫字母f |
| 0110 0111 | 0147 | 103 | 0x67 | g | 小寫字母g |
| 0110 1000 | 0150 | 104 | 0x68 | h | 小寫字母h |
| 0110 1001 | 0151 | 105 | 0x69 | i | 小寫字母i |
| 0110 1010 | 0152 | 106 | 0x6A | j | 小寫字母j |
| 0110 1011 | 0153 | 107 | 0x6B | k | 小寫字母k |
| 0110 1100 | 0154 | 108 | 0x6C | l | 小寫字母l |
| 0110 1101 | 0155 | 109 | 0x6D | m | 小寫字母m |
| 0110 1110 | 0156 | 110 | 0x6E | n | 小寫字母n |
| 0110 1111 | 0157 | 111 | 0x6F | o | 小寫字母o |
| 0111 0000 | 0160 | 112 | 0x70 | p | 小寫字母p |
| 0111 0001 | 0161 | 113 | 0x71 | q | 小寫字母q |
| 0111 0010 | 0162 | 114 | 0x72 | r | 小寫字母r |
| 0111 0011 | 0163 | 115 | 0x73 | s | 小寫字母s |
| 0111 0100 | 0164 | 116 | 0x74 | t | 小寫字母t |
| 0111 0101 | 0165 | 117 | 0x75 | u | 小寫字母u |
| 0111 0110 | 0166 | 118 | 0x76 | v | 小寫字母v |
| 0111 0111 | 0167 | 119 | 0x77 | w | 小寫字母w |
| 0111 1000 | 0170 | 120 | 0x78 | x | 小寫字母x |
| 0111 1001 | 0171 | 121 | 0x79 | y | 小寫字母y |
| 0111 1010 | 0172 | 122 | 0x7A | z | 小寫字母z |
| 0111 1011 | 0173 | 123 | 0x7B | { | 開花括號 |
| 0111 1100 | 0174 | 124 | 0x7C | | | 垂線 |
| 0111 1101 | 0175 | 125 | 0x7D | } | 閉花括號 |
| 0111 1110 | 0176 | 126 | 0x7E | ~ | 波浪號 |
| 0111 1111 | 0177 | 127 | 0x7F | DEL (delete) | 刪除 |
常用編碼:
1、ASCII 編碼表:一個字節表示,一共128個字符(實際上一個字節可以表示256個字符,但是只用了128個)
2、Unicode 編碼表:固定大小的編碼,使用兩個字節(字母和漢字統一占用兩個字節)
3、UTF-8 編碼表:大小可變的編碼,字母使用1個字節,漢字使用3個字節
4、GBK 編碼表:可以表示漢字,字母使用1個字節,漢字兩個字節
(4)1種布爾型
1、boolean型只允許取True / False ????????無null
2、boolean型只占一個字節
3、boolean適用于邏輯運算,一般用于程序流程控制
程序流程控制語句:
1、if 條件控制語句
①:單分支語句
if(<條件表達式>){
? ? ? ? ? ? ? ? ? ? ? <條件成立(True),執行的代碼塊>????????}
public static void main(String[] args){
?? ??? ?int a=5;
?? ??? ?if(a>0){
?? ??? ??? ?System.out.println("a是正數");
?? ??? ?}
?? ?}
②:雙分支語句
if?(<條件表達式>):
<條件成立(True),執行的代碼塊>
? else:
<條件不成立(False),執行的代碼塊>
import java.util.Scanner;
public class Variable{
?? ?public static void main(String[] args){
?? ??? ?Scanner sc = new Scanner(System.in);
?? ??? ?System.out.println("請輸入一個數:");
?? ??? ?int num = sc.nextInt();
?? ? ? ?if (num % 2 == 0) {
? ? ? ? ? ? System.out.println("這個數是一個偶數");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("這個數是一個奇數");
? ? ? ? }
?? ?}
}
③:多分支語句
一個if只能有一個else,但是可以擁有多個elif
?if? (<條件表達式>):
? <條件表達式成立(True),執行的代碼快>
elif? (<條件表達式2>):
? <條件表達式2成立(True),執行的代碼快>
elif? (<條件表達式3>):
<條件表達式3成立(True),執行的代碼快>
? else:
<以上條件都不成立(False),執行的代碼快>
import java.util.Scanner;
public class Variable{
public static void main(String[] args){
?? ??? ?Scanner sc = new Scanner(System.in);
?? ??? ?System.out.println("請輸入一個數:");
?? ??? ?int num = sc.nextInt();
?? ??? ?if (num > 0) {
?? ??? ??? ?System.out.println("這個數是一個正整數");
?? ??? ?} else if (num < 0) {
?? ??? ??? ?System.out.println("這個數是一個負整數");
?? ??? ?}
?? ??? ?else {
?? ??? ??? ?System.out.println("這個數是0");
?? ??? ?}
?? ?}
}
2、while 循環控制語句(結果為False一次也不執行)
先循環判斷再執行
語法結構:
while(條件表達式) {語句塊; }public class While{
?? ?public static void main(String[] args) {
?? ??? ?int i = 1;
?? ??? ?int n = 1;
?? ??? ?while(i <= 10) {
?? ??? ??? ?n=n*i;
?? ??? ??? ?i++;
?? ??? ?}
?? ??? ?System.out.println("10的階乘結果為:"+n);
?? ?}
}
?
3、do-while循環控制語句(至少執行一次)
先執行再判斷
語法結構:
do {語句塊; }while(條件表達式);public class Do_While{
?? ?public static void main(String[] args){
?? ??? ?int number = 1,result = 1;
? ? ?? ?do {
? ? ? ? ?? ?result*=number;
? ? ? ? ?? ?number++;
? ? ? ? }while(number <= 10);
? ? ?? ?System.out.print("10階乘結果是:"+result);
?? ?}
}
4、for 循環控制語句
語法結構:
for(初始表達式 ; 布爾表達式 ; 步進){ ? ? ?
? ? ? 循環體
}
public class Nine{
?? ?public static void main(String[] args){
?? ??? ?for(int i=1;i<=9;i++){
?? ??? ??? ?for(int j=1;j<=i;j++){
?? ??? ??? ??? ?System.out.print(i + "*" + j + "=" + (i*j) + "\t");
?? ??? ??? ?}
?? ??? ??? ?System.out.println();
?? ??? ?}
?? ?}
}
類型相互轉換:
1、精度小的類型自動轉換為精度大的數據類型
2、多種類型數據混合運算時,系統首先自動將所有數據轉換成大容量最大的那種數據類型,然后再進行計算
3、當我們把精度大的數據類型賦值給精度小的數據類型時就會報錯,反之進行自動類型轉換
4、(byte、short)與char之間不會相互自動轉換
5、byte、short與char三者之間可以計算,在計算時首先轉換為int類型
6、boolean不參與轉換
7、自動提升原則:表達式結果的類型自動提升為操作數中最大的類型
總結
以上是生活随笔為你收集整理的Java基础(1)基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《银河英雄传说》杨威利经典语录2
- 下一篇: matlab lm计算方式,lm算法(l