Java基础(1)基本语法
一、Java的特點(diǎn)
1、Java語言是面向?qū)ο蟮?/p>
2、Java語言是強(qiáng)壯的
3、Java語言是跨平臺性的
4、Java語言是解釋型的
二、Java核心機(jī)制
JDK = JRE + 開發(fā)工具箱
JRE = JVM + JavaSE標(biāo)準(zhǔn)庫
三、編寫第一個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{}表示一個類的開始和結(jié)束
3.public static void main(String[] args)表示一個主方法,即我們程序的入口
4.main()表示方法的開始和結(jié)束
5.System.out..println("hello,world!");表示輸出語句到屏幕
6.分號(;)表示語句結(jié)束?
四、Java注意事項(xiàng)
1、Java區(qū)分大小寫
2、類名必須以英文字母開頭,后接字母,數(shù)字和下劃線的組合 習(xí)慣性大寫 例上圖:(Hello)
3、所有的方法名都應(yīng)該以小寫字母開頭,如果方法名含有若干單詞,則后面的每個單詞首字母大寫
4、源文件名與類名必須相同 例上圖:保存文件時應(yīng)命名位Hello
5、Java有且只有一個public類 其他類個數(shù)不限
6、main方法有固定的書寫格式
7、{} 、()、[ ]括號都是成對出現(xiàn)
五、Java組成
一個 Java 程序可以認(rèn)為是一系列對象的集合
對象:對象是類的一個實(shí)例,有狀態(tài)和行為。例如,一只貓是一個對象,它的狀態(tài)有:顏色、名字、品種;行為有:喵叫等。
類:類是一個模板,它描述一類對象的行為和狀態(tài)。
方法:方法就是行為,一個類可以有很多方法。邏輯運(yùn)算、數(shù)據(jù)修改以及所有動作都是在方法中完成的。
實(shí)例變量:每個對象都有獨(dú)特的實(shí)例變量,對象的狀態(tài)由這些實(shí)例變量的值決定。
六、Java標(biāo)識符
Java 所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標(biāo)識符。
1、所有的標(biāo)識符都應(yīng)該以字母(A-Z 或者 a-z),美元符($)、或者下劃線(_)開始
2、首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下劃線(_)或數(shù)字的任何字符組合
3、關(guān)鍵字不能用作標(biāo)識符
4、標(biāo)識符區(qū)分大小寫
七、Java控制訪問權(quán)限
| 訪問控制 | private | 私有的 |
| protected | 受保護(hù)的 | |
| public | 公共的 | |
| default | 默認(rèn)的 |
八、Java注釋
注釋快捷鍵:ctrl+/
1、單行注釋: //
2、多行注釋:/*
? ? ? ? ? ? ? ? ? ? ? ? */?
3、文檔注釋(Java Doc標(biāo)簽):/**
? ? ? ? ? ? ? ? ? ? ? ????????????????????????????????? */
九、Java代碼規(guī)范
1、類、方法注釋要以Java Doc注釋方式來寫 即文檔標(biāo)簽
2、非Java Doc注釋,即單行注釋/多行注釋,往往是給代碼的維護(hù)者看的,著重告訴讀者為什么這樣寫,如何修改,注意什么問題等
3、使用Tab鍵實(shí)現(xiàn)代碼縮進(jìn)(默認(rèn)向右),使用shift+Tab鍵取消縮進(jìn)(即向左)
4、運(yùn)算符和=兩邊習(xí)慣性各加一個空格,使用快捷鍵Ctrl+Alt+L快速規(guī)范代碼格式
5、源文件使用utf-8編碼
6、行寬不要超過80個字符
7、代碼編寫風(fēng)格分為次行風(fēng)格和行尾風(fēng)格,推薦使用行尾風(fēng)格
次行風(fēng)格:
行尾風(fēng)格:?
十、Java代碼的編寫步驟
1、編寫Java的源代碼
public class Hello{
?? ?public static void main(String[] args){
?? ??? ?System.out.println("hello,world!");
?? ?}
}
2、Java.c編譯,得到對應(yīng)的.class字節(jié)碼文件
在控制臺(Win+R)輸入javac Hello.java,將源文件編譯成字節(jié)碼文件,目錄下會出現(xiàn)Hello.class文件表示編譯成功
?
3、Java運(yùn)行,本質(zhì)就是把.class加載到j(luò)vm運(yùn)用
??運(yùn)行字節(jié)碼文件,在控制臺輸入java Hello
十一、Java變量
變量分為兩種:基本類型的變量和引用類型的變量?變量必須先定義后使用 數(shù)字代表字節(jié)數(shù)
1、變量是程序的基本組成單位
2、變量的三個基本要素(類型+名稱+值)
3、變量相當(dāng)于內(nèi)存中一個數(shù)據(jù)存儲空間的表示
4、Java提供了8種基本類型,6種數(shù)字類型(4種整數(shù),2種浮點(diǎn)數(shù)),1種字符型,1種布爾型)
(1)4種整數(shù)類型
| 整數(shù)類型 | 占用空間(字節(jié)) | 范圍 | ||
| byte[字節(jié)] | 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:計(jì)算機(jī)種最小的存儲單位
? ? ?byte:計(jì)算機(jī)種基本的存儲單位
? ? ?1 byte = 8 bit
(2)2種浮點(diǎn)數(shù)
5.12e2? ? ? ? 5.12X10的2次方
5.12e-2? ? ? ? 5.12/10的2次方
| 浮點(diǎn)數(shù)類型 | 占用空間(字節(jié)) | 范圍 |
| 單精度:float | 4 | -3.403E38~3.403E38 |
| 雙精度:double | 8 | -1.798E308~1.798E308 |
1、雙精度的精度更準(zhǔn)
2、浮點(diǎn)數(shù)的存放形式:浮點(diǎn)數(shù)+指數(shù)位+尾數(shù)位(可能丟失)
3、聲明float型常量必須在后面加”f” 或“ F"
4、浮點(diǎn)數(shù)類型剛好是整數(shù)后面也會加.0 ????????例:15會寫成15.0
5、十進(jìn)制形式,0可以省略? ? ? ? 例:0.52 可以寫成.52????????
6、double num = 8.1/3;? ? ? ? 結(jié)果是一個接近2.7的小數(shù)而不是2.7?
? ? ? 當(dāng)我們對運(yùn)算結(jié)果是小數(shù)進(jìn)行相等判斷時,應(yīng)該是以兩個數(shù)差值的絕對值,在某個精度范圍判斷
(3)1種字符型
1、char 存儲單個字符(String是存儲多個字符),char是兩個字節(jié)可以存儲漢字
2、char可以直接存放一個數(shù)字,輸出是ASCII碼
3、字符常量用單引號(‘ ’)括起來
4、char是可以進(jìn)行運(yùn)算的,進(jìn)行運(yùn)算后對照ASCII碼輸出
| Bin (二進(jìn)制) | Oct (八進(jìn)制) | Dec (十進(jìn)制) | Hex (十六進(jìn)制) | 縮寫/字符 | 解釋 |
| 0000 0000 | 00 | 0 | 0x00 | NUL(null) | 空字符 |
| 0000 0001 | 01 | 1 | 0x01 | SOH(start of headline) | 標(biāo)題開始 |
| 0000 0010 | 02 | 2 | 0x02 | STX (start of text) | 正文開始 |
| 0000 0011 | 03 | 3 | 0x03 | ETX (end of text) | 正文結(jié)束 |
| 0000 0100 | 04 | 4 | 0x04 | EOT (end of transmission) | 傳輸結(jié)束 |
| 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) | 數(shù)據(jù)鏈路轉(zhuǎn)義 |
| 0001 0001 | 021 | 17 | 0x11 | DC1 (device control 1) | 設(shè)備控制1 |
| 0001 0010 | 022 | 18 | 0x12 | DC2 (device control 2) | 設(shè)備控制2 |
| 0001 0011 | 023 | 19 | 0x13 | DC3 (device control 3) | 設(shè)備控制3 |
| 0001 0100 | 024 | 20 | 0x14 | DC4 (device control 4) | 設(shè)備控制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) | 結(jié)束傳輸塊 |
| 0001 1000 | 030 | 24 | 0x18 | CAN (cancel) | 取消 |
| 0001 1001 | 031 | 25 | 0x19 | EM (end of medium) | 媒介結(jié)束 |
| 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 編碼表:一個字節(jié)表示,一共128個字符(實(shí)際上一個字節(jié)可以表示256個字符,但是只用了128個)
2、Unicode 編碼表:固定大小的編碼,使用兩個字節(jié)(字母和漢字統(tǒng)一占用兩個字節(jié))
3、UTF-8 編碼表:大小可變的編碼,字母使用1個字節(jié),漢字使用3個字節(jié)
4、GBK 編碼表:可以表示漢字,字母使用1個字節(jié),漢字兩個字節(jié)
(4)1種布爾型
1、boolean型只允許取True / False ????????無null
2、boolean型只占一個字節(jié)
3、boolean適用于邏輯運(yùn)算,一般用于程序流程控制
程序流程控制語句:
1、if 條件控制語句
①:單分支語句
if(<條件表達(dá)式>){
? ? ? ? ? ? ? ? ? ? ? <條件成立(True),執(zhí)行的代碼塊>????????}
public static void main(String[] args){
?? ??? ?int a=5;
?? ??? ?if(a>0){
?? ??? ??? ?System.out.println("a是正數(shù)");
?? ??? ?}
?? ?}
②:雙分支語句
if?(<條件表達(dá)式>):
<條件成立(True),執(zhí)行的代碼塊>
? else:
<條件不成立(False),執(zhí)行的代碼塊>
import java.util.Scanner;
public class Variable{
?? ?public static void main(String[] args){
?? ??? ?Scanner sc = new Scanner(System.in);
?? ??? ?System.out.println("請輸入一個數(shù):");
?? ??? ?int num = sc.nextInt();
?? ? ? ?if (num % 2 == 0) {
? ? ? ? ? ? System.out.println("這個數(shù)是一個偶數(shù)");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("這個數(shù)是一個奇數(shù)");
? ? ? ? }
?? ?}
}
③:多分支語句
一個if只能有一個else,但是可以擁有多個elif
?if? (<條件表達(dá)式>):
? <條件表達(dá)式成立(True),執(zhí)行的代碼快>
elif? (<條件表達(dá)式2>):
? <條件表達(dá)式2成立(True),執(zhí)行的代碼快>
elif? (<條件表達(dá)式3>):
<條件表達(dá)式3成立(True),執(zhí)行的代碼快>
? else:
<以上條件都不成立(False),執(zhí)行的代碼快>
import java.util.Scanner;
public class Variable{
public static void main(String[] args){
?? ??? ?Scanner sc = new Scanner(System.in);
?? ??? ?System.out.println("請輸入一個數(shù):");
?? ??? ?int num = sc.nextInt();
?? ??? ?if (num > 0) {
?? ??? ??? ?System.out.println("這個數(shù)是一個正整數(shù)");
?? ??? ?} else if (num < 0) {
?? ??? ??? ?System.out.println("這個數(shù)是一個負(fù)整數(shù)");
?? ??? ?}
?? ??? ?else {
?? ??? ??? ?System.out.println("這個數(shù)是0");
?? ??? ?}
?? ?}
}
2、while 循環(huán)控制語句(結(jié)果為False一次也不執(zhí)行)
先循環(huán)判斷再執(zhí)行
語法結(jié)構(gòu):
while(條件表達(dá)式) {語句塊; }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的階乘結(jié)果為:"+n);
?? ?}
}
?
3、do-while循環(huán)控制語句(至少執(zhí)行一次)
先執(zhí)行再判斷
語法結(jié)構(gòu):
do {語句塊; }while(條件表達(dá)式);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階乘結(jié)果是:"+result);
?? ?}
}
4、for 循環(huán)控制語句
語法結(jié)構(gòu):
for(初始表達(dá)式 ; 布爾表達(dá)式 ; 步進(jìn)){ ? ? ?
? ? ? 循環(huán)體
}
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();
?? ??? ?}
?? ?}
}
類型相互轉(zhuǎn)換:
1、精度小的類型自動轉(zhuǎn)換為精度大的數(shù)據(jù)類型
2、多種類型數(shù)據(jù)混合運(yùn)算時,系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成大容量最大的那種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算
3、當(dāng)我們把精度大的數(shù)據(jù)類型賦值給精度小的數(shù)據(jù)類型時就會報(bào)錯,反之進(jìn)行自動類型轉(zhuǎn)換
4、(byte、short)與char之間不會相互自動轉(zhuǎn)換
5、byte、short與char三者之間可以計(jì)算,在計(jì)算時首先轉(zhuǎn)換為int類型
6、boolean不參與轉(zhuǎn)換
7、自動提升原則:表達(dá)式結(jié)果的類型自動提升為操作數(shù)中最大的類型
總結(jié)
以上是生活随笔為你收集整理的Java基础(1)基本语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《银河英雄传说》杨威利经典语录2
- 下一篇: 【Java开发者专场】阿里专家梁笑:20