美團(tuán)移動(dòng)開發(fā)一面分享

這周四上午去交大閔行校區(qū)參加美團(tuán)移動(dòng)開發(fā)面試惦积,一面就被虐成狗胁住,看來自己的計(jì)算機(jī)基礎(chǔ)知識(shí)不扎實(shí)五芝,還需要多刷圖書館啊痘儡。分享美團(tuán)移動(dòng)開發(fā)的面試題,自己也總結(jié)下答案枢步。

一.算法:數(shù)字轉(zhuǎn)字符串

string my_itoa(int num)
{
    if (num == 0) {
        return "0";
    }
    string result = "";
    bool positive = true;
    if(num < 0)
    {
        positive = false;
        num = -num;
    }
    
    vector<int> str;
    while (num > 0) {
        str.push_back(num % 10);
        num = num / 10;
    }
    
    for (int i = str.size() - 1; i >= 0; i--) {
        result += str[i] + '0';
    }
    
    return positive ? result : "-" + result;
}

這道題需要注意:

  1. 數(shù)字小于等于0的情況處理
  2. 單個(gè)數(shù)字轉(zhuǎn)換成char的方法

二.算法:快排的原理沉删,時(shí)間和空間復(fù)雜度,用快排的思想求第k大的數(shù)价捧。這個(gè)就不寫了丑念,基礎(chǔ)的排序算法。

三.算法:求文件中第k大的數(shù)结蟋,文件比內(nèi)存大脯倚,不能全部放入內(nèi)存中。

關(guān)于這個(gè)題目嵌屎,推薦一篇文章:十道海量數(shù)據(jù)處理面試題與十個(gè)方法大總結(jié)

四.數(shù)據(jù)庫:事務(wù)的定義推正,事務(wù)的ACID特性,事務(wù)的實(shí)現(xiàn)原理

  1. 事務(wù)的定義:事務(wù)是數(shù)據(jù)庫管理系統(tǒng)執(zhí)行過程中的一個(gè)邏輯單位宝惰,由一個(gè)有限的數(shù)據(jù)庫操作序列構(gòu)成植榕。

  2. 事務(wù)的ACID特性:

  • 原子性(Atomicity):事務(wù)作為一個(gè)整體被執(zhí)行,包含在其中的對(duì)數(shù)據(jù)庫的操作要么全部被執(zhí)行尼夺,要么都不執(zhí)行
  • 一致性(Consistency):事務(wù)應(yīng)確保數(shù)據(jù)庫的狀態(tài)從一個(gè)一致狀態(tài)轉(zhuǎn)變?yōu)榱硪粋€(gè)一致狀態(tài)尊残。一致狀態(tài)的含義是數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)滿足完整性約束。
  • 隔離性(Isolation):多個(gè)事務(wù)并發(fā)執(zhí)行時(shí)淤堵,一個(gè)事務(wù)的執(zhí)行不應(yīng)影響其它事務(wù)的執(zhí)行寝衫。
  • 持久性(Durability):已被提交的事務(wù)對(duì)數(shù)據(jù)庫的修改應(yīng)該永久保存在數(shù)據(jù)庫中。

事務(wù)的定義和ACID特性參考維基百科:數(shù)據(jù)庫事務(wù)

  1. 事務(wù)的實(shí)現(xiàn)原理

事務(wù)的(ACID)特性是由關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS拐邪,數(shù)據(jù)庫系統(tǒng))來實(shí)現(xiàn)的慰毅。數(shù)據(jù)庫管理系統(tǒng)采用日志來保證事務(wù)的原子性、一致性和持久性扎阶。日志記錄了事務(wù)對(duì)數(shù)據(jù)庫所做的更新汹胃,如果某個(gè)事務(wù)在執(zhí)行過程中發(fā)生錯(cuò)誤婶芭,就可以根據(jù)日志,撤銷事務(wù)對(duì)數(shù)據(jù)庫已做的更新着饥,使數(shù)據(jù)庫退回到執(zhí)行事務(wù)前的初始狀態(tài)犀农。

