Java 基礎 01. Java 基礎語法

一仪召、計算機基礎

1. 打開 CMD 的方式

  1. 開始 > Windows 系統(tǒng) > 命令提示符。
  2. Win + R 輸入 CMD 打開控制臺 (推薦使用)牲距。
  3. 在任意文件夾下返咱,按住 Shift 鍵 + 鼠標右鍵 打開命令行窗口。
  4. 在資源管理器的地址欄前加上 CMD 路徑牍鞠。

2.管理員身份運行方式

  • 選擇以管理員方式運行咖摹。

3.常見的Dos命令

  1. 盤符切換:英文(盤符 + 冒號)

    Microsoft Windows [版本 10.0.19043.1348]
    (c) Microsoft Corporation。保留所有權(quán)利难述。
    C:\Users\xinzh>d:
    D:\>
    
  2. 查看當前盤符下的全部目錄:dir

    D:\>dir
     驅(qū)動器 D 中的卷是 工作臺
     卷的序列號是 1718-20F6
     D:\ 的目錄
    2021/05/17  16:15    <DIR>          BaiduNetdiskDownload
    2021/05/15  19:50    <DIR>          CloudMusic
    2021/05/14  21:19    <DIR>          Dev-Cpp
    2021/05/14  16:56    <DIR>          DTL8Folder
    2021/05/14  22:35    <DIR>          HBuilderX
    2021/05/14  22:36    <DIR>          java
    2021/05/14  17:00    <DIR>          MyDrivers
    2021/05/14  22:47    <DIR>          Notepad++
    2021/05/14  22:29    <DIR>          Sublime Text 3
    2021/05/14  18:56    <DIR>          Typora
    2021/05/17  17:53    <DIR>          VCW
    2021/05/14  21:25    <DIR>          VS2017
    2021/05/14  21:47    <DIR>          Windows Kits
                   0 個文件              0 字節(jié)
                  13 個目錄 663,783,088,128 可用字節(jié)
    
  3. 切換目錄:cd change directory

    E:\>cd /d d:
    d:\>cd /d d:\leven  // '/d'可實現(xiàn)進入跨盤符目錄切換
    d:\LEVEN>cd ..
    d:\>
    
  4. 返回上一級:cd ..

  5. 清理屏幕: cls

  6. 退出終端:exit

  7. 查看電腦IP信息:ipconfig

  8. 打開計算器:calc

  9. 打開畫圖:mspaint

  10. 打開記事本:notepad

  11. ping 命令:ping 網(wǎng)址

  12. 文件操作

    C:\Users\xinzh\Desktop>md test
    C:\Users\xinzh\Desktop>cd test
    C:\Users\xinzh\Desktop\test>cd>a.txt
    C:\Users\xinzh\Desktop\test>
    
  13. 刪除文件

    C:\Users\xinzh\Desktop\test>del a.txt
    C:\Users\xinzh\Desktop\test>cd ..
    C:\Users\xinzh\Desktop>rd test
    C:\Users\xinzh\Desktop>
    

二萤晴、Java 基礎

1. 簡介及安裝、配置

2. 編寫第一個 Java 程序

  1. 新建 Hello.java 文件胁后,內(nèi)容如下:

    public class HelloWorld{
        public static void main(String[] args){
            System.out.println("Hello,world!"); // 輸出 Hello,wrold!
        }
    }
    
  2. 編譯 java 文件:在命令行窗口輸入 javac HelloWorld.java 店读,回車鍵編譯代碼,生成 HelloWorld.class 文件

  1. 運行 class 文件:輸入 java HelloWorld 攀芯,回車鍵運行程序

可能遇到錯誤的情況

  1. 單詞大小寫屯断,Java 區(qū)分大小寫
  2. 盡量使用英文
  3. 文件名與類名必須保持一致,且首字母要大寫
  4. 符號中不能出現(xiàn)中文

3. Java 三種注釋方式

  1. 單行注釋 // , idea 快捷鍵 Ctrl + / idea 常用快捷鍵

    public class HelloWorld {
        public static void main(String[] args) {
            // 單行注釋侣诺,輸出 Hello,wrold!
            System.out.println("Hello,world!");
        }
    }
    
  2. 多行注釋 /* */ , idea 快捷鍵 Ctrl + Shift + /

    public class HelloWorld {
        public static void main(String[] args) {
           /*
            多行注釋
             */
            System.out.println("Hello,world!");
        }
    }
    
  3. 文檔注釋:JavaDoc /** */

