java基礎筆記
《java基礎筆記》由會員分享,可在線閱讀,更多相關《java基礎筆記(116頁珍藏版)》請在裝配圖網上搜索。
Java day01 ============================================================================================= Java ------------ sun公司 1995 幾個特點:簡單,安全,跨平臺,面向對象,分布,健壯,解析,高性能,多線程,動態(tài)性,體系結構中立 安全:允許用戶使用指針,不允許操作指針 跨平臺: C++ : 源碼 ----(編譯)---->目標碼 -----(連接)---->可執(zhí)行文件 目標碼:二進制機器碼 c++中的源碼是跨平臺的。c++中的指針其實是內存中的編號(地址) 一個字節(jié) = 連續(xù)的8位二進制位。 1G = 1024*1024*1024 JAVA:源碼 ----(編譯)---->字節(jié)碼 JAVA是字節(jié)碼跨平臺。 搭建Java開發(fā)環(huán)境: JDK/JRE/JVM 什么是JDK:JAVA開發(fā)工具包(做JAVA開發(fā)是必須下載JDK) 什么是JRE:JAVA的運行環(huán)境(若只運行JAVA文件只要下JRE就可以了) 什么是JVM;JAVA虛擬機 JVM(java虛擬機)功能:用來屏蔽不同系統(tǒng)的差異,為上層的字節(jié)碼提供統(tǒng)一的運行環(huán)境。 JDK下的bin目錄:可執(zhí)行文件(這些都是開發(fā)過程中所要用的命令。如javac ,java) JDK下的JRE目錄:BIN目錄,LIB目錄。這里的BIN目錄中放的是運行中用到的命令, LIB目錄中放的都是JAR文件,JAR文件中放的都是一寫編譯好的字節(jié)碼。 打成JAR文件的目的:方便傳輸。 LIB目錄下的rt.jar,改文件下放的是JAVA開發(fā)的類庫 JDK下的SRC.ZIP包:放的是rt.jar包中的源碼,而rt.jar中放的是對應的字節(jié)碼。 ---------------------------------------------------------------------- 設置環(huán)境變量: JAVA_HOME:代表JDK安裝路徑 =/opt/jdk1.6.0 d:/a/b/jdk1.6 CLASSPATH:系統(tǒng)搜索類的路徑 =. (指的是當前目錄) PATH:命令的搜索路徑 =/opt/jdk1.6.0/bin 或 =$PATH:/opt/jdk1.6.0/bin 或 =$PATH:$JAVA_HOME/bi $PATH: 在原先的PATH基礎上加上其它路徑\ -------------------------------------------------------------------------- 第一個JAVA代碼 第一步: vi MyFirstJava.java 第二步: public class MyFirstJava{ ----------------- 定義一個類 public static void main(String[] args){ ------ 主方法格式固定 String name="tangliang"; ---- 定義一個變量為字符串,字符串值用雙引號來引起 int age=30; ------定義一個整數(shù)類型值為30 System.out.println("my name is:"+name); --- 輸出語句()里是要輸出的內容 System.out.println("my age is:"+age); ---- JAVA中加號也可以做字符串的鏈接 } } 第三步: javac MyFirstJava.java ----- 編譯源代碼文件(跟源文件名) 第四步: java MyFirstJava ----- 執(zhí)行字節(jié)碼文件(跟的是類名) 通配符號編譯:javac my*.java ---------- 編譯以my字母開頭的所有java文件 帶包編譯:javac -d . PackageTest.java 帶包執(zhí)行:java sd0807.day01.PackageTest Public被稱作為訪問修飾符 ---- 作用是:控制程序的其他部分對該部分的訪問級別 Class表面JAVA程序中的全部內容是包含在類中的。 注意點: 1. 一個JAVA源文件只能定義一個public類 2. 而且PUBLIC修飾的類名必須同文件名一致(大小寫也要一直) 3. 可以定義其他非public類. 4. 字節(jié)碼文件與類一一對應,而不是同你的源文件一一對應. 5. 可以運行的JAVA方法的文件,一定要包含一個主方法,而且主方法簽名是固定的 6. 包含主方法的類叫 主類,java命令后跟的是主類的名字 7. main方法是程序的入口 包的定義(目的是確保類名的唯一性) 包用來放所寫文件的目錄. 怎么來聲明一個包: package SD0807.day01; --- 包的定義(可以是0或1行,若聲明則必須在java文件第一行) ++++++++++++++++++++++++++++++++++++++++++++++++ package SD0807.day01; public class PackgeTest{ public static void main(String[] args){ System.out.println("Package Test!"); } } ++++++++++++++++++++++++++++++++++++++++++++++++ 帶包編譯:javac -d . PackageTest.java 帶包執(zhí)行:java sd0807.day01.PackageTest 若java PackageTest 其實它將類找到了,只是它找到是帶包的類,而命令里面是不帶包的,所以會報錯。 為什么執(zhí)行帶包的類要加路徑名???(由于JAVA命令的執(zhí)行步驟) java命令的三個步驟: 1,找到類的字節(jié)碼文件 2,加載類--從磁盤中去讀取對應的類,到哪里去找就是從(classpath中配置的路徑) 3,找主方法執(zhí)行 若從網上下一寫工具包必須在classpath中配置工具包所在的位置,這樣我們就可以使用該工具包 想使用中間件,這樣classpath必須指向對應的xxx.jar。 而在JDK中的rt.jar我們沒有配置上, 卻能用到里面對應的類,因為她自動會去找JRE/lib/rt.jar找。 rt.jar // 放在 jdk1.6.0/jre/lib/rt.jar使用api 提供的類,java虛擬機是怎么找到的? 就在rt.jar ;里, 即使不設到 CLASSPATH 下虛擬機也能運行; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 例子: 第一步:(寫類) ToolA類: package com.tarena; public class ToolA{ public static void main(String[] args){ System.out.println("ToolA"); } } Test類: package com.tarena.day01; public class Test{ public static void main(String[] args){ ToolA t = new ToolA(); System.out.println("test"); } } 第二步:(編譯) javac -d . ToolA.java ----- 可以編譯(生成一個文件夾為com) javac -d . Test.java -----直接編譯Test.java會出錯,因為用到了ToolA類 第三步:(把類ToolA打包) jar -cvf abc.jar ./com ---------- ToolA類在包com.tarena 下 將產生的abc.jar包放到任意的目錄下,這里放到aa目錄。 第四步:配置ToolA類的 classpath=d:\aa\abc.jar 第五步:(編譯Test類) javac -d . Test.java ----- 可以編譯 第六步:(執(zhí)行) java com.tarena.day01.Test 也可以執(zhí)行ToolA類 java com.tarena.ToolA +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 找對應類的順序: 1,在當前包下找(所以注意不要在自己的包下創(chuàng)建和JDK中同名的類,這樣在調用JDK 中同名的類回出錯) 2,在rt.jar中找 3,在 classpath中指定的路徑下找 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 如果自己在本包中定義了一個String類這樣下面代碼會出錯: public class Ab{ public static void main(String[] args){ System.out.println("aaaaa"); } } ---------出現(xiàn)的錯誤是說主方法沒找到。 因為main參數(shù)中的String類不是JDK中的String類所以上面的main方法不是主方法了,只能是 自己所定義的一個普通的類。所以該類在編譯的時候不報錯,在執(zhí)行的時候就會出錯。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ java.lang包下的類,可以不需給出包明,其它的都要給出包名,由于java.long包下的類很常用。 --------------------------------------------------------------------------------------- 類的導入 import: 可以多行。作用導入所要用到的類。 java.lang包下的類,可以不需要導入,其它的包中的類都必須導入。 怎么導入: import java.util.scanner; ------ 導入scanner類 import java.util.*; ---------- 導入該包下所有的類 package xxxxx;(0或1行) import xxxxxxx; (0或多行); class xxxxx{} (1個或多個但只有一個public class) 靜態(tài)導入: 不僅能導入類,還可以導入靜態(tài)域。 兩個實際用: 1, 對算術函數(shù)的導入 2, 笨拙的常量 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 常用命令: Javac ------ 編譯命令 Java ------ 運行命令 Javadoc ----- 生成程序文檔,在java 源文件中提取文檔注釋, 生成程序文檔. -------------------------------- 文檔注釋 注釋: // 單行注釋 (按住 ctrl+/ )就可以注釋選中的程序) /* */ 多行注釋 /** */ 特殊的多行注釋,定義在類之前,類的屬性或方法之前, 叫文檔注釋; javadoc MyFirstJava.java –d .\docs //將生成的html文件放到當前目錄下的docs子目錄下; 作用:生成JAVA文檔.從你的程序代碼中提取注釋 /** */ 后跟的是自由格式文本 在自由格式文本中可以使用HTML修飾符:
一定不要使用 ,
,因為他們與文檔格式發(fā)生沖突。
類的注釋:
多行注釋的時候很多程序員習慣每行以星號開頭,不建議這樣做。
方法的注釋:
@param ---- 參數(shù),可以占據(jù)多行,可以用HTML標記
@return ---- 返回
@throws ---- 可能拋出的異常
域注釋: 只需要對公有域(通常指的是靜態(tài)常量)建立文檔
/**
The “hearts”card sut
*/
Public static final int HEARTS=1;
通用注釋
@author name ---- 作者
@version text ---- 版本
@since text ----- 始于條目
@deprecatecd text ----------- 對類,方法,變量添加一個不再使用的注釋
如:@deprecated UsesetVisible(true)
instead
@see reference
@see The Core ava home page
Java day02
--------------------------------------打包
jar 生成/修改 java 歸檔文件 (.jar) , 跟.zip 一樣;
jar –cvf abc.jar(目標文件) ./abc (把哪一個目錄打包成jar文件)
-c creat 創(chuàng)建新的jar文件
-v visable 顯示出來
-f filename 指定文件名
-x 展開存檔中的命名的(或所有的〕文件
jar cvf abc.jar ./abc // 多了一個清單文件;manifest.info
jar –xvf abc.jar // 展開jar文件的內容;
刪除com/ 目錄結構 留下一個abc.jar ; 將環(huán)境變量的CLASSPATH 追加一個 \sd0705\corejava\abc.jar
就是將壓縮文件展開后在根目錄下找 .class 文件;
rt.jar // runtime 放在 jdk/jre/lib/rt.jar CLASSPATH
使用api 提供的類,java虛擬機是怎么找到的?就在rt.jar ;里,
即使不設到 CLASSPATH 下虛擬機也能運行;只要在這個目錄下就能找到;
-------------------------------------------------
常用的包;
java.lang java的語言包
java.awt/java.swing/java.awt.ent 圖形開發(fā)是要用到的包
java.applet 開發(fā)小程序用的包
什么叫application(應用程序):就是包含主方法的程序。
另外的的程序是沒包含主方法,必須放到容器里(如嵌入到瀏覽器里)去執(zhí)行。
java.io 輸入輸出時要用到。
java.net java中網絡開發(fā)。
java.util java工具包。
------------------------------ 標識符
命名規(guī)則:
(1) 由字母、數(shù)字、下劃線、$組成,不能以數(shù)字開頭;
可以用中文;如: string 中文="abc";
只能以字符、“_”或“$”開頭; 字符可以是漢字;
(2) 大小寫敏感;
(3) 不得使用java中的關鍵字和保留字;
(4) Java語句以分號分隔,Java代碼塊包含在大括號內,忽略空格。標識符
(5) 無長度限制。
------------------------------------ 命名習慣
(1) 標識符要符合語義信息
(2) 包名 所有字母小寫
(3) 類名 每個單詞首字母大寫,其它小寫 //TarenaStudent
(4) 變量和方法: 第一個單詞小寫,從第二個單詞開始首字母大寫 //tarenaStudent
(5) 常量: 所有字母大寫,每個單詞之間用" _ "連接 //int MONEY_VALUE = 50;
(6) 用以命名類、方法和變量、以及包遵守JAVA的命名規(guī)范,類以每個單詞都以大寫字母開頭。
----------------------------------關鍵字
Abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw by e else import public throws case enmum instanceof return transient catch extends int short try char final interface static 等等
----------------------------------- 八種數(shù)據(jù)類型
1,布爾型: boolean 只有false/true兩個值(不存在如C++的與整數(shù)相互轉換)
2,字符類型: char 2字節(jié) 16位 (0~65535) 默認就是無符號的16位整型;只能表示整數(shù);
char類型也可以用通用轉義字符,但是不能用ASCII碼。可以用“\u0000”這種格式,
因為char型中使用的是unicode編碼方式。\u0060 四位都是十六進制的;
賦值方式:
char zhChar=中; char enChar=a;
char ucChar=\u0060; --- Unicode也是一種字符編碼方法(其為16進制)
int a =0 char b=0
int a =0 char b=\u0000 相等
char a =0 char b=\u0000
char a =8 char b =5+3
char a =8 char b =5+3 相等
int a =8 char b = 5+3
int a=8 char b=5+3
字符0與整數(shù)0是不相等的,第五組相等。
\u0061 --------------表示為a
\u0041 --------------表示A
字符0的編碼為:\u0048
3,字符串類型:
定義:String name="tangliang"; -------- 注意:賦值要有雙引號
4,整數(shù)類型:
byte1字節(jié)8位 -128到127-2^7到2^7-1java中都是有符號的;沒有有符號和無符號的差別;
內存中的存儲:正整數(shù): 原碼
負整數(shù): 補碼= 原碼取反+1;
25 原碼: 00011001 補碼:00011001
-25 先些25的原碼:00011001 -->取反:11100110 --->補碼:11100111
內存中8位二進制第八位:0表示正,1表示負
10000000表示的值為-128,過程:
10000000--(減1)-->01111111--取反-->10000000(2的7次方=128開始第一位為1
則表示負數(shù)即-128)
short 2字節(jié) 16位 -2^15到2^15-1 16位的短整型 -32768~+32767
(與char比較,char沒有負則其范圍0~65535,沒有符號位,存儲還是同樣的)
int 4字節(jié) 32位 -2^31到2^31-1 32位的整型(大概-2G到2G)
long 8字節(jié) 64位 -2^63到2^63-1 64位的長整型;long a=12343545L(l);
//一定要跟上L,大小寫都可以,最好用大寫;
以0x開頭就是十六進制; ------------- 二進制與十六進制的轉換4對1
以0開頭的是八進制; ------------- 二進制與八進制的轉換
byte bb=(byte)0x771; // 由于范圍超出了直接賦值是不可以的但可以強制轉換,
強轉的規(guī)則:自動截斷高位保留最低的8位;
5,浮點類型 (默認是double,而且是近似存儲)
float 4字節(jié)32位 單精度實數(shù); 2^24 X 10^127 ; 前三個字節(jié)存數(shù)據(jù),后一個字節(jié)存位權;
double 8字節(jié)64位 雙精度實數(shù);
java中小數(shù)默認是double型:
float f = 111.32; ----- 會出錯,因為默認是double型
可以寫的方式;
float f =(float)111.32;
float f = 111.32f; ----- 注意十六進制中f是個值,不是float類型。
float fa =123.4f; ---- 后面要加上大寫或小寫的f
float fa =123.4E300F;
float fa =(float)123.4E300; ------ 強轉后賦值給float變量
double d = 333.5
double dd = 886.45d
double dddd= 768.987D
注:整型值存放,正數(shù)存放原碼(二進制碼),負數(shù)則存放補碼(原碼按位取反末位加一)
注:浮點型是近似存儲的,實型值在存儲時會損失精度,所以不要直接比較兩個實型值。
系統(tǒng)默認的實型都是double型,
要使用時要在數(shù)據(jù)后加個f,或者強行轉換。強轉(占字節(jié)數(shù)大的類型轉到占字節(jié)數(shù)
小的類型)時會放棄高位值只取低位值。
類型轉換
整數(shù)是精確存儲
浮點類型是近似存儲
6.枚舉類型
JDK5以后可以自定義枚舉類型:
enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};
聲明這樣一種類型的變量:
Size s =Size,MEDIUM;
7.大數(shù)據(jù)類型
java.math.BigInteger
java.math.BigDecimal
這兩個類可以處理任意長度的數(shù)值:
1, BigInteger 實現(xiàn)任意精度的整數(shù)運算
2, BigDecimal 實現(xiàn)任意精度的浮點數(shù)運算
可以用靜態(tài)方法valueof()將普通的數(shù)值轉換成大數(shù)值,但不可以用算術運算符來做處理
+++++++++++++++++++++++++++++++++++++++++++++
public class test {
public static void main(String[] args){
double a=2.0,b=1.1,c=0.9;
if(a-b==c){
System.out.println("ok!");
}else{
System.out.println(" 不 ok! ");
}
}
}
答案是:不"ok";2.0-1.1=0.8999999…. // 是近似存儲不是精確存儲
取絕對值小于一個很小的數(shù): Math.abs((a-b)-c)<1e-6
++++++++++++++++++++++++++++++++++++++++++
-------------------- 自動類型轉換: 編譯器認可的;
A a=b; 如果a的范圍能完全包含b即可做自動類型轉換(兩種類型兼容);
byte -> short -> int -> long -> float -> double
char ----- int
int ----- double(數(shù)據(jù)不會丟失)
int ----- float (數(shù)據(jù)會丟失)
long ----- double(數(shù)據(jù)會丟失)
long ----- float (數(shù)據(jù)會丟失)
其中: char型和int型之間可以相互轉換。char和short或byte不能相互轉換。
char不能表示負數(shù); boolean類型是獨立的, 不能和其它類型相互轉換;
反之則需要強行轉換;
但是自動類型轉換也會造成數(shù)據(jù)丟失:
如 int -> float
long-> float
long -> double
只是讓位數(shù)上相等, 但是會丟掉低位的數(shù)據(jù);
比如:把浮點值賦給整型,就會發(fā)生截斷(truncation)
注意: 隱式類型轉換;(a或b有一個為int)
a 運算符 b ,如果a,b中有任意一個是double型,前面運算的結果就是double型,
如果a,b中有任意一個是float型,前面運算的結果就是float型,
如果a,b中有任意一個是long型,前面運算的結果就是long型,
如果a,b中沒有double、float、long型,那么其結果就為int型。
java 數(shù)據(jù)類型:基本類型: 8種
引用類型: 類,接口,枚舉,標注
空類型: void
int a=5; 系統(tǒng)會分配連續(xù)4個字節(jié)的空間:
0000 0000 | 0000 0000 | 0000 0000 | 0000 0101
String a=”hello”;// a 是一個引用 (地址), 不允許對其進行修改;
a -- 四個字節(jié);存的是地址值[ ];指向首地址--“hello”四個連續(xù)的存儲空間;
-------------------------------------------------------------------------------------
寫一個person類
在其它類中寫了
person p = new person();
p --- 在內存中分到4個字節(jié)的空間,存放的是地址值。該地址就是后面new person() 產生
的空間。
這樣保證了所有的地址都指向合法的位置;
通過p.xxx(); -----去訪問對象的方法
p.xxxx; ------ 去訪問對象的屬性
對象: 充滿氫氣的氫氣球,引用是繩子,通過這個繩子找到這個氫氣球;
一個繩子只能連著一個氣球;一個氣球可以由多根繩子連著;
如果沒有引用,那么我們就訪問不了,雖然它也存在,叫做垃圾。
Java 虛擬機的垃圾回收的機制;String s=“hello”; s=null;
System.gc(); // 可以建議虛擬機來回收這些垃圾;來提高效率。
若有引用p,但沒有指向具體的對象。若去訪問p就會出現(xiàn)nullpointerException(空指針異常)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
編譯時:錯誤 :error(s)
警告: Warning(s)
運行時:異常:
錯誤:
Person p = null; ------- 定義了引用但沒有對象
p.name; -------- 訪問Person類的name屬性;
p.age; -------- 訪問Person類的age屬性;
這個異常,沒有對象,不可能訪問對象的屬性,這在編譯的時候不會出錯,只有在運行的時候
才會出現(xiàn)的異常。
注:
一個對象有多個引用指向它時,一個引用來改變它的值時,其它也改。
一個引用只能指向一個對象;
------------------------------------運算符:
表達式: = *= /= %= += -= <<= >>= >>>= &= ^= |=
a+=3 <=> a=a+3;
a*=4 <=> a=a*4;
比較符: 〉 >= < <= (數(shù)字類型才可以用比較符)數(shù)據(jù)類型就是8種基本類型除了布爾類型
在java中不可以用比較符號去比較引用
等值比較符: == != (==比較的是內存的地址)(所有有效數(shù)據(jù)類型可用)
數(shù)據(jù)類型可以用,但浮點型數(shù)據(jù)最好不要比,語法上是允許的
判斷兩個引用值是否相等比較的是地址是否相同;即是不是指向同一個對象;
表達式:+ (加) -(減) *(乘) /(除) %(求余)
除號/當兩邊都為整數(shù)的時候得到是整數(shù)。 10/3=3;
/ 除法兩邊是整數(shù)時是整數(shù)除法,只要有一邊不時整數(shù)就是浮點除法。整數(shù)被0除會出異常。
+ 也可以作為字符串的連接(只要+一邊是字符串類型,另一邊為任意類型最后得到
的是字符串類型)
移位運算:
>> ----右移 (用符號位填充左側)
<< ----左移(從左邊移出的不管,右邊移入的為0)
>>> ----無符號右移(用0填充前面的位置)
位運算: << >> >>> ;
左移相當于乘2的n次方;
右移相當于除于2的n次方;空位補符號位;
移位若大于32,則相當于移動了對32求余的位數(shù),如:45%32
若被操作的數(shù)是long類型的則移位值要對64求余
例如,-14 (即二進制的 11110010)右移兩位等于 -4
(即二進制的 11111100)---- 注意:11110010,11111100 都是補碼
>>>= 無符號右移動,移出的不管,移進的都補0。
&(與): 按位與經常用來把指定位置0,其它不變;輔助數(shù): 1111 10001;
|(或): 把原來指定位置1, 其它位不變; 輔助數(shù): 0000 01110;
^(異或):異或運算, 經常用來把原數(shù)的指定位求反其它位不變;輔助數(shù): 000001110;
~ (取反):按位取反。
對于& | 位與和位或,當兩邊是的數(shù)據(jù)類型是byte時是位運算,
若為boolean型則為邏輯運算。
&& || 短路運算符, && 是第一個為假則不計算后者, || 是第一個為真不計算后者
++ -- a++ 與++a的區(qū)別。一條語句為 a++ 用++a來代替是可以的(只能使用于變量,
不可為常量或數(shù)字)
若:b=a++ 相當于b=a;a=a+1; 而b=++a 相當于a=a+1;b=a;
三目運算符: ?
System.out.println(4>3?9:9.99);
-----------------------------補充-----------------------------------------
運算符優(yōu)先級別
運算符 結合性
( ) [ ] 從左向右
! ~ ++ -- new 強制轉換 從右向左
* / % 從左向右
<< >> >>> 從左向右
< <= > >= instanceof 從左向右
= = != 從左向右
& 從左向右
^ 從左向右
| 從左向右
&& 從左向右
|| 從左向右
? : 從右向左
= += -= *= /= %= &= |= ^= <<= >>= >>>= 從右向左
Java day03
--------------------------------------塊的概念:
塊:指的是有花括號括起來的若干條簡單的語句
一個塊里面可以嵌套另一個塊
不能在嵌套的兩個塊中聲明同名的變量。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
public static void main(String[] args) {
int b=0;
{
int b=0;
}
} -------------- 以上代碼編譯時通不過的
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
------------------------------------- 控制語句
------------------if – else
格式:
If(條件){
………….
}else{
………….
}
If()條件后腰執(zhí)行多條語句就必須用花括號括起,若只有一條可以不用花括號。
----------------------------------------------
if - else ; else 匹配的是向上最近的if ;
求一個數(shù)是不是素數(shù): 循環(huán), 從2到n/2 或 sqrt(a) ;
int a=13;
//boolean flag=false;
for(int i=2;i<=Math.sqrt(a);i++){
if(a%i==0){
System.out.println("a 不是素數(shù)");
break;
//flag=true;
}
}
if(i>Math.sqrt(a))
//if(flag==true)
System.out.println("a 是素數(shù)");
//if(flag==true)
---------------------------- switch
格式:
Switch(條件){
case 條件值 :
……………….
break;
case 條件值 :
……………….
break;
default :
…………………..
break;
}
---------------------------------------------
switch中的變量類型只能是byte、 short、int、char, 枚舉五種類型;
只有遇到break才會退出, 除非到程序末尾;
default放在最后和前面有區(qū)別, 如果不寫break的話,放在最后會自動退出;
但是放到開頭的話,會繼續(xù)執(zhí)行直到遇到break為止;
循環(huán)的設計:
---------------------For循環(huán)
for(); outer: in er: 標簽只能和break/continue 結合使用;
+++++++++++++++++++++++++++++++++++++++++++++++
public static void main(String[] args) {
int i=0;
aa:
while(true){
i++;
System.out.println(i);
if(i>10){
break aa;}}}
++++++++++++++++++++++++++++++++++++++++
for(int i=0;i<10;i++){
}
注意:for循環(huán)式支持迭代的一種通用結構,每次迭代后更新計數(shù)器
第一部分是初始化計數(shù)器
第二部分是檢測計數(shù)器
第三部分是指示如何更新計數(shù)器
------------------------ while
格式:
While(條件){
…………………….
}
注意:如果條件為false,循環(huán)一次也不執(zhí)行。
--------------------- do while
格式:
Do{
}while(條件){
}
--------------------------- For each
Int [] a = new int[10];
For(int e : a){
System.out.println(e);
}
Double[][] a = new double[10][10];
For(double[] el:a){
For(double els: el){
System.out.println(els);
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++
輸入輸出
標準的輸出:System.out.println();
標準的輸入:System.in
1, Scanner in = new Scanner(System.in);
2, String name = in.nextLine(); ------ nextLine()是讀一行
3, String name = in.next() ------- next() 讀一個單詞
4 int age = in.nextInt(); ------- nextInt()讀一個整數(shù)
5 Double m = in.nextDouble(); ------- nextDouble()讀一個雙精度浮點數(shù)
hasNextInt()
has NextDouble() ----- 檢測是否還有單詞
格式化輸出:(注: 看JAVA2核心技術卷1 --- 69頁到72頁)
double x = 10000.0/3;
System.out.println(x);
System.out.printf("%8.2f",x); ---- 格式化輸出
Printf與日期類型的格式化選項:
public static void main(String[] args) {
System.out.println(new Date());
System.out.printf("%tc",new Date());
}
+++++++++++++++++++++++++++++++++++++++
Tue Dec 29 11:29:12 CST 2009
星期二 十二月 29 11:29:12 CST 2009
=====================================================
//第一種從鍵盤讀數(shù)據(jù)的方法
/*
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=null; //代碼固定
do{
System.out.println("Please input your user name:");
try{
str=br.readLine();
}catch(IOException e){
}
}while(str.trim().charAt(0)>=0 && str.trim().charAt(0)<=9);
System.out.println("your user name is:"+str);
*/
//第二種從鍵盤讀數(shù)據(jù)的方法
Scanner sca=new Scanner(System.in);
System.out.println("Please input your name and age:");
String name=sca.next();
int age=sca.nextInt();
System.out.println("your name is:"+name);
System.out.println("your age is :"+age);
}
================================================
java.util.Scanner
Scanner sca = new Scanner(System.in);------System.in(是輸入流)
String s1 =sca.next(); ---------- 若輸入hello haha hehe這樣只能讀到hello
String s2 = sca.nextline(); ----------- 這個就能讀到所有的值
int a = sca.nextInt();
float f = sca.nextFloat();
double d =s sca.nextDouble();
System.out ---------------------------------------是輸出流
從一個字符串中取出首字符:
String name="abcd";
Char firstChar=name.charAt(0);
---------------------------------------------------------------------
Math.pow(a,b)------- Math類中有一個pow()方法表示,求a的b次方。
break loop; ----- 跳出標號所標的循環(huán),若沒有跟標號,直接跳出循環(huán)
continue ----- 同樣可以跟標號。
Java day04
求一個數(shù)是不是素數(shù): 循環(huán), 從2到n/2 或 sqrt(a) ;
int a=13;
boolean flag=true;
for(int i=2;i<=Math.sqrt(a);i++){
if(a%i==0){
flag=false;
break;
}
}
if(flag){
System.out.println("a 是素數(shù)");
}else{
System.out.println("a 不是素數(shù)");
}
----------------------------------數(shù)組:
1)聲明數(shù)組:
數(shù)組能以下列形式聲明:(兩種方式)
類型[] array;
類型 array[];
注: JAVA中推薦用: 類型[] array;
一個數(shù)組是一個對象
聲明一個數(shù)組沒有創(chuàng)建一個對象
聲明時不用指定長度
數(shù)組是引用類型; (類,接口,數(shù)組)
2)創(chuàng)建數(shù)組:
創(chuàng)建基本數(shù)據(jù)類型數(shù)組:int[] i = new int[2];
創(chuàng)建引用數(shù)據(jù)類型數(shù)組:Student[] s = new Student[100];
創(chuàng)建數(shù)組的三種形式:
int[] arr1;
arr1 =new int[5];
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- java 基礎 筆記
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.appdesigncorp.com/p-10787717.html