數(shù)據(jù)庫管理系統(tǒng)采用鎖機(jī)制來實(shí)現(xiàn)事務(wù)的隔離性。當(dāng)多個(gè)事務(wù)同時(shí)更新數(shù)據(jù)庫中相同的數(shù)據(jù)時(shí)宰掉,只允許持有鎖的事務(wù)能更新該數(shù)據(jù)井赌,其他事務(wù)必須等待,直到前一個(gè)事務(wù)釋放了鎖贵扰,其他事務(wù)才有機(jī)會(huì)更新該數(shù)據(jù)。

事務(wù)的實(shí)現(xiàn)原理參考:談?wù)剶?shù)據(jù)庫的ACID

五.數(shù)據(jù)庫:索引的定義流部,索引的實(shí)現(xiàn)原理

  1. 索引的定義:索引時(shí)數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)戚绕,使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。

  2. 索引的實(shí)現(xiàn)原理:B-Tree或者B+Tree枝冀,具體詳細(xì)解析:數(shù)據(jù)庫進(jìn)階系列之一:漫談數(shù)據(jù)庫索引

六.網(wǎng)絡(luò):HTTP包有哪幾部分構(gòu)成舞丛,HTTP包頭部的關(guān)鍵字

HTTP請(qǐng)求包(GET、POST等請(qǐng)求方法)由三個(gè)部分構(gòu)成果漾,分別是:方法-URI-協(xié)議/版本球切,請(qǐng)求頭,請(qǐng)求正文绒障。下面是一個(gè)HTTP請(qǐng)求包(GET)的例子:

    GET /index.jsp HTTP/1.1
    Accept-Language:zh-cn
    Connection:Keep-Alive
    Host:192.168.0.106
    Content-Length:37

    userName=test&password=test

GET就是請(qǐng)求方法吨凑,HTTP 1.1支持七種請(qǐng)求方法:GET、POST户辱、HEAD鸵钝、OPTIONS、PUT庐镐、DELETE和TRACE等恩商,常用的請(qǐng)求方法為GET和POST

和HTTP請(qǐng)求包相似,由三個(gè)部分構(gòu)成必逆,分別是:協(xié)議-狀態(tài)代碼-描述怠堪,應(yīng)答頭,應(yīng)答正文名眉。下面是一個(gè)HTTP應(yīng)答的例子:

    HTTP/1.1 200 OK
    Server:Microsoft-IIS/4.0
    Date:Sun, 17 Oct 2015 14:50:00 GMT
    Content-Type:text/html
    Last-Modified:Thu, 15 Oct 2015 09:00:00 GMT
    Content-Length:90
    
    <html>
    <head>
        <title>已被虐慘</title>
    </head>
    <body>
        <h1>再接再厲</h1>
    </body>
    </html> 

HTTP頭部常用的關(guān)鍵字:

  • Cache-Control:指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制
  • Date:表示消息發(fā)送的時(shí)間
  • Pragma:用來包含實(shí)現(xiàn)特定的指令粟矿,最常用的是Pragma:no-cache
  • Host:指定請(qǐng)求資源的Internet主機(jī)和端口號(hào)
  • User-Agent:包含發(fā)出請(qǐng)求的用戶信息
  • Server:包含處理請(qǐng)求的原始服務(wù)器的軟件信息
  • Content-Type:用于向接收方指示實(shí)體的介質(zhì)類型
  • Last-modified:指定服務(wù)器上保存內(nèi)容的最后修訂時(shí)間
  • Set-Cookie:設(shè)置和頁面關(guān)聯(lián)的Cookie
  • Refresh:表示瀏覽器應(yīng)該在多少時(shí)間之內(nèi)刷新文檔

完整的HTTP頭部字段列表:List of HTTP header fields

七.TCP/IP協(xié)議分層,網(wǎng)絡(luò)層能不能保證可靠性璧针,為什么嚷炉,傳輸層能不能保證可靠性,為什么探橱,TCP的三次握手和四次揮手申屹。

TCP/IP協(xié)議分為五層:應(yīng)用層绘证、傳輸層、網(wǎng)絡(luò)層哗讥、數(shù)據(jù)鏈路層和物理層嚷那,具體就不展開了

網(wǎng)絡(luò)層智能提供盡最大努力服務(wù),并不能保證可靠性杆煞。

傳輸層中有兩個(gè)協(xié)議魏宽,TCP和UDP。