/**
 * @Description HelloWorld
 * @Author LIU
*/
public class HelloWorld {
    public static void main(String[] args) {
        // 單行注釋殖演,輸出 Hello,wrold!
        System.out.println("Hello,world!");
    }
}

4. 標識符與關鍵字

  1. 標識符
    Java 所有的組成部分都需要名字。類名年鸳、變量名以及方法名都被稱為標識符趴久。
    • 所有的標識符都應該以字母 A-Z 或者 a-z,美元符 $搔确,或者下劃線 _ 開始彼棍;
    • 首字符之后可以是字母 A-Z 或者 a-z 美元符 $ 灭忠、下劃線 _ 或數(shù)字的任何字符組合;
    • 不能使用關鍵字作為變量名或方法名座硕;
    • 標識符是大小寫敏感的弛作;
    • 可以使用中文命名,但是一般不建議這樣去使用坎吻,也不建議使用拼音缆蝉。
    • 合法標識符舉例:age、$salary瘦真、_value刊头、__1_value
    • 非法標識符舉例:123abc、-salary
/**
 * @author Liu
 * @create 2021-11-26 11:38
 */
public class Demo01 {
    public static void main(String[] args) {
        String Ahello = "Liu";
        String hello = "Liu";
        String $hello = "Liu";
        String _hello = "Liu";
        String _vvhh = "Liu";
        String 變量 = "Liu";      // 不建議這樣去使用
    }
}
  1. Java 關鍵字 點擊查看

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

  1. 語言類型分類
    • 強類型語言:要求變量的使用要嚴格符合規(guī)定诸尽,所有變量都必須先定義后才能使用原杂。
    • 弱類型語言
  2. Java 數(shù)據(jù)類型基本分類:基本類型和引用類型
  • 基本類型(八種)
    • 數(shù)值類型
      • 整數(shù)類型
        • byte (位) 占1字節(jié),范圍:-128 - 127
        • short (短整數(shù)) 占2字節(jié)您机,范圍: -2^15 - 2^15-1
        • int (整數(shù)) 占4字節(jié)穿肄,范圍: -2^31 - 2^31 - 1
        • long (長整數(shù)) 占8字節(jié),范圍:-2^63 - 2^63-1
      • 浮點類型
        • float (單精度) 占4字節(jié)
        • double (雙精度) 占8字節(jié)
    • 字符類型:char (字符) 占2字節(jié)
    • boolean 類型 (布爾值):占1位其值只有 true 和 false 兩個际看。
  • 引用類型 (三種)
    • 接口
    • 數(shù)組
public class Demo02 {
    public static void main(String[] args) {
        // 八大基本數(shù)據(jù)類型
        // 整數(shù)
        int num1 = 10;  // 最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 40L; // Long 類型要在數(shù)字后面加 L
        // 小數(shù):浮點數(shù)
        float num5 = 50.1F; // float 類型要在數(shù)字后面加 F
        double num6 = 3.1415926534546246455;
        // 字符類型
        char name = '中';
        // 字符串咸产,String 不是關鍵字,是類
        String names = "Liu";
        // 布爾值
        boolean flag = true;
        boolean flag2 = false;
    }
}
  • 什么是字節(jié)
    • 位(bit):是計算機內(nèi)部數(shù)據(jù)儲存的最小單位仲闽,11001100是一個八位二進制數(shù)脑溢。
    • 字節(jié)(byte):是計算機中數(shù)據(jù)處理的基本單位,習慣上用大寫 B 來表示赖欣,1B(byte 字節(jié))= 8bit(位)屑彻。
    • 字符:是指計算機中使用的字母、數(shù)字顶吮、字和符號社牲。
      • 1bit表示1位
      • 1Byte表示一個字節(jié)1B = 8b
      • 1024B = 1KB
      • 1024KB = 1M
      • 1024M = 1G

數(shù)據(jù)類型擴展知識

