發表文章

[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"); ...

套件-Package

 FQN -Fully qualified name 完全限定名稱 功能-做軟體分類 安全性控管 命名規則-小寫的倒寫URL 實作-以目錄的形式來實踐 package com.lccnet; class HelloWord{ public static void main(String[] args){ System.out.println("Hello World!!!!"); } } 通常一份 .java 檔格式的程式碼結構 package com.000; //一個 import OOOO; //多個 class HelloWord //多個 { public static void main(String[] args){ System.out.println("Hello World!!!!"); } } 當使用套件執行.java檔時,必須再套件的前一個目錄才能執行  javac HelloWord.java 如果要在所有的目錄底下都可以執行該套件的.java檔的.class檔時,必須設定絕對路徑 set classpath=C:\Alice\classes;%classpath% C:\>java com.lccnet.HelloWord 開發程式會將.java檔跟.class檔分開 src→ .java檔 classes→ .classes檔 java -d C:\Alice\classes com.lccnet.HelloWord //命令列模式 java -cp C:\Alice\classes com.lccnet.HelloWord //單行模式 java -classpath C:\Alice\classes com.lccnet.HelloWord //單行模式 verbose 檢視呼叫過哪些執行檔 java -verbose com.lccnet.HelloWord //單行模式 在java的系統中ext的優先權最高,將.jar檔放入C:\jdk1.8\jre\lib\ex...

繼承-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]基礎觀念(3)-數值運算

Java 變數 一種需經宣告初始化而使用,宣告形態不能再改變 修飾字 型態 變數名 =初值 ; final int v =6 ; 一經設定後就不能在改變值 int v 可以先不預設初值 ; 變數 區域變數 {}一程式區塊自宣告開始存在,同一層右大括弧消失 成員變數 class LocalVar{       public static void main(String[] args){            int i = 4;            {                 int j =3;                          {                               int k=2;                               System.out.println(i);           ...

[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...