TCP---傳輸控制協(xié)議决乎,提供的是面向連接队询、可靠的字節(jié)流服務(wù)。當(dāng)客戶和服務(wù)器彼此交換數(shù)據(jù)時(shí)构诚,必須先在雙方之間建立一個(gè)TCP連接蚌斩,之后才能傳輸數(shù)據(jù)。TCP提供超時(shí)重發(fā)范嘱、丟棄重復(fù)數(shù)據(jù)送膳、流量控制等功能,保證數(shù)據(jù)能從一端傳到另一端丑蛤。

UDP---用戶數(shù)據(jù)協(xié)議叠聋,是一個(gè)簡單的面向數(shù)據(jù)的運(yùn)輸層協(xié)議。UDP不提供可靠性受裹,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報(bào)發(fā)送出去碌补,但是并不能保證它們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報(bào)不用在客戶和服務(wù)器之間建立一個(gè)連接名斟,且沒有重發(fā)機(jī)制脑慧,故而傳輸速度很快。

TCP的三次揮手和四次揮手見下圖:

TCP
TCP

圖是盜的砰盐,侵必刪闷袒,原文地址:TCP協(xié)議中的三次握手和四次揮手(圖解)

八.HTTPS是什么,HTTPS過程中岩梳,證書具體是怎么起作用的

這個(gè)時(shí)候就需要搬出大神的博客了:SSL/TLS協(xié)議運(yùn)行機(jī)制的概述

比我寫的好了100倍不止囊骤,膜拜!

九.操作系統(tǒng):死鎖的產(chǎn)生冀值、預(yù)防和避免

只能繼續(xù)貼了:死鎖的產(chǎn)生也物、預(yù)防和避免

十.iOS:為什么category無法使用property,如果需要類似于property的行為列疗,怎么辦

實(shí)際上來說滑蚯,category中是可以使用property的,只是類不會(huì)自動(dòng)生成對(duì)應(yīng)的實(shí)例變量,也不會(huì)自動(dòng)實(shí)現(xiàn)getter和setter告材,這樣的property就是名存實(shí)亡了坤次。至于原因,google到了美團(tuán)技術(shù)團(tuán)隊(duì)博客(好尷尬斥赋。缰猴。。)疤剑,里面是這么講的:

extension看起來很像一個(gè)匿名的category滑绒,但是extension和有名字的category幾乎完全是兩個(gè)東西。 extension在編譯期決議隘膘,它就是類的一部分疑故,在編譯期和頭文件里的@interface以及實(shí)現(xiàn)文件里的@implement一起形成一個(gè)完整的類,它伴隨類的產(chǎn)生而產(chǎn)生弯菊,亦隨之一起消亡焰扳。extension一般用來隱藏類的私有信息,你必須有一個(gè)類的源碼才能為一個(gè)類添加extension误续,所以你無法為系統(tǒng)的類比如NSString添加extension。

但是category則完全不一樣扫茅,它是在運(yùn)行期決議的蹋嵌。
就category和extension的區(qū)別來看,我們可以推導(dǎo)出一個(gè)明顯的事實(shí)葫隙,extension可以添加實(shí)例變量栽烂,而category是無法添加實(shí)例變量的(因?yàn)樵谶\(yùn)行期,對(duì)象的內(nèi)存布局已經(jīng)確定恋脚,如果添加實(shí)例變量就會(huì)破壞類的內(nèi)部布局腺办,這對(duì)編譯型語言來說是災(zāi)難性的)。

而關(guān)于實(shí)現(xiàn)property類似的行為糟描,博客中講到可以求助關(guān)聯(lián)對(duì)象來實(shí)現(xiàn)怀喉。

MyClass+Category1.h:

#import "MyClass.h"

@interface MyClass (Category1)

@property(nonatomic,copy) NSString *name;

@end

MyClass+Category1.m:

#import "MyClass+Category1.h"
#import <objc/runtime.h>

@implementation MyClass (Category1)

+ (void)load
{
    NSLog(@"%@",@"load in Category1");
}

- (void)setName:(NSString *)name
{
    objc_setAssociatedObject(self,
                             "name",
                             name,
                             OBJC_ASSOCIATION_COPY);
}

- (NSString*)name
{
    NSString *nameObject = objc_getAssociatedObject(self, "name");
    return nameObject;
}

@end