public class Demo03 {
    public static void main(String[] args) {
        // 整數(shù)拓展:    進制      二進制0b   十進制     八進制0    十六進制0x
        int i=10;
        int i2 = 010;   // 八進制0
        int i3 = 0x10;  // 十六進制0x
        System.out.println(i);  // 10
        System.out.println(i2); // 8
        System.out.println(i3); // 16
        System.out.println("-------------------------------------");
        //************************************************
        // 浮點數(shù)拓展
        // BigDecimal   數(shù)學工具類
        // float 有限     離散      舍入誤差    大約  接近但不等于
        // 最好完全避免使用浮點數(shù)進行比較
        float f = 0.1f; // 0.1
        double d = 1.0/10;  // 0.1
        System.out.println(f==d);   // false
        float d1 = 2425444564215654564f;
        float d2 = d1 + 1;
        System.out.println(d1==d2); // true
        System.out.println("-------------------------------------");
        //************************************************
        // 字符拓展
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);    // 強制轉(zhuǎn)換
        System.out.println(c2);
        System.out.println((int)c2);    // 強制轉(zhuǎn)換
        // 所有字符的本質(zhì)還是數(shù)字
        // 編碼 Unicode   2字節(jié)    0 - 65536   Excel
        char c3 = '\u0061';
        System.out.println(c3); // a
        // 轉(zhuǎn)義字符
        // \t   制表符
        // \n   換行
        // ......
        System.out.println("hello\tworld!");
        System.out.println("hello\nworld!");
        System.out.println("-------------------------------------");
        //
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);     // false
        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc==sd);     // true
        // 布爾值擴展
        boolean flag = true;
        if(flag==true){}    // 新手
        if(flag){}      // 老油條
        // 代碼要精簡易讀
    }
}

6. 類型轉(zhuǎn)換

  • 由于 Java 是強類型語言,所以要進行有些運算的時候的悴了,需要用到類型轉(zhuǎn)換搏恤。

    低 ------------------------------------------------> 高
    byte -> short -> char -> int -> long -> float -> double
    
  • 運算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型湃交,然后進行運算熟空。

    public class Demo04 {
        public static void main(String[] args) {
            int i = 128;
            byte b = (byte)i;   // 內(nèi)存溢出
            double b1 = i;
            // 強制轉(zhuǎn)換     (類型)變量名     高--低
            // 自動轉(zhuǎn)換     低--高
            System.out.println(i);
            System.out.println(b);
            System.out.println(b1);
            /*
            注意點:
            1.不能對布爾類型轉(zhuǎn)換
            2.不能將對象類型轉(zhuǎn)換為不相干的類型
            3.在把高容量轉(zhuǎn)換到低容量時,強制轉(zhuǎn)換
            4.轉(zhuǎn)換的時候可能存在內(nèi)存溢出巡揍,或者精度問題痛阻!
             */
            System.out.println("++++++++++++++++++++++++++++++++++++");
            System.out.println((int)123.7);
            System.out.println((int)-45.89f);
            System.out.println("=======================");
            char a = 'a';
            int c = a+1;
            System.out.println(c);  // 98
            System.out.println((char)c);    // b
        }
    }
    

常見問題

public class Demo05 {
    public static void main(String[] args) {
        // 操作比較大時菌瘪,注意溢出
        // JDK7特性腮敌,數(shù)字之間可以用下劃線分割
        int money = 10_0000_0000;
        System.out.println(money);
        int years = 20;
        int total = money*years;    //  -1474836480  計算時溢出
        System.out.println(total);
        long total2 = money*years;
        System.out.println(total2);    // 默認是int阱当,轉(zhuǎn)換之前已經(jīng)存在問題了!!!
        long total3 = money*(long)years;
        System.out.println(total3);     // 20000000000
    }
}

