1. 程式人生 > 其它 >iptables配置使用 Snat 實現內網代理上公網【轉】

iptables配置使用 Snat 實現內網代理上公網【轉】

Java語言特點

  1. 簡單性
  2. 面向物件
  3. 跨平臺
  4. 分散式
  5. 多執行緒
  6. 安全性
  7. 健壯性
  8. 高效能

Java三大版本

  • JavaSE(Java Platform,Standard Edition)

    Java SE也稱為 J2SE。它允許開發和部署在桌面、伺服器、嵌入式環境和實時環境中使用的 Java 應用程式。Java SE 包含了支援 Java Web 服務開發的類,併為 JavaEE提供基礎。

  • JavaEE(Java Platform,Enterprise Edition)

    JavaEE也稱為 J2EE。企業版,幫助開發和部署可移植、健壯、可伸縮且安全的伺服器端 Java 應用程式。Java EE 是在 Java SE 的基礎上構建的,它提供 Web 服務、元件模型、管理和通訊 API,可以用來實現企業級的面向服務體系結構(service-oriented architecture,SOA)和 Web 2.0 應用程式。

  • javaME:嵌入式開發(手機,小家電等,現在幾乎不用)

識別符號

在Java中,所有組成部分都有名稱,而類名、變數名、方法名等都被稱為識別符號。

注意點:

  • 所有識別符號都應該以:字母(AZ,az),美元符($)或者下劃線(_)開始

  • 首字母之後可以是字母(AZ,az),美元符($)或者下劃線(_)或數字的任何字元組合

  • 不能使用關鍵字作為變數名或方法名

  • 識別符號大小敏感

資料型別

Java是一種強型別語言,要求變數的使用要符合規定,所有變數都必須先定義才能使用。

  • 基本型別
    1. 數值型別
      • 整數型別
        • byte:佔一個位元組
        • short:佔兩個位元組
        • int:佔四個位元組
        • long:佔八個位元組
      • 浮點型別
        • float:佔四位元組
        • double:佔八位元組
      • 字元型別
        • char:佔兩位元組
    2. 布林(boolean)型別:佔1位,只有true和false
  • 引用型別
    1. 介面
    2. 陣列

擴充套件:

  • 位元組:

    位(bit):計算機 內部資料 儲存的最小單位,11001100就是一個八位二進位制數

    位元組(byte):計算機中 資料處理 的基本單位,習慣用B表示

    字元:是指計算機中使用的字母數字,字和符號

    1G = 1024M 1M = 1024kB 1KB = 1024B 1B = 8bit

  • 進位制:

    二進位制:0b開頭

    八進位制:0開頭

    十六進位制:0x開頭

  • 浮點數:

    描述:有限、離散、舍入誤差、接近但不等於、大約

    最好完全避免使用浮點數進行比較

  • 字元:

    char,用單引號表示,所有字元的本質都是數字

    char涉及的編碼使用的事Unicode編碼,2位元組,065536,區間範圍表示:U0000UFFFF

    \U0061就是字元a的Unicode表示,用數字表示是97

  • 布林值:

    boolean flag = true;
    if(flag == true){}
    if(flag){}			//這兩種寫法是一樣的,可以直接省略
    

型別轉換

Java運算時,如果有不同的資料型別,不同資料型別會先轉換為同一型別資料。

------> ----> --> ----> ---->
byte short char int long float double
  • 強制型別轉換

    由高到低需要強制型別轉換,格式:

    float f = (int) 12.0f;
    
  • 自動型別轉化

    由低到高會自動轉換

注意點:

  1. 不能對布林值進行轉換
  2. 轉換時可能會存在記憶體溢位或者精度問題
  3. 操作較大的數時,注意溢位問題,可以在計算時先轉化其中一個數
int a = 10_0000_0000;	//JDK7新特性:數字之間可以用下劃線分割,下劃線不會輸出,增加可讀性。
int b = 20;
long c = a*b;	//錯誤
long d = (long)a * b;	//正確
/*
	雖然從int到long會自動轉換,但是自動轉換是在計算完成後才自動轉型,所以會存在溢位問題。
	此時可以先將其中一個轉換,就不會造成溢位
*/

變數

定義:可以變化的量,Java是一種強型別語言,每個變數都需要宣告其型別,Java變數是程式中最基本的儲存單位,其要素包括:變數名,變數型別,作用域。

//資料型別 變數名 = 值;
type varName = value;
/*
	注意事項:
	1.每個變數的型別可以是基本型別也可以是引用型別
	2.變數名必須是合法的識別符號
	3.變數宣告是一條完整的語句,因此每一條語句都要以分號結束
*/
  • 類變數:需要加一個static修飾,從屬於類

  • 例項變數:從屬於物件,要使用需要建立物件

  • 區域性變數:方法中的變數,從屬於方法

    public static Test{
        static int a = 10;						//類變數
        String b;								//例項變數
        public static void main(String[] args){
            int c = 0;							//區域性變數
            System.out.println(c);				//區域性變數實現
            Test test = new Test();
            System.out.println(test.b);			//例項變數實現
            System.out.println(a);				//類變數實現
        }
    }
    

運算子

  • Java語言支援如下運算子
  • 自增和自減(一元運算子):

    int b = a++;
    
    a++:			//執行完這行程式碼後,先給b賦值,再自增
    
    int b = ++a;
    
    ++a:			//執行這行程式碼前,先自增,再給b賦值
    
  • 邏輯運算子

    &&(與):每個變數都為真才為真

    ||(或):兩個變數有一真即為真

    !(非):取反

注:在與(&&)運算中,如果第一個變數(表示式)為假,則會發生短路,第二個變數(表示式)不會執行,直接返回結果為假,這也叫短路運算。

  • 位運算

    public class Test{
        public static void main(String[] args){
            /*
            	A = 0011 1100
            	B = 0000 1101
            位運算:把數字轉為二進位制進行兩個二進位制比較
            A & B = 0000 1100	對應位置上都為1,結果的相應位置上才為1,否則為0
            A | B = 0011 1101	如果對應位都是0,結果的相應位置上才為0,否則為1
            A ^ B = 0011 0001	如果對應位置相同,結果的相應位置上為0,否則就為1
              ~ B = 1111 0010	取反,0變1,1變0
              ~ A = 1100 0011	取反,0變1,1變0
              
              <<:左移,相當於 *2
              >>:右移,相當於 /2
              0000 0000		0
              0000 0001 	1
              0000 0010 	2
              0000 0100		4
              0000 1000		8
              0001 0000		16
            */
            System.out.println(2<<3);	//把2所表示的二進位制數中的1左移三位
        }
       
    }
    
  • 三元運算子

    表示式1 ?表示式2 :表示式3

    如果表示式1為true,則結果為表示式2,否則結果為表示式3

JavaDoc文件

javadoc命令是用來生成自己的API文件的,把Java程式編譯成文件便於閱讀。

  1. 執行命令列語句,生成class檔案:命令列語句:javac triangle.java

  2. 執行class檔案:命令列語句:java triangle

  3. 生成javadoc文件:命令列語句:javadoc -encoding UTF-8 -charset UTF-8 triangle.java