對(duì)這個(gè)博客感興趣的,鏈接在此:http://tech.meituan.com/DiveIntoCategory.html

十一.iOS:為什么UI必須在主線程修改

這個(gè)問題嚴(yán)格意義上來說并不是一個(gè)iOS的問題船响,考官對(duì)我也有提示躬拢,奈何自己還是沒答出來。

其實(shí)這就是一個(gè)操作系統(tǒng)題见间。答案應(yīng)該是UI操作并不是線程安全的聊闯,多線程更新UI會(huì)造成死鎖,競爭條件等多種問題米诉。因?yàn)?a target="_blank" rel="nofollow">Java的AWT庫的痛苦教訓(xùn)菱蔬,一般設(shè)計(jì)都不會(huì)允許多線程操作UI。iOS推薦UI操作在主線程中進(jìn)行,避免出現(xiàn)crash等無法預(yù)知的問題拴泌。

十二.iOS:UI編寫怎么多人協(xié)作魏身,有哪些方法,優(yōu)缺點(diǎn)

我只能想到兩種:

  • 建立多個(gè)Xib弛针,最后合到一個(gè)StoryBoard中去
  • 代碼構(gòu)建

不知道考官還有什么高招叠骑,請(qǐng)教他,他也不回答我削茁,惆悵宙枷。。茧跋。

十三.iOS:ARC是什么慰丛,strong、weak和assign關(guān)鍵詞瘾杭,weak和assign的區(qū)別

這里就不詳細(xì)寫了诅病,挺簡單的,稍微重要一點(diǎn)的就是weak和assign的區(qū)別粥烁。weak修飾的屬性贤笆,當(dāng)指向的對(duì)象被釋放(引用計(jì)數(shù)為0)的時(shí)候,會(huì)被自動(dòng)置為nil讨阻,而assign沒有這個(gè)功能芥永。

十四.iOS:為什么iOS開發(fā)中,控件一般為weak而不是strong

好吧钝吮,當(dāng)時(shí)也沒回答好埋涧,這里搜到一個(gè)知乎問題:為什么iOS開發(fā)中,控件一般為weak而不是strong奇瘦?

大概總結(jié)就是:

IBOutlet的屬性一般可以設(shè)為weak是因?yàn)樗呀?jīng)被view引用了棘催,除非view被釋放,否則IBOutlet的屬性也不會(huì)被釋放耳标,另外IBOutlet屬性的生命周期和view應(yīng)該是一致的醇坝,所以IBOutlet屬性一般設(shè)為weak。

簡單的說次坡,如果IBOutlet對(duì)象是nib/sb scene的擁有者(File’s owner)所持有的對(duì)象纲仍,那么很顯然擁有者必須“擁有”對(duì)象的指針,因此屬性應(yīng)設(shè)置為strong贸毕。而其他的IBOutlet對(duì)象的屬性需要設(shè)置為weak郑叠,因?yàn)閾碛姓卟⒉恍枰皳碛小彼麄兊闹羔槨?/p>

但是材鹦,我搜到了一個(gè)stackoverflow的問題:Should IBOutlets be strong or weak under ARC?

stackoverflow有一些爭論晕粪,大家能理解中間的思想就好。

十五.iOS:關(guān)于runtime你知道哪些亚情,運(yùn)行時(shí)調(diào)用selector有哪些方法

runtime真是太大一個(gè)部分了,直接求助大神了:Objective-C Runtime

十六.iOS:iOS9新特性沸版,Swift2新特性

關(guān)于這樣的問題嘁傀,我一般都只能浮于表面,完全沒有自己去玩過新特性视粮,需要多看多試跋赴臁!

再再再附:開發(fā)者所需要知道的iOS9 SDK新特性

十七.iOS:MVVM設(shè)計(jì)模式

  1. Model - model 在 MVVM 中沒有真正的變化. 取決于你的偏好, 你的 model 可能會(huì)或可能不會(huì)封裝一些額外的業(yè)務(wù)邏輯工作.
  2. View - view 包含實(shí)際 UI 本身(不論是 UIView 代碼, storyboard 和 xib), 任何視圖特定的邏輯, 和對(duì)用戶輸入的反饋. 在 iOS 中這不僅需要 UIView 代碼和那些文件, 還包括很多需由 UIViewController 處理的工作.
  3. View-Model - 它的職責(zé)之一就是作為一個(gè)表現(xiàn)視圖顯示自身所需數(shù)據(jù)的靜態(tài)模型;但它也有收集, 解釋和轉(zhuǎn)換那些數(shù)據(jù)的責(zé)任. 這留給了 view (controller) 一個(gè)更加清晰明確的任務(wù): 呈現(xiàn)由 view-model 提供的數(shù)據(jù).