7. 變量與常量

  1. 變量:可以變化的量。
    • Java 是一種強類型語言糜工,每個變量都必須聲明其類型弊添。
    • Java 變量是程序中最基本的存儲單元,其要素包括變量名捌木,變量類型和作用域油坝。
    • 每個變量都有類型,類型可以是基本類型刨裆,也可以是引用類型澈圈。
    • 變量名必須是合法的標識符。
    • 變量聲明是一條完整的語句帆啃,因此每一個聲明都必須以分號結(jié)束瞬女。
     public class Demo06 {
         static int allClicks = 0;   // 類變量
         String str = "hello world"; // 實例變量
         public void method(){
             int i = 0;  // 局部變量
         }
         public static void main(String[] args) {
             // int a,b,c;
             // int a=1,b=2,c=3;
             String name = "Liu";
             char x = 'X';
             double pi = 3.14;
         }
     }
    
    public class Demo07 {
        // 類變量 static
        static double salary = 2500;
        // 屬性:變量
        // 實例變量:從屬于對象:實例變量:從屬于對象;如果不自行初始化努潘,這個類型的默認值 0 0.0
        // 布爾值:默認是 faLse
        // 除了基本類型诽偷,其余的都是null
        String name;
        int age;
        // main 方法
        public static void main(String[] args) {
            // 局部變量:必須聲明和初始化值
            int i = 10;
            System.out.println(i);
            // 變量類型 變量名字 = new Demo08();
            Demo07 demo07 = new Demo07();
            System.out.println(demo07.age);
            System.out.println(demo07.name);
            // 類變量 static
            System.out.println(salary);
        }
        // 其他方法
        public void add(int i){
            System.out.println(i);
        }
    }
    
  2. 常量( Constant):初始化( initialize)后不能再改變值!不會變動的值疯坤;
    • 所謂常量可以理解成一種特殊的變量报慕,它的值被設定后,在程序運行過程中不允許被改變压怠。
    • 常量名一般使用大寫字符眠冈。
    public class Demo08 {
        // 修飾符,不存在先后順序
        static final double PI = 3.14;
        public static void main(String[] args) {
            System.out.println(PI);
        }
    }
    
  3. 變量的命名規(guī)范
    • 所有變量刑峡、方法洋闽、類名:見名知意;
    • 類成員變量:首字母小寫和駝峰原則:monthSalary突梦;
    • 局部變量:首字母小寫和駝峰原則诫舅;
    • 常量:大寫字母和下劃線:MAX_VALUE;
    • 類名:首字母大寫和駝峰原則:Man, GoodMan宫患;
    • 方法名:首字母小寫和駝峰原則:run()刊懈,runRun()。

8. 基本運算符

Java 語言支持如下運算符:

  • 算術運算符:+娃闲,-虚汛,*,/皇帮,%卷哩,++,--
  • 賦值運算符: =
  • 關系運算符:>属拾,≤将谊,>=冷溶,<=,==尊浓,!=逞频, instanceof
  • 邏輯運算符:&&,‖栋齿,!
  • 位運算符:&苗胀,|,^瓦堵,~基协,>>,<<菇用,>>>(了解1ぬ汀!E偬邸)
  • 條件運算符: 泉唁?:
  • 擴展賦值運算符:+=,-=揩慕,*=亭畜,/=
    查看更多
package github.demo01;

public class Demo01 {
    public static void main(String[] args) {
        // 二元運算符
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/b);
        System.out.println(a/(double)b);
    }
}
package github.demo01;

public class Demo02 {
    public static void main(String[] args) {
        long a = 123123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;
        System.out.println(a+b+c+d);
        System.out.println(b+c+d);
        System.out.println(c+d);
    }
}
package github.demo01;

public class Demo03 {
    public static void main(String[] args) {
        long a = 123123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;
        System.out.println(a+b+c+d);
        System.out.println(b+c+d);
        System.out.println(c+d);
        System.out.println((double)c+d);
    }
}
package github.demo01;

public class Demo04 {
    public static void main(String[] args) {
        // 關系運算符返回的結(jié)果
        int a = 10;
        int b = 20;
        int c = 21;
        System.out.println(c%a);    // c / a 的余數(shù)
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}

9. 自增自減運算符、初識 Math 類

package github.demo01;

public class Demo05 {
    public static void main(String[] args) {
        // ++ -- 自增迎卤,自減  一元運算符
        int a = 3;
        int b = a++;    // 執(zhí)行完這一行代碼后拴鸵,先給b賦值,再自增
        System.out.println(a);
        int c = ++a;    // 執(zhí)行完這一行代碼前蜗搔,先自增劲藐,再給c賦值
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        // 冪運算 2^3
        double pow = Math.pow(2,3);
        System.out.println(pow);
    }
}

10. 邏輯運算符、位運算符

package github.demo01;

public class Demo06 {
    // 邏輯運算符
    public static void main(String[] args) {
        // 與(and)一假則假   或(or)一真則真   非(取反)
        boolean a = true;
        boolean b = false;
        System.out.println("a && b:" + (a && b));   // 邏輯與:兩個變量都為真樟凄,結(jié)果才為true
        System.out.println("a || b:" + (a || b));   // 邏輯或:兩個變量有一個為真聘芜,則結(jié)果才為true
        System.out.println("!(a && b):" + !(a && b));   // 取反:如果是真,則變?yōu)榧俜炝洌蝗绻羌偬郑瑒t變?yōu)檎?        // 短路運算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);
        System.out.println(c);
    }
}
package github.demo01;

public class Demo07 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
----------------------------------
        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B = 1111 0010
        2*8 = 16
        << 左移一位等同于 *2
        >> 右移一位等同于 /2
         */
        System.out.println(2<<3);
    }
}

11. 三元運算符

package github.demo01;

public class Demo08 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a += b; //  a = a+b
        a -= b; //  a = a-b
        System.out.println(a);
        // 字符串連接      + String
        System.out.println(""+a+b); // 1020   直接轉(zhuǎn)換為字符串
        System.out.println(a+b+""); // 30     先計算 a+b 再轉(zhuǎn)成字符串
    }
}
package github.demo01;

public class Demo08 {
    public static void main(String[] args) {
        // 三元運算符
        // x ? y : z
        // 如果x==true,則結(jié)果為y叔壤,否則結(jié)果為z
        int score = 80;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);
    }
}

12. 包機制

  • 為了更好地組織類瞎饲,Java 提供了包機制,用于區(qū)別類名的命名空間炼绘。

  • 包語句的語法格式為:

    package pkg1[.pkg2[.pkg3……]];
    
  • 一般利用公司域名倒置作為包名嗅战;如:com.xxx.www

  • 為了能夠使用某一個包的成員,我們需要在 Java 程序中明確導入該包俺亮。使用 ”import” 語句可完成此功能驮捍。

    import package1[.package2……].(classname | *);  // * 表示導入包下所有的類
    

13. JavaDoc

  • javadoc 命令是用來生成自己 API 文檔的形庭。
  • 參數(shù)信息
    • @ author 作者名
    • @ version 版本號
    • @ since 指明需要最早使用的 jdk 版本
    • @ param 參數(shù)名
    • @ return 返回值情況
    • @ throws 異常拋出情況
package github.demo01;

public class Doc {
    String name;
    /**
     * @author 
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
}
javadoc -encoding UTF-8 -charset UTF-8 Doc.java    // 命令行生成 java 文檔
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市厌漂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斟珊,老刑警劉巖苇倡,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異囤踩,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門弯汰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莱找,“玉大人,你說我怎么就攤上這事勤庐∈揪” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵愉镰,是天一觀的道長米罚。 經(jīng)常有香客問我,道長丈探,這世上最難降的妖魔是什么录择? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮碗降,結(jié)果婚禮上隘竭,老公的妹妹穿的比我還像新娘。我一直安慰自己讼渊,他們只是感情好动看,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爪幻,像睡著了一般弧圆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笔咽,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天搔预,我揣著相機與錄音,去河邊找鬼叶组。 笑死拯田,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的甩十。 我是一名探鬼主播船庇,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼吭产,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鸭轮?” 一聲冷哼從身側(cè)響起臣淤,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窃爷,沒想到半個月后邑蒋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡按厘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年医吊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逮京。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡卿堂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出懒棉,到底是詐尸還是另有隱情草描,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布策严,位于F島的核電站陶珠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏享钞。R本人自食惡果不足惜揍诽,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栗竖。 院中可真熱鬧暑脆,春花似錦、人聲如沸狐肢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽份名。三九已至碟联,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間僵腺,已是汗流浹背鲤孵。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辰如,地道東北人普监。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凯正。 傳聞我的和親對象是個殘疾皇子毙玻,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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