JavaSE學(xué)習(xí)筆記

前情提要

學(xué)習(xí)路徑

image.png

學(xué)習(xí)方法

多寫士复,多練图谷,多分享思考,貴在堅持阱洪。

即輸出代碼便贵,輸出筆記博客,費曼教學(xué)冗荸,能把學(xué)到的東西講清楚承璃,讓聽的人明白,多總結(jié)思考蚌本。

教授知識只是基礎(chǔ)盔粹,還要對別人的人生觀價值觀產(chǎn)生積極正向的影響。這樣反而更能促進學(xué)習(xí)者的學(xué)習(xí)興趣和深入理解魂毁。

為什么要博客玻佩?

  • 總結(jié)和思考
  • 提升文筆組織能力
  • 提升學(xué)習(xí)總結(jié)能力
  • 提升邏輯思維能力
  • 幫助他人,分享知識席楚,結(jié)交朋友

自建博客

  • wordpress
  • typecho

markdown基本語法

參考TYPORA的使用手冊

  • # 一級標題

  • ## 二級標題

  • ##### 五級標題

  • - 列表第一項

  • - 列表第二項

  • \1. 有序列表第一項

  • \2. 有序列表第二項

  • 標題

  • [圖片上傳失敗...(image-211ab0-1636004447253)]

  • 斜體

  • 粗體

  • > 引用段落

  • ``` 代碼塊 ```

馮諾依曼體系結(jié)構(gòu)

馮諾依曼.png

計算機軟件

計算機軟件.png

Windows快捷鍵

Ctrl + X 剪切
Ctrl + Z 撤銷
Windows + R 打開運行窗口咬崔,輸入cmd打開命令行窗口
Windows + E 打開我的電腦
Ctrl + Shift + ESC 打開任務(wù)管理器
Windows + P 打開分屏投影

Windows DOS命令

打開命令行窗口的方式
  1. 從開始 + Windows系統(tǒng)+命令提示符 點擊打開
  2. Windows + R 打開運行窗口,輸入cmd打開命令行窗口
  3. 在任意文件夾下,按住shift鍵+鼠標右擊垮斯,選擇 在此處打開powershell窗口
  4. 資源管理器的地址欄前面加上 cmd 文件路徑郎仆,就能打開該路徑下的cmd窗口
cmd.png

image.png

以管理員方式運行:右擊命令提示符選擇以管理員方式運行,便能獲得root最高運行權(quán)限兜蠕。

管理員cmd.png
常用的DOS命令
#盤符切換 C: D: E:即可
C:
#查看當前目錄下的所有文件
dir
#切換目錄 change directory
cd
#切換到不同盤符下的目錄 /d才能不同盤符切換
cd /d E:nomalSoft
#清理屏幕 clear screen
cls
#退出終端
exit
#查看ip地址
ipconfig
#dos命令打開軟件應(yīng)用
#calc 打開計算器  mspaint 打開畫圖 notepad 打開記事本
#ping命令 測試網(wǎng)絡(luò)是否正常連接該網(wǎng)址主機
ping www.google.com

#文件操作
#創(chuàng)建文件夾 make directory
md test
#刪除文件夾 remove dirctory
rd test
#創(chuàng)建文件 cd> 文件名
cd>demo.text
#刪除文件 del
del demo.text

根據(jù)電腦的連接扰肌,如目前連無線網(wǎng)則ip在無線適配器WLAN上:

ip.png

計算機語言

  1. 第一代機器語言——二進制
  2. 第二代匯編語言——逆向工程時使用
  3. 第三代高級語言——面向過程和面向?qū)ο?/li>

摩爾定律是英特爾創(chuàng)始人之一戈登·摩爾的經(jīng)驗之談,其核心內(nèi)容為:集成電路上可以容納的晶體管數(shù)目在大約每經(jīng)過18個月便會增加一倍熊杨。換言之曙旭,處理器的性能每隔兩年翻一倍。

