iptables配置使用 Snat 實現內網代理上公網【轉】
Java語言特點
- 簡單性
- 面向物件
- 跨平臺
- 分散式
- 多執行緒
- 安全性
- 健壯性
- 高效能
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是一種強型別語言,要求變數的使用要符合規定,所有變數都必須先定義才能使用。
- 基本型別
- 數值型別
- 整數型別
- byte:佔一個位元組
- short:佔兩個位元組
- int:佔四個位元組
- long:佔八個位元組
- 浮點型別
- float:佔四位元組
- double:佔八位元組
- 字元型別
- char:佔兩位元組
- 整數型別
- 布林(boolean)型別:佔1位,只有true和false
- 數值型別
- 引用型別
- 類
- 介面
- 陣列
擴充套件:
-
位元組:
位(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;
-
自動型別轉化
由低到高會自動轉換
注意點:
- 不能對布林值進行轉換
- 轉換時可能會存在記憶體溢位或者精度問題
- 操作較大的數時,注意溢位問題,可以在計算時先轉化其中一個數
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程式編譯成文件便於閱讀。
-
執行命令列語句,生成class檔案:命令列語句:javac triangle.java
-
執行class檔案:命令列語句:java triangle
-
生成javadoc文件:命令列語句:javadoc -encoding UTF-8 -charset UTF-8 triangle.java