發表文章

目前顯示的是有「Java」標籤的文章

[JAVA]enumeration 列舉

列舉可做為「常數」的集合 ,如果不在集合內的物件,compiler不會過。 ※ 使用列舉可以避免誤用錯誤的常數   列舉可搭配 switch 使用 列舉可以在類別內 (inline) 定義 列舉可以有建構子 (constructor) ,可建構複雜的列舉 依據上例,有幾件事項要說明一下: 1.       列舉實例必須最先定義。 2.       最後一個列舉實例必須加上分號 (;) 。 3.       新屬性不能在列舉實例之前宣告,需在列舉實例之後宣告。 4.       建構子有二個參數,所以每個 列舉實例都要傳入二個參數。 5.       建構子是隱含性的 private , private 修飾詞可寫可不寫,不能變更為 public 。 參考:https://www.tpisoftware.com/tpu/articleDetails/1432

[Java]例外處理

覆寫  java 子類別 override 父類別別名方法不能拋出 種類,範圍大於父類別所宣告的exception。 Assertion 斷言(斷定他不會發生) 語法:   assert  條件; assert 條件 : 自定訊息;  // 條件為否時做,訊息跳出的指令為  java -ea 檔名 try  catch final

[VM]虛擬機安裝

 SQL Injecttion WINDOWS10設定 CMD(系統管理員的身分) 下指令-bcdEdit /set hypervisorlaunchtype off 開始功能表中選取 命令提示字元  (Command Prompt) 磚按右鍵,然後點選 以系統管理員身分執行  (Run as administrator)   關閉Hypers 在[控制台] 中,選取[ 程式和功能]。 選取[ 開啟] 或[ 關閉Windows  功能]。 展開 Hyper -V,展開 Hyper -V 平臺],然後清除[  Hyper -V 虛擬機器監控程式] 核取方塊。 安裝Virtual Box  帳號:root 密碼:123456 安裝MySQL (可能需要裝c++ 分散套件) 帳號:root 密碼:a123456B+ 測試Mysql是否有執行(需在Linux底下執行) systemctl status mysqld 如果MySQL掛了  systemctl  restart mysqld 加密模式連線虛擬機 Putty WinScp

[Java]import 與 static

import -告訴以下程式使用哪一個package下的元件 java import 文法; import packageName.className //單一類別 import java.util.Date; class importtime{ public static void main(String[] args){ Date date2 = new Date(); System.out.println(date2); } } import packageName.* //package以下同一層的所有類別 import java.util.*; class importtime{ public static void main(String[] args){ Date date2 = new Date(); System.out.println(date2); } } import java.util.*; import java.sql.*; class importtime{ public static void main(String[] args){ Date date2 = new Date(); System.out.println(date2); } } //產生error 無法辨識是哪一個package底下的成員 static import -package下的元件中有static的成員 import static java.lang.System.out; class importstatic{ public static void main(String[] args){ out.println("step1"); out.println("step2"); out.println("step3"); out.println("step4"); ...

繼承-Inheritance

物件導向程式開發的三個重點,Java是單一繼承  (C++是多重繼承) 繼承-目的 code reuse 封裝 多型 通常是特殊型別 繼承 通用型別 語法 class 子類別名稱 extends 父類別名稱{    } override overload 覆寫 多載 子類別繼承父類別的屬性跟方法, 然後改寫 相同的 方法名稱,擁有不同的 實作。 class SuperClass { String str="super str"; void fun (){ System.out.println("super method"); } } class SubClass extends SuperClass { void fun (){ System.out.println("子類別改寫父類別方法override"); } String newstr="子類別新屬性";      void newfun (){ System.out.println("子類別的新方法"); } } void test () ; void test ( int i) ; void test ( char c) ; void test (String s, int i) ; void test (String s, String s2) ; 子類別可以new 父類別的型別 物件 obj1 是子類別,但是只有父類別的屬性跟方法 SubClass obj1= new SubClass();   物件 obj1 可以轉回子類別 obj2 SubClass obj2=(SubClass) obj1; Instanceof ...

類別型態 vs 基本型態