我的理解就是把MVC中一些本來由Controller做的事情分出來給View做了蕾殴,解決了Controller臃腫的問題笑撞,不知道這種理解對(duì)不對(duì)。

十八.設(shè)計(jì)API完成客戶端和服務(wù)器訂單的增量更新

直接給這個(gè)問題給跪了钓觉,自己以前也沒做過相應(yīng)的東西茴肥,回答的時(shí)候基本無法組織語言。

找到一篇文章荡灾,說得還不錯(cuò):app后端設(shè)計(jì)(10)--數(shù)據(jù)增量更新

貼下文章中增量更新的原理吧:

增量更新的原理是在數(shù)據(jù)庫中瓤狐,每條數(shù)據(jù)都必須有update_time這個(gè)值,記錄數(shù)據(jù)最后更新的時(shí)間批幌,當(dāng)app從服務(wù)器獲取了一次數(shù)據(jù)后(返回的數(shù)據(jù)必須按時(shí)間排序础锐,update_time最近的在第一條),記錄下第一條數(shù)據(jù)的update_time荧缘,當(dāng)再次獲取數(shù)據(jù)就只需要獲取上個(gè)時(shí)間點(diǎn)到訪問服務(wù)器這刻為止所更新的數(shù)據(jù)即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末郁稍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胜宇,更是在濱河造成了極大的恐慌,老刑警劉巖恢着,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桐愉,死亡現(xiàn)場離奇詭異,居然都是意外死亡掰派,警方通過查閱死者的電腦和手機(jī)从诲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來靡羡,“玉大人系洛,你說我怎么就攤上這事÷圆剑” “怎么了描扯?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長趟薄。 經(jīng)常有香客問我绽诚,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任恩够,我火速辦了婚禮卒落,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜂桶。我一直安慰自己儡毕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布扑媚。 她就那樣靜靜地躺著腰湾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钦购。 梳的紋絲不亂的頭發(fā)上檐盟,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音押桃,去河邊找鬼葵萎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛唱凯,可吹牛的內(nèi)容都是我干的羡忘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磕昼,長吁一口氣:“原來是場噩夢啊……” “哼卷雕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起票从,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤漫雕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后峰鄙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浸间,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年吟榴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了魁蒜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吩翻,死狀恐怖兜看,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狭瞎,我是刑警寧澤细移,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站熊锭,受9級(jí)特大地震影響葫哗,放射性物質(zhì)發(fā)生泄漏缔刹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一劣针、第九天 我趴在偏房一處隱蔽的房頂上張望校镐。 院中可真熱鬧,春花似錦捺典、人聲如沸鸟廓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽引谜。三九已至,卻和暖如春擎浴,著一層夾襖步出監(jiān)牢的瞬間员咽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工贮预, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贝室,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓仿吞,卻偏偏與公主長得像滑频,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唤冈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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

  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,393評(píng)論 7 249
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 23,869評(píng)論 8 183
  • 我是一個(gè)奇怪的女孩子傅物。 我沒有超能力夯辖,沒有聰明的大腦,沒有靈活的四肢挟伙,沒有很高的情商,沒有很牛的智商模孩,但我可能有你...
    趴趴的卷卷兒閱讀 251評(píng)論 0 0
  • 師傅今年年近五十尖阔,我今年二十五歲,師傅的兒子和我同歲榨咐,師傅和我父親年紀(jì)相當(dāng)介却。 下午沒事 坐一起閑聊,聊聊單位块茁、談?wù)?..
    既知即行閱讀 151評(píng)論 0 0
  • 找了兩首詞齿坷,一首是南唐后主李煜桂肌,還有一首是南唐中主李璟(李煜的父親): 《攤破浣溪沙》李璟 手卷真珠上玉鉤。依前春...
    JetLu閱讀 193評(píng)論 0 1