Java環(huán)境的搭建

Java構(gòu)建程序需要用到的平臺晶府,系統(tǒng)和工具桂躏。

java技術(shù).png

什么是JDK,JRE,JVM?

java.png

JDK目錄介紹:

jdk目錄.png

JDK環(huán)境變量配置

JDK的環(huán)境變量配置時只需要配置%JAVA_HOME%\bin即可川陆,不需要再對jre\bin進行配置的原因是JDK包含了JRE,我們可以看到JDK\bin目錄下已經(jīng)包含了JRE的目錄了剂习,因此只要配置一個環(huán)境變量就行了。

jdk環(huán)境變量.png
jdk環(huán)境變量2.png
手動編譯Java文件
#首先進入到要編譯的java文件所在文件夾目錄下
 cmd D:\md_note\kuangstudy
#編譯java文件较沪,注意要帶java后綴
javac Application.java
#編譯后會生成Application.class 字節(jié)碼文件 

#java class文件名 ,執(zhí)行java代碼鳞绕。運行時直接運行java文件名即可,不可以帶Application.class后綴尸曼,否則會報找不到或無法加載主類
java Application

#注意如果是Windows平臺默認是GBK編碼们何,所有編譯時要指定編碼格式為utf8需要如下操作
#編譯:
javac -encoding utf8 Test.java

#執(zhí)行:
java -Dfile.encoding=utf8 Test

注意:java文件如果有包名路徑的話則編譯后的class文件也要在對應(yīng)的包名下,否則會執(zhí)行報錯骡苞。

Java程序運行機制

編譯型——直接編譯成機器碼垂蜗,相當于把一本書從中文翻譯成英文

解釋型——一行一行解釋成機器碼執(zhí)行,相當于把一本中文書讓一個翻譯官一行一行翻譯成英文給老外聽

Java到底是編譯型語言還是解釋型語言解幽?

Java基礎(chǔ)

數(shù)據(jù)類型

8大數(shù)據(jù)類型(byte,short,int,long,float,double,char,boolean)

數(shù)據(jù)類型.png

位與字節(jié)的關(guān)系

位與字節(jié)的關(guān)系.png

代碼示例

public class Test {
    public static void main(String[] args) {
        //整數(shù)有不同進制,二進制:0b,十進制 ,八進制:0,十六進制:0x
        int a = 10;
        int b = 0b10;
        int c = 010;
        int d = 0x10;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println("-------------------------------------------------------------");

        //浮點數(shù) 烘苹,針對金錢的計算一定要避免使用浮點數(shù)進行比較躲株,因為浮點數(shù)存儲位數(shù)有限,離散镣衡,有誤差霜定,會舍入誤差,值接近但不等于
        float e = 0.1f;
        double f = 1.0 / 10;
        System.out.println(e == f);//false float與double值有效位不一樣廊鸥,當一個浮點數(shù)做運算時如果指定類型則為了精度默認為double類型

        float g = 1011010101001f;
        float h = g + 1;
        System.out.println(g == h);//true 浮點數(shù)數(shù)值過大會丟失精度

        System.out.println("-------------------------------------------------------------");
        //字符 望浩,所有的字符本質(zhì)上還是數(shù)字,Unicode編碼表是字符與數(shù)字的對應(yīng)關(guān)系
        //如 97=a ,65=A,表示0-65536的數(shù)惰说,2的16次方=65536 一個字節(jié)8位磨德,字符=2個字節(jié)=16位
        char i = 'A';
        char j ='\u0061';//這里是十六進制數(shù),對應(yīng)十進制是65
        char k = (char)97;
        int l = (int)i;
        System.out.println(i);
        System.out.println(j);
        System.out.println(k);
        System.out.println(l);
        //轉(zhuǎn)義字符 \t 制表符  \n換行符
        System.out.println("with\tme");
        System.out.println("with\nme");
    }
}

   /**輸出:
     * 10
     * 2
     * 8
     * 16
     * -------------------------------------------------------------
     * false
     * true
     * -------------------------------------------------------------
     * A
     * a
     * a
     * 65
     * with me
     * with
     * me
     */

類型轉(zhuǎn)換

  • 強制類型轉(zhuǎn)換——類型從高轉(zhuǎn)低,如long轉(zhuǎn)int
  • 自動類型轉(zhuǎn)換——類型從低轉(zhuǎn)高典挑,如int轉(zhuǎn)long

類型轉(zhuǎn)換注意點:

  1. 不能對布爾值進行轉(zhuǎn)換
  2. 不能把對象類型轉(zhuǎn)換為不相干的類型酥宴,如int不能轉(zhuǎn)String
  3. 類型從高轉(zhuǎn)低進行強轉(zhuǎn)時可能會出現(xiàn)內(nèi)存溢出或者精度問題,如int轉(zhuǎn)byte您觉,double轉(zhuǎn)long
類型轉(zhuǎn)換.png

代碼示例

public class Test {
    public static void main(String[] args) {
        //JDK7新特性拙寡,數(shù)字之間可以用下劃線分割,方便程序員讀數(shù)琳水。
        int num = 1_0000_0000;
        System.out.println(num);//100000000
        int year = 500;
        System.out.println(num * year);//-1539607552 int類型內(nèi)存溢出
        //較大數(shù)值計算時要注意內(nèi)存溢出問題肆糕,運算前先把一個乘數(shù)值轉(zhuǎn)為較大類型如long,
        // 否則即使結(jié)果用long類型來作為接受結(jié)果也沒用在孝,因為會進行先int類型計算再轉(zhuǎn)型為long诚啃,
        //這時候已經(jīng)失去精度或者內(nèi)存溢出了
        System.out.println((long) num * year);//50000000000
        /**
         * 輸出:
         * 100000000
         * -1539607552
         * 50000000000
         */
    }
}

常量:初始化后不能再改變的值,被final修飾浑玛。

靜態(tài)常量:被final static修飾绍申。

常量命名:大寫字母加下劃線:MAX_MEMORY

運算示例

public class Test2 {
    /**
     * 自增運算示例
     *
     * @param args
     */
    public static void main(String[] args) {
        int a = 1;
        int b = a++;//執(zhí)行順序:先給b賦值,再自增
        int c = ++a;//執(zhí)行順序:先自增顾彰,再給c賦值
        System.out.println(a);//3
        System.out.println(b);//1
        System.out.println(c);//3
        //冪運算 借助工具類Math
        double v = Math.pow(2, 3);//8.0 2^3次方
        System.out.println(v);
        System.out.println("------------------------------------------");
        //測試短路
        int i = 10;
        boolean j = (i > 15) && (i++ > 15);
        System.out.println(i);//10,輸出是10表示短路了极阅,沒有進行后面的i++運算
        System.out.println(j);//false
        System.out.println("---------------------位運算符---------------------");
        /**
         * 位運算符
         * A:1010 1100
         * B:1001 0110
         *A&B = 1000 0100
         *A|B = 1011 1110
         *A^B = 0011 1010  A與B同時為0或1則為0,A與B值不同則為1
         *~A =  0101 0011
         *
         * << 相當于*2  右補齊0
         * >> 相當于/2  左補齊0
         */
        int k = 2 * 8;
        int l = 2 << 3;//位運行效率高
        double v1 = Math.pow(2, 16);
        double v2 = 2 << 15;//2^16次方相當于左移15位
        System.out.println(k);//16
        System.out.println(l);//16
        System.out.println(v1);//65536.0
        System.out.println(v2);//65536.0
    }
}

Javadoc生成文檔

第一種方法是直接打開java文件所在的類涨享,執(zhí)行下面這個語句

#-encoding是java代碼編碼筋搏,-charset是對生成文檔所用的編碼
javadoc -encoding utf-8 -charset utf-8 Test.java

第二種是使用idea幫我們生成,選擇tool——generate JavaDoc

用IDEA生成javadoc文檔

用戶交互類——Scanner

scanner.png

代碼示例

public class ScannerTest {

    public static void main(String[] args) {
        //從鍵盤接收數(shù)據(jù)
        Scanner scanner = new Scanner(System.in);
//        while (scanner.hasNext()){
//            System.out.println("輸出:"+scanner.next());
//        }
        //判斷是否還有輸入:代碼會在這個位置等待輸入
        if (scanner.hasNextLine()){
            System.out.println("輸出:"+scanner.nextLine());
        }
        //IO流只要有打開就一定要關(guān)閉
        scanner.close();
    }
}

Switch語句

代碼示例

public class SwitchTest {
    public static void main(String[] args) {
        //注意case穿透問題厕隧,如果從上面匹配到mike后沒有break語句奔脐,則case還會繼續(xù)往下執(zhí)行,把 default也打印出來吁讨,
        //所以一般要注意加break語句
        //JDK7新特性 switch語句可以使用String來判斷髓迎,我們通過查看反編譯文件可以發(fā)現(xiàn)本質(zhì)上是通過字符串的hashCode()值(是個int值)
        // 來進行判斷,而枚舉類也能用于switch語句是因為其調(diào)用的是枚舉類的ordinal()方法建丧,也就是枚舉的序列號來判斷
        String name = "mike";
        switch (name) {
            case "tom":
                System.out.println("tom");
                break;
            case "mike":
                System.out.println("mike");
                break;
            default:
                System.out.println("no one");
        }
    }
}

想要查看反編譯后的class文件對應(yīng)的值排龄,直接打開class文件是看不懂的,我們可以通過將該class文件拷貝到src源碼包下的位置翎朱,通過idea來打開橄维,就能看到反編譯后的代碼了。

switch反編譯結(jié)果如下:

switch1.png
switch2.png

方法

值傳遞和引用傳遞拴曲,Java是值傳遞争舞。

方法重載

方法重載.png

命令行傳參

參考手動編譯java文件一節(jié),注意編譯后要執(zhí)行的class文件需要帶包名執(zhí)行澈灼,否則找不到class文件竞川。命令行傳參其實就是在執(zhí)行語句后面加入要傳的參數(shù)即可。也可以直接使用idea的program arguments進行傳參。

命令行傳參.png
idea傳參.png

可變參數(shù)

代碼示例

public class Test3 {

    public static void main(String[] args) {
        //可變參數(shù)使用時也可以不穿參數(shù)流译,本質(zhì)上就是個數(shù)組逞怨,因此我們在傳參時可以直接傳個數(shù)組進去。
        Test3.printAll("a", "little", "guy");
        Test3.printAll(3, new String[]{"I", "am ", "Ironman"});
    }
    public static void printAll(int i, String... str) {
        System.out.println(i);
        System.out.println(Arrays.toString(str));
    }
    public static void printAll(String... str) {
        System.out.println(Arrays.toString(str));
    }
    /**
     * [a, little, guy]
     * 3
     * [I, am , Ironman]
     */
}

遞歸

利用遞歸可以用簡單的程序解決復(fù)雜的問題福澡。它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似但規(guī)模較小的問題叠赦。遞歸的能力在于用有限的語句來定義對象的無線集合。

遞歸要注意的便是遞歸不能太深革砸,否則會棧溢出或者計算太久空間浪費除秀。

遞歸結(jié)構(gòu)包含兩個部分

  1. 遞歸頭:什么時候不調(diào)用自身方法
  2. 遞歸體:什么時候調(diào)用自身方法

遞歸案例

  • 輸入一個地區(qū)名獲得其下面全部所有的區(qū)縣。如輸入深圳市或者浙江省獲取其下面所有區(qū)縣算利。
  • 數(shù)學(xué)階乘

代碼示例

public class Test5 {
    public static void main(String[] args) throws Exception {
        int result = Test5.factorial(6);
        System.out.println(result);//720
    }

    public static int factorial(int n) throws Exception {
        if (n <= 0) {
            throw new Exception("n is illegal");
        }
        if (n == 1) {
            return 1;
        }
        return n * factorial(n - 1);
    }
}

數(shù)組

數(shù)組的基本特點.png

代碼示例

冒泡排序

public class Test6 {
    public static void main(String[] args) {
        int[] arr = {1, 4, 5, 333, 321, 65, 65, 332, 12, 44, 56, 888};
        int[] sortArr = bubbleSort(arr);
        System.out.println(Arrays.toString(sortArr));
        //[1, 4, 5, 12, 44, 56, 65, 65, 321, 332, 333, 888]
    }
    /**
     * 冒泡排序
     * @param arr
     * @return
     */
    public static int[] bubbleSort(int[] arr) {
        int temp;
        for (int i = 0; i < arr.length - 1; i++) {
            boolean flag = false;
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    flag = true;
                }
            }
            if (!flag) {
                break;
            }
        }
        return arr;
    }
}

稀疏數(shù)組

稀疏數(shù)組的使用前提是原始數(shù)組中大部分的元素是相同的或者是默認值如0册踩,這樣我們對原始數(shù)組進行有效的壓縮成稀疏數(shù)組來減少空間的占用。稀疏數(shù)組的第一行記錄原始數(shù)組長度和寬度效拭,以及一共有多少個值暂吉。第二行到最后一行記錄每個值所在原始數(shù)組的坐標及值。

稀疏數(shù)組.png

面向?qū)ο?/h3>

本質(zhì):以類的方式組織代碼缎患,以對象的形式封裝數(shù)據(jù)慕的。

抽象、封裝挤渔、繼承肮街、多態(tài)

對象封裝的標準:屬性私有,對外提供getter/setter

構(gòu)造器

子類和父類構(gòu)造器問題:當父類只有有參的構(gòu)造器判导,沒有無參構(gòu)造器時嫉父,子類也必須是有參的構(gòu)造器,并顯示調(diào)用父類的有參構(gòu)造器眼刃,否則報錯绕辖,畢竟是繼承關(guān)系,父類是要先被創(chuàng)建出來的擂红,如果父類的有參構(gòu)造器沒有被調(diào)用則無法構(gòu)建出父類對象引镊。

示例:

public class Son extends Father{

    public Son(Integer id) {
        //顯示調(diào)用父類構(gòu)造器
        super(id);
    }
}

public class Father {
    private Integer id;

    public Father(Integer id) {
        this.id = id;
    }
}

初始化順序

代碼示例
public class Test7 {
    public static void main(String[] args) {
        A a1 = new A();
        System.out.println("-----------------------");
        A a2 = new A();
        /**
         * 靜態(tài)代碼塊
         * 匿名代碼塊
         * 構(gòu)造器
         * -----------------------
         * 匿名代碼塊
         * 構(gòu)造器
         */
    }
}
public class A {
    //只在第一次初始化時執(zhí)行,且只執(zhí)行一次
    static {
        System.out.println("靜態(tài)代碼塊");
    }
    //每次創(chuàng)建對象時都會執(zhí)行一次,可以在匿名代碼塊中賦初值篮条,在構(gòu)造器前執(zhí)行
    {
        System.out.println("匿名代碼塊");
    }
    //每次創(chuàng)建對象時都會執(zhí)行一次
    public A() {
        System.out.println("構(gòu)造器");
    }
}

抽象類和接口

抽象類有構(gòu)造方法,接口沒有構(gòu)造方法吩抓。

內(nèi)部類

  • 成員內(nèi)部類——在外部類里面定義的內(nèi)部類
  • 靜態(tài)內(nèi)部類——被static修飾的內(nèi)部類
  • 局部內(nèi)部類——定義在方法里面的類
  • 匿名內(nèi)部類——直接實現(xiàn)接口或抽象類重寫方法的類

內(nèi)部類可以調(diào)用外部類的私有屬性和私有方法涉茧。

一個Java文件中只能有一個public class類,但是可以有多個class類定義疹娶。

參考學(xué)習(xí)HashMap中的內(nèi)部類

異常

自定義異常繼承Exception伴栓。
異常體系.png

擴展

1、idea創(chuàng)建對象時要快速獲得對象對應(yīng)的變量名有兩個方法如下

Test2 test2 = new Test2();
// new Test2().var 加上.var
//在new Test2()這行使用alt + enter 

2、idea快速生成給定數(shù)字的for循環(huán)的快捷方式

100.for 即可钳垮,還可以選擇是遞增還是遞減

3惑淳、idea快捷鍵ctrl+alt+t 不生效,無法快捷生成try catch

這個是電腦上的QQ或TIM的熱鍵導(dǎo)致的饺窿,而且設(shè)置里還沒法更改歧焦,需要先在設(shè)置的熱鍵中給某個功能加上ctrl+alt+t,讓其生效了再刪除掉這個熱鍵肚医,這樣就不會出現(xiàn)這個問題了绢馍。真惡心。

[參考](求高手回答肠套,如何干掉騰訊QQ的全局熱鍵CTRL+ALT+T舰涌? - aNightCat的回答 - 知乎 https://www.zhihu.com/question/271586548/answer/374660485 )

4、大數(shù)據(jù)領(lǐng)域——Hadoop——Java寫的你稚,所以Java在大數(shù)據(jù)領(lǐng)域使用比較廣泛瓷耙。

疑問

JDK環(huán)境或者其他我們安裝的例如Mysql在linux中要如何卸載才能算完全卸載好了?刪除安裝目錄文件刁赖,刪除環(huán)境變量配置搁痛?

參考

TIOBE編程語言排行榜

狂神Java基礎(chǔ)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市乾闰,隨后出現(xiàn)的幾起案子落追,更是在濱河造成了極大的恐慌,老刑警劉巖涯肩,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轿钠,死亡現(xiàn)場離奇詭異,居然都是意外死亡病苗,警方通過查閱死者的電腦和手機疗垛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硫朦,“玉大人贷腕,你說我怎么就攤上這事∫д梗” “怎么了泽裳?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長破婆。 經(jīng)常有香客問我涮总,道長,這世上最難降的妖魔是什么祷舀? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任瀑梗,我火速辦了婚禮烹笔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抛丽。我一直安慰自己谤职,他們只是感情好错森,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布牡辽。 她就那樣靜靜地躺著台舱,像睡著了一般根灯。 火紅的嫁衣襯著肌膚如雪踏幻。 梳的紋絲不亂的頭發(fā)上值纱,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天京景,我揣著相機與錄音星掰,去河邊找鬼其馏。 笑死凤跑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的叛复。 我是一名探鬼主播仔引,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褐奥!你這毒婦竟也來了咖耘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤撬码,失蹤者是張志新(化名)和其女友劉穎儿倒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呜笑,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡夫否,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了叫胁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凰慈。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖驼鹅,靈堂內(nèi)的尸體忽然破棺而出微谓,到底是詐尸還是另有隱情,我是刑警寧澤输钩,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布豺型,位于F島的核電站,受9級特大地震影響买乃,放射性物質(zhì)發(fā)生泄漏触创。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一为牍、第九天 我趴在偏房一處隱蔽的房頂上張望哼绑。 院中可真熱鬧,春花似錦碉咆、人聲如沸抖韩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茂浮。三九已至,卻和暖如春壳咕,著一層夾襖步出監(jiān)牢的瞬間席揽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工谓厘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幌羞,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓竟稳,卻偏偏與公主長得像属桦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子他爸,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容