基本型態 類別型態 目的 效率 類型 long、int、double、float、boolean、byte Long、Integer、Double、Float、Boolean、Byte 語法 基本型態 變數名= XX; 類別型態 變數名=new 類別型態(); 自動裝箱(Auto Boxing) 您要使用包裹型態(Wrapper Types)才能將基本資料型態包裝為物件,前一個小節中您已經知道在 J2SE 5.0 之前,要如下才能將 int 包裝為一個 Integer 物件: Integer integer = new Integer(10); Long k=new Long(0); 在 J2SE 5.0 之後提供了自動裝箱的功能,您可以直接如下撰寫來包裹基本型態: Integer integer = 10; Long k=0L; 自動拆箱(unboxing) public class AutoBoxDemo2 { public static void main (String[] args) { Integer i1 = 100 ; Integer i2 = 100 ; if (i1 == i2) System.out.println( "i1 == i2" ); else System.out.println( "i1 != i2" ); } } Integer pool 的範圍為1byte :-127~128 物件型態的處理時間比基本型態還慢!!! class wrapperclass { public static void main ( String[] args ) { long ...

[Java]物件導向

 http://tw.gitbook.net/java/index.html 陣列 型態 變數名 ; int[] array = new int[5]; class Testarray  {    public static void main(String[] args){                       System.out.println("陣列");           int[][] arr= new int[3][9];           int k=1;                      System.out.println("tttt"+arr.length);            for(int i = 0;i<arr.length;i++){                                 for(int j = 0;j<arr[i].length;j++){                                     arr[i][j] =k++;                 ...

[Java]迴圈_2

圖片
For用法 for(int i=1;i<10;i++) for( ;i<10;i++ ) for(int i=1; ;i++) for(int i=1;i<10; ) for(int i=1; ; ) for( ;i<10; ) for( ; ;i++) for( ; ; ) = while(true) 迴圈( 條件 ){     敘述一;     continue; //跳到迴圈開頭      敘述二;     break; //跳出迴圈, 終止程式      敘述三;     break  bable1;      continue    bable1; } class ForBreak{     public static void main(String[] args){                  System.out.println("九九乘法表");         int i=1;          for(;;){           int j=1;                      for(;;){                 System.out.print(i+"*"+j+"="+i*j);             ...

[Java]迴圈_1

For for( 初始化參數;迴圈判斷;迴圈增量 ){ } class ForMulti{     public static void main(String[] args){                   System.out.println("九九乘法表");                  for(int j=1;j<10;++j){                       for(int i=1;i<10;++i){                 System.out.print(i+"*"+j+"="+i*j);                 if(i*j>=10){                 System.out.print(" ");                 }                 else{                 System.out.print("  ");                 }                           ...

[Java]流程控制-Swith

Switch( 變數 ){     case ( 明確的變數或常數 ):     敘述;     break; //終止程式     default; //若所有條件都不符合則進入該行 } 變數 用法 變數 用法 可放入除Long外的整數 String class enum class TestSwtich{       public static void main(String[] args){             int der=3;         switch (der){           case 1 :                   System.out.println("大學一年級");               case 2 :                   System.out.println("大學二年級");               case 3 :                   System.out.println("大學三年級");               case 4 :                   System.out.println("大學四年級");    ...

[Java]流程控制

 class TestVar2{     public static void main(String[] args){         int x=5;         int y;         if(x>4){             y=6;         }         System.out.println(y); //產生錯誤,y沒有初始化     } }  class TestVar2{     public static void main(String[] args){         final int x=5;         int y;         if(x>4){             y=6;         }         System.out.println(y); //x為常數,所以if直接成立     } }  class TestVar2{     public static void main(String[] args){         int x=5;         int y;         if(x>4){             y=6;         }      ...

[Java]基礎觀念(4)-位移

符號 名稱 意思 >> 有號右移 往右移補最左邊一樣的正負值 >>> 無號右移 往右移,補0 << 往左移 往左移,補0 class BitShift{             public static void main(String[] args){          byte a=8;         byte c=-8;                  System.out.println(a>>1);           //4          System.out.println(a<<1);           //16          System.out.println(a>>>1);           System.out.println("==================1");                System.out.println(a>>9);    //轉成 int 32 位元          System.out.println(a<<9);    //轉成 ...

[Java]基礎觀念(2)-Char

逢幾進位 表示 二進位 0B 0B111 八進位 0 0240 0O 0O240 十進位 開頭不為零 220 十六進位 OX 0X110 class NumberTrans{        public static void main(String[] args){             int i1=0B111;             int i2=0240;             int i3=502;             int i4=0X19A;             System.out.println(i1); //7             System.out.println(i2); //160             System.out.println(i3); //502             System.out.println(i4); //410       }  } 數值 表示 byte byte i =5; compiler sugar 只要範圍在-1...

[java]基礎概念

圖片
縮寫 說明 示範 jdk java develop kit jre java running enviornment bin binary 放執行檔的目錄 bin\javac -version javac 的版本 C:\jdk1.8\bin\javac \bin\javac 檔名.java 轉譯資料夾內的檔案成.class檔 C:\Alice>C:\jdk1.8\bin\javac HelloWorld.java \bin\java 檔名 執行資料夾內的.class檔 C:\Alice>C:\jdk1.8\bin\java HelloWorld \\ 單行註解 \\檔名 cd 轉換目錄 cd \ 根目錄名稱 dir 顯示目錄 C:\Alice\dir path 路徑,作用是告訴電腦執行檔位置,以目錄為單位 C:\Alice\set path=C:\jdk1.8\bin; Path 路徑 說明 示範 目錄結尾 Unix-Like ":" Window ";" 單行模式 絕對路徑 C:\jdk1.8\bin; 命令列模式 window 用 set path C:\Alice\set path=C:\jdk1.8\bin; 全域模式 系統的環境變數設定 控制台\所有控制台項目\系統\進階系統設定-環境變數 %path% 保留之前的目錄...

[Java] 陣列與字串轉換,Array to String 和 String to Array

String to Array 字串切割成字元         String s="LLLRRR";         String [] arrs=s.split("");         System.out.println(arrs); 字串以空白鍵區隔         String s2="I like dog!";         String [] arrs2=s.split(" ");         System.out.println(arrs); Array to String             String Shuffle_String="";      String  maparrs = new String[]{ [l, e, e, t, c, o, d, e]};        for(int i = 0; i<maparrs.length;i++ ){             Shuffle_String+=maparrs[i];        }