日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Java Swing股票交易模擬系統(tǒng):從數(shù)據(jù)結(jié)構(gòu)選型到撮合引擎設(shè)計(jì)

Java Swing股票交易模擬系統(tǒng):從數(shù)據(jù)結(jié)構(gòu)選型到撮合引擎設(shè)計(jì) 簡介這是基于Java Swing開發(fā)的股票交易模擬系統(tǒng)課程設(shè)計(jì)資源包面向需要完成數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)、Java實(shí)訓(xùn)或畢業(yè)設(shè)計(jì)的本科/高職學(xué)生。系統(tǒng)采用面向?qū)ο笈cMVC分層思想綜合運(yùn)用數(shù)據(jù)庫存儲技術(shù)、鏈表與隊(duì)列數(shù)據(jù)結(jié)構(gòu)、JFreechart開源圖表庫以及新浪股票行情接口實(shí)現(xiàn)行情揭示、賬戶管理、模擬買賣、走勢圖繪制、技術(shù)指標(biāo)與策略分析等完整功能同時(shí)以隨機(jī)數(shù)模擬實(shí)時(shí)數(shù)據(jù)便于脫離真實(shí)行情環(huán)境獨(dú)立運(yùn)行調(diào)試。資源包共187個(gè)文件約10.79MB包含54個(gè)Java源碼、20個(gè)依賴jar包、87個(gè)編譯后的class文件以及PPT答辯演示文稿、數(shù)據(jù)庫配置腳本、界面截圖和設(shè)計(jì)說明文檔代碼分層清晰可直接導(dǎo)入主流IDE學(xué)習(xí)與二次開發(fā)。已有758人學(xué)習(xí)下載適合用來掌握Swing圖形界面設(shè)計(jì)、數(shù)據(jù)庫連接、隨機(jī)數(shù)仿真、事件驅(qū)動(dòng)編程等核心技能也可作為課程設(shè)計(jì)報(bào)告與答辯PPT的參考素材。1. Java Swing 股票交易模擬系統(tǒng)這個(gè)課程設(shè)計(jì)包真正值得花時(shí)間的部分每年數(shù)據(jù)結(jié)構(gòu)課設(shè)都有人拿到類似「Java Swing 股票交易模擬系統(tǒng)源碼數(shù)據(jù)庫ppt」的壓縮包第一反應(yīng)是裝上跑通、截圖交差。但這類 java 課程設(shè)計(jì)案例源碼遍地都是真正拉開分?jǐn)?shù)差距的不是界面多好看而是你能不能把訂單排隊(duì)、行情緩存、持倉映射、賬戶并發(fā)扣款這些業(yè)務(wù)場景和數(shù)據(jù)結(jié)構(gòu)課上的堆、隊(duì)列、哈希表、平衡樹逐一對上號。題目里帶著「數(shù)據(jù)結(jié)構(gòu)」三個(gè)字評分點(diǎn)基本落在選型和復(fù)雜度上。這篇文章我會(huì)從整體設(shè)計(jì)拆到數(shù)據(jù)庫建表再講清楚撮合、行情刷新和線程安全怎么落地最后給你一套答辯前能直接用的驗(yàn)證方法和避坑順序。2. 先搭框架再看代碼四層架構(gòu)與每層該選什么數(shù)據(jù)結(jié)構(gòu)2.1 依賴方向決定改代碼的位置UI、服務(wù)、數(shù)據(jù)三層為什么要物理拆開很多課設(shè)包的原始代碼是「一個(gè) MainFrame 包天下」JTable 的渲染、行情生成循環(huán)、下單邏輯全塞在一個(gè)類里甚至監(jiān)聽器里直接寫 SQL。這種寫法不是不能跑而是你一旦被問到「某個(gè)功能改了會(huì)不會(huì)影響另一個(gè)功能」根本答不清楚依賴關(guān)系。我一般會(huì)先把代碼按四層拆開按下面的包結(jié)構(gòu)落com.course.stock ├── view # JFrame、JTable、監(jiān)聽器只做展示和輸入收集 ├── service # 賬戶、撮合引擎、行情生成業(yè)務(wù)規(guī)則都在這里 ├── dao # JDBC 數(shù)據(jù)訪問負(fù)責(zé)落庫和查詢 └── domain # User、TradeOrder、DealRecord、Position 等實(shí)體依賴方向是單向的view 調(diào) serviceservice 調(diào) daodomain 是公共數(shù)據(jù)載體。service 層絕對不 import javax.swingdao 層也絕對不出現(xiàn)業(yè)務(wù)判斷。這樣分完之后你在答辯時(shí)可以說「UI 層的登錄按鈕只負(fù)責(zé)把用戶名密碼交給 service 去校驗(yàn)數(shù)據(jù)庫連接方式換成連接池UI 層不需要改動(dòng)」。這句話比功能演示更能證明你理解了分層。一個(gè)額外收益是調(diào)試成本下降。比如行情價(jià)格異常先看 service 層的生成邏輯不用在監(jiān)聽器里翻幾千行找數(shù)據(jù)到底從哪來的。對于課設(shè)這種「交付時(shí)可能被抽查代碼」的場景類之間職責(zé)清晰比代碼寫得花哨重要得多。2.2 訂單簿用優(yōu)先隊(duì)列而不是普通 List撮合復(fù)雜度差了一個(gè)量級股票模擬系統(tǒng)里最核心的數(shù)據(jù)結(jié)構(gòu)是訂單簿。買盤按價(jià)格從高到低排隊(duì)賣盤按價(jià)格從低到高排隊(duì)同價(jià)按時(shí)間先后排隊(duì)。這個(gè)「按優(yōu)先級出隊(duì)」的語義天然是堆的活。用 ArrayList 存訂單每次撮合都要線性掃描找最優(yōu)價(jià)用 PriorityQueueJava 的優(yōu)先隊(duì)列底層是二叉堆插入和取最值都是 O(log n)。一次撮合要取買家最高價(jià)和賣家最低價(jià)各一次n 筆訂單下整體復(fù)雜度從 O(n2) 降到 O(n log n)。這個(gè)對比放在答辯里就是實(shí)打?qū)嵉募臃贮c(diǎn)。// 買盤價(jià)格高者優(yōu)先同價(jià)先到先得 QueueOrder buyOrders new PriorityQueue( (o1, o2) - o2.getPrice().compareTo(o1.getPrice()) ! 0 ? o2.getPrice().compareTo(o1.getPrice()) : o1.getTime().compareTo(o2.getTime()) ); // 賣盤價(jià)格低者優(yōu)先同價(jià)先到先得 QueueOrder sellOrders new PriorityQueue( (o1, o2) - o1.getPrice().compareTo(o2.getPrice()) ! 0 ? o1.getPrice().compareTo(o2.getPrice()) : o1.getTime().compareTo(o2.getTime()) );這里有兩個(gè)細(xì)節(jié)值得在代碼注釋里寫清楚。第一價(jià)格比較用 BigDecimal 的 compareTo 而不是 equals原因是 equals 還比較精度1.0 和 1.00 會(huì)被判為不同但它們在訂單簿里必須是一個(gè)價(jià)位。第二時(shí)間戳字段建議直接存 long 型的 System.currentTimeMillis()不需要在隊(duì)列里存 Date 對象做比較排序更快落庫時(shí)再轉(zhuǎn) DATETIME。隊(duì)列初始化后撮合循環(huán)就很簡潔同時(shí)看兩個(gè)隊(duì)頭能成交就處理剩余量不能成交就退出。這個(gè)邏輯放到第 4 章展開這里先記住一個(gè)原則——PriorityQueue 只在內(nèi)存里維護(hù)訂單順序訂單本身的持久化還在數(shù)據(jù)庫兩者不沖突。2.3 行情環(huán)存、持倉映射與自選列表三種典型數(shù)據(jù)結(jié)構(gòu)的使用位置訂單簿之外還有三處數(shù)據(jù)結(jié)構(gòu)選型容易在答辯時(shí)被追問。第一是行情快照。實(shí)時(shí)價(jià)格要被表格、K 線圖、持倉盈虧同時(shí)讀取用 ConcurrentHashMapString, Stock 存代碼到行情對象的映射讀多寫少比用 Hashtable 鎖整個(gè)表要合理。更新行情時(shí)只 put 單只股票其他股票的讀操作不會(huì)受阻塞。第二是 K 線滑動(dòng)窗口。只保留最近 N 根分鐘 K 線新數(shù)據(jù)進(jìn)來把最老的擠掉用數(shù)組實(shí)現(xiàn)的環(huán)形緩沖最合適。public class RingBuffer { private final double[] data; private int head; private int size; public RingBuffer(int capacity) { this.data new double[capacity]; } public void add(double value) { data[(head size) % data.length] value; if (size data.length) { head (head 1) % data.length; // 滿了就覆蓋最老的一格 } else { size; } } public double avg() { double sum 0; for (int i 0; i size; i) { sum data[(head i) % data.length]; } return size 0 ? 0 : sum / size; } }用它算最近 N 分鐘的均價(jià)復(fù)雜度是 O(1)不需要每次重新遍歷整個(gè)歷史表。如果把「均價(jià)高于實(shí)時(shí)價(jià)提示風(fēng)險(xiǎn)」做成一個(gè)小標(biāo)簽放在界面里這一處設(shè)計(jì)足夠支撐一個(gè)追問「你這里為什么不用 LinkedList」答案就是數(shù)組索引定位 O(1)、GC 壓力小且容量固定。第三是持倉映射。默認(rèn)用 HashMapString, Position 以股票代碼為鍵取持倉 O(1)。但如果自選股面板需要按漲跌幅排序展示不要在 HashMap 上強(qiáng)行排序而是排序時(shí)把 entrySet 拉出來丟進(jìn)臨時(shí)列表用 Collections.sort。原因是持倉數(shù)量通常是個(gè)位數(shù)到幾十個(gè)數(shù)量級排序成本可忽略沒必要為了排序引入一個(gè)始終維護(hù)有序性的 TreeMap 把寫操作拖慢。3. 數(shù)據(jù)庫表設(shè)計(jì)與 JDBC 落地把行情、訂單、持倉變成可對賬的賬3.1 建表腳本六張表和它們的字段語義模擬交易系統(tǒng)再怎么簡化「用戶、賬戶、股票、委托、成交、K 線」這六類數(shù)據(jù)一樣都不能少。賬戶和用戶拆開是為了以后擴(kuò)展「一個(gè)用戶多個(gè)模擬賬戶」留余地。委托表和成交表拆開是因?yàn)橐还P委托可能被拆成多筆成交這是真實(shí)撮合語義。CREATE TABLE t_user ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) UNIQUE NOT NULL, password VARCHAR(64) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE t_account ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, available_balance DECIMAL(18,2) DEFAULT 1000000.00, frozen_balance DECIMAL(18,2) DEFAULT 0.00, CONSTRAINT fk_account_user FOREIGN KEY (user_id) REFERENCES t_user(id) ); CREATE TABLE t_stock ( code VARCHAR(10) PRIMARY KEY, name VARCHAR(20) NOT NULL, last_price DECIMAL(10,2) NOT NULL, updated_at DATETIME ); CREATE TABLE t_trade_order ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, stock_code VARCHAR(10) NOT NULL, side TINYINT NOT NULL COMMENT 1買 2賣, price DECIMAL(10,2) NOT NULL, quantity INT NOT NULL, status TINYINT NOT NULL COMMENT 0未成交 1部分成交 2全部成交 3已撤單, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE t_deal_record ( id BIGINT PRIMARY KEY AUTO_INCREMENT, order_id BIGINT NOT NULL, stock_code VARCHAR(10) NOT NULL, deal_price DECIMAL(10,2) NOT NULL, deal_quantity INT NOT NULL, deal_amount DECIMAL(18,2) NOT NULL, deal_time DATETIME DEFAULT CURRENT_TIMESTAMP );DECIMAL(18,2) 是故意選的。模擬盤初始資金 100 萬單股價(jià)格按 10200 元算買一萬股剛好 200 萬DECIMAL(18,2) 足夠覆蓋且不會(huì)出現(xiàn) double 那種 0.10.2 不等于 0.3 的精度問題。t_trade_order 要建索引在 (user_id, status) 上因?yàn)椤覆槲业奈闯山晃小故亲铑l繁的查詢。t_deal_record 的 order_id 保留是為了演示時(shí)點(diǎn)開一筆委托能看到它被拆成了幾次成交。K 線表按分鐘落庫就夠了字段是 stock_code、kline_time、open、high、low、close、volume聯(lián)合主鍵 (stock_code, kline_time)。這筆數(shù)據(jù)不用實(shí)時(shí)寫每 N 秒由內(nèi)存里的環(huán)形緩沖聚合一次再批插入避免高頻行情把數(shù)據(jù)庫拖垮。3.2 JDBC 工具類、事務(wù)提交與連接參數(shù)先能跑再談優(yōu)化課設(shè)階段不需要上數(shù)據(jù)庫連接池一個(gè)簡單的 JDBC 工具類足夠。但連接參數(shù)里有兩個(gè)坑必須提前避開MySQL 8 的驅(qū)動(dòng)類名是 com.mysql.cj.jdbc.Driver不再是 com.mysql.jdbc.DriverserverTimezone 必須顯式指定否則會(huì)拋時(shí)區(qū)異常。public class DbUtil { private static final String URL jdbc:mysql://localhost:3306/stock_sim ?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf8; private static final String USER root; private static final String PASSWORD 123456; static { try { Class.forName(com.mysql.cj.jdbc.Driver); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } public static void close(Connection conn, Statement st, ResultSet rs) { if (rs ! null) try { rs.close(); } catch (SQLException ignored) {} if (st ! null) try { st.close(); } catch (SQLException ignored) {} if (conn ! null) try { conn.close(); } catch (SQLException ignored) {} } }寫入操作一定要手動(dòng)控制事務(wù)。最典型的場景是「買入成交」涉及三張表成交記錄插入、賬戶余額扣減、訂單狀態(tài)更新。任何一個(gè)失敗賬就對不上了。Connection conn DbUtil.getConnection(); try { conn.setAutoCommit(false); // 1. 扣減賬戶余額 // 2. 更新訂單狀態(tài)為全部成交 // 3. 插入成交記錄 conn.commit(); } catch (SQLException e) { conn.rollback(); throw e; } finally { conn.setAutoCommit(true); DbUtil.close(conn, null, null); }連接池的話題可以在答辯時(shí)提一句「生產(chǎn)環(huán)境會(huì)用連接池管理連接課設(shè)里為了讓你看清鏈路所以用 DriverManager」。但前提是你在配置文件里留了 db.properties 而不是把用戶名密碼寫死在常量類里。常見的做法是 Properties.load 讀取這里就不再貼完整代碼知道這個(gè)方向即可。3.3 拿到 zip 后從導(dǎo)入到第一條記錄落庫的完整路徑壓縮包解壓后先用一小時(shí)做環(huán)境核對而不是直接雙擊運(yùn)行腳本。我見過的翻車大半發(fā)生在「IDEA 里 Run 起來報(bào) ClassNotFoundException」或者「表結(jié)構(gòu)對不上」。按下面順序操作用 Navicat 或命令行執(zhí)行建庫腳本庫名用 stock_sim核對 SQL 腳本里的 CREATE DATABASE 語句是否包含字符集設(shè)置打開 db.properties把 jdbc.url、username、password 改為本機(jī)實(shí)際值在 IDEA 中打開項(xiàng)目確認(rèn) Project SDK 是 1.8 或更高Language level 與編譯版本一致在 Project Structure 的 Libraries 里把 mysql-connector-java 的 jar 包加進(jìn)來確認(rèn)它出現(xiàn)在最終 artifact 里找到帶 main 方法的入口類通常是 LoginFrame 或 MainFrame先跑一次跑通后做一次冒煙驗(yàn)證注冊一個(gè)用戶、查看初始資金是否為 100 萬、下買入單、去數(shù)據(jù)庫查 t_trade_order 是否多了一行。這條鏈路通了后面所有演示環(huán)節(jié)才談得上。4. 核心交易邏輯實(shí)現(xiàn)撮合、行情刷新與線程安全4.1 撮合引擎價(jià)格優(yōu)先、時(shí)間優(yōu)先的完整成交流程撮合引擎是整個(gè)系統(tǒng)里最有講頭的一段代碼。它的輸入是兩個(gè)優(yōu)先隊(duì)列——買盤隊(duì)列和賣盤隊(duì)列循環(huán)邏輯一句話概括買一價(jià)格 賣一價(jià)格就能成交成交量取兩者剩余量的較小值成交價(jià)取賣一價(jià)成交后把剩余量放回原隊(duì)列繼續(xù)比對。public ListDeal match(QueueOrder buys, QueueOrder sells) { ListDeal deals new ArrayList(); while (!buys.isEmpty() !sells.isEmpty()) { Order buy buys.peek(); Order sell sells.peek(); if (buy.getPrice().compareTo(sell.getPrice()) 0) { break; // 買方最高價(jià)夠不到賣方最低價(jià) } int quantity Math.min(buy.getRemaining(), sell.getRemaining()); Deal deal new Deal(); deal.setBuyOrderId(buy.getId()); deal.setSellOrderId(sell.getId()); deal.setStockCode(buy.getStockCode()); deal.setPrice(sell.getPrice()); // 成交價(jià)按賣一價(jià) deal.setQuantity(quantity); deals.add(deal); buy.setRemaining(buy.getRemaining() - quantity); sell.setRemaining(sell.getRemaining() - quantity); if (buy.getRemaining() 0) buys.poll(); if (sell.getRemaining() 0) sells.poll(); // 沒成交完的訂單留在隊(duì)里下一輪繼續(xù)比較 } return deals; }成交價(jià)按賣一價(jià)而不是買一價(jià)這是模擬盤常用的簡化規(guī)則真實(shí)交易所的撮合中間價(jià)規(guī)則更復(fù)雜。你在答辯時(shí)主動(dòng)說出「我這個(gè)模型做了簡化真實(shí)場景要考慮中間價(jià)和最小變動(dòng)價(jià)位」比等評委來問要主動(dòng)得多。要注意的是這里的 peek 不會(huì)移除訂單只有剩余量歸零才 poll。如果買單一筆很大可能連續(xù)吃掉好幾檔賣單每吃一檔就產(chǎn)生一條 Deal 記錄正好對應(yīng)數(shù)據(jù)庫里 t_deal_record 的一行。將這次循環(huán)產(chǎn)生的 List 批量入庫不要一條條 commit。4.2 行情生成與界面回顯SwingWorker 把價(jià)格刷新的結(jié)果送回 EDT行情數(shù)據(jù)在模擬系統(tǒng)里通常是一個(gè)后臺線程循環(huán)更新。這里最容易犯的錯(cuò)誤是直接在守護(hù)線程里調(diào)用 table.setValueAt——Swing 組件不是線程安全的任何 UI 操作必須在事件分發(fā)線程EDT上執(zhí)行。直接別處改 UI 的后果是界面偶發(fā)閃爍、半刷新甚至直接拋異常。class PriceFeedWorker extends SwingWorkerVoid, PriceTick { private final Random random new Random(); Override protected Void doInBackground() throws Exception { while (!isCancelled()) { Thread.sleep(1000); ListStock stocks stockDao.findAll(); ListPriceTick ticks new ArrayList(); for (Stock s : stocks) { double change (random.nextDouble() - 0.5) * 2 * 0.02; BigDecimal newPrice s.getLastPrice() .multiply(BigDecimal.valueOf(1 change)) .setScale(2, RoundingMode.HALF_UP); PriceTick tick new PriceTick(s.getCode(), newPrice); ticks.add(tick); latestPrices.put(s.getCode(), newPrice); } publish(ticks.toArray(new PriceTick[0])); } return null; } Override protected void process(ListPriceTick chunks) { // 此方法一定運(yùn)行在 EDT 上可以安全更新表格 for (PriceTick tick : chunks) { stockTableModel.updatePrice(tick.getCode(), tick.getPrice()); } } }SwingWorker 的 publish/process 機(jī)制就是設(shè)計(jì)出來解決這個(gè)問題的。doInBackground 在后臺線程跑循環(huán)process 匯總后切回 EDT 批量更新界面。注意 setScale(2, RoundingMode.HALF_UP) 保證價(jià)格只保留兩位小數(shù)。還有一點(diǎn)我踩過坑后臺線程里每秒查一次全表股票雖然不是大問題但明顯浪費(fèi)。更合理的做法是啟動(dòng)時(shí)把股票列表加載進(jìn)內(nèi)存的 ConcurrentHashMap后臺線程只更新內(nèi)存對象定時(shí)任務(wù)再批量把快照寫回?cái)?shù)據(jù)庫。數(shù)據(jù)庫是模擬系統(tǒng)的「存檔」不是行情數(shù)據(jù)的實(shí)時(shí)通道。4.3 賬戶與持倉的并發(fā)控制synchronized 鎖在哪個(gè)對象上模擬盤允許同時(shí)開啟多個(gè)窗口下單或者一個(gè)窗口里連續(xù)快速點(diǎn)擊買入。如果賬戶扣款和持倉變更不清理并發(fā)「余額扣了但持倉沒到賬」「賣出數(shù)量超過持倉」這些問題就會(huì)冒出來。這其實(shí)是 java 面試八股文里經(jīng)典的并發(fā)問題換了個(gè)皮膚。public synchronized TradeResult buy(Order order, Account account) { BigDecimal cost order.getPrice().multiply(BigDecimal.valueOf(order.getQuantity())); if (account.getAvailableBalance().compareTo(cost) 0) { return TradeResult.fail(可用余額不足需要 cost 實(shí)際 account.getAvailableBalance()); } account.setAvailableBalance(account.getAvailableBalance().subtract(cost)); Position position positions.get(order.getStockCode()); if (position null) { position new Position(order.getStockCode(), BigDecimal.ZERO, BigDecimal.ZERO); positions.put(order.getStockCode(), position); } position.setQuantity(position.getQuantity() order.getQuantity()); position.setCostAmount(position.getCostAmount().add(cost)); return TradeResult.ok(); }把整個(gè)買入動(dòng)作鎖在方法上聽著粗暴但在單機(jī)模擬盤這個(gè)場景下是正確的取舍。課設(shè)系統(tǒng)沒有微服務(wù)沒有分布式業(yè)務(wù)都在一個(gè) JVM 里方法級鎖足夠保證賬戶余額和持倉的一致性。如果你用鎖對象注意別鎖字符串常量兩個(gè)不同的 key 如果值相同會(huì)互相同步造成無意義的等待。余額不足的校驗(yàn)一定要放在扣款之前并且校驗(yàn)和扣款必須處于同一把鎖下。先校驗(yàn)再放鎖再扣款中間另一個(gè)線程插進(jìn)來余額就被透支了。這個(gè)「檢查和動(dòng)作之間要有原子性」的結(jié)論值得在答辯論證時(shí)反復(fù)強(qiáng)調(diào)。5. 翻車點(diǎn)避坑與排查五個(gè)常見問題的現(xiàn)象、原因和解決順序5.1 界面卡死登錄按鈕點(diǎn)下去整個(gè)窗口白屏現(xiàn)象點(diǎn)擊登錄后 JFrame 無響應(yīng)轉(zhuǎn)圈或者白屏過幾秒恢復(fù)嚴(yán)重時(shí)直接 NotResponding。原因登錄按鈕的監(jiān)聽器里直接執(zhí)行了數(shù)據(jù)庫查詢而鼠標(biāo)事件回調(diào)運(yùn)行在 EDT 上一條慢 SQL 或網(wǎng)絡(luò)抖動(dòng)就把界面線程堵住了。數(shù)據(jù)量一大這個(gè)卡頓就越明顯。解決所有可能耗時(shí)超過幾十毫秒的操作丟進(jìn) SwingWorker 或普通線程結(jié)果回來后再用 SwingUtilities.invokeLater 或 worker 的 process 刷新界面。登錄按鈕里只做「啟動(dòng)登錄任務(wù)」這一個(gè)動(dòng)作不要在里面查庫。把這條寫好評委的「你的界面為什么流暢」就有答案了。5.2 連不上數(shù)據(jù)庫ClassNotFoundException 或 CommunicationsException現(xiàn)象點(diǎn)登錄立刻報(bào)錯(cuò)控制臺出現(xiàn) java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver或者 Communications link failure。原因前者是驅(qū)動(dòng) jar 沒被正確打進(jìn)運(yùn)行環(huán)境后者八成是 MySQL 版本和 URL 參數(shù)不匹配。MySQL 5.7 用 com.mysql.jdbc.Driver 還能過MySQL 8 必須用 com.mysql.cj.jdbc.Driver 且 URL 里加 serverTimezone。解決先確認(rèn)用的驅(qū)動(dòng) jar 版本。IDE 里添加完 Library 后去 Artifacts 里勾選 include in project build很多 IDEA 項(xiàng)目里 Library 存在但打包時(shí)沒帶上。連接參數(shù)統(tǒng)一走 db.properties排查時(shí)只需要改一個(gè)文件不要在代碼里到處找硬編碼的 URL。5.3 賣出金額和買入成本對不上賬持倉成本越算越亂現(xiàn)象演示買入 100 股、賣出 100 股后賬戶總資產(chǎn)不等于初始資金差額正好是買入賣出的某個(gè)百分比。原因用 double 存價(jià)格和金額累加多次后精度丟失。比如 19.99 元的價(jià)格在 double 里實(shí)際是 19.989999999999998乘上股數(shù)放大后誤差變成幾毛錢再經(jīng)過幾筆交易就完全對不上。解決價(jià)格、金額、余額全部用 BigDecimal構(gòu)造時(shí)用字符串構(gòu)造器 new BigDecimal(19.99)不要用 new BigDecimal(19.99)。JDBC 讀取 DECIMAL 字段時(shí)用 getBigDecimal 拿到就是 BigDecimal不要轉(zhuǎn)成 double 再轉(zhuǎn)回來。這是所有對賬問題的根源。5.4 注冊成功后列表不刷新偶爾空指針現(xiàn)象新用戶注冊完成頁面上的用戶列表沒有新數(shù)據(jù)點(diǎn)擊某些行還會(huì)報(bào) NullPointerException。原因注冊成功后的數(shù)據(jù)加載仍然執(zhí)行在舊邏輯里拿的是注冊前的列表引用或者界面刷新和后臺數(shù)據(jù)加載的時(shí)序不對窗口還沒完成初始化數(shù)據(jù)觸達(dá) UI 時(shí)表格模型還是 null。解決數(shù)據(jù)變更后統(tǒng)一走「重新查詢→構(gòu)建新的 TableModel→setModel 刷新」這一條路徑??罩羔樑挪闀r(shí)先打印堆??词悄膫€(gè)對象為 null八成是領(lǐng)域?qū)ο鬀]有初始化例如 new ArrayList() 沒賦值就 add。不要在 getter 里返回 null集合屬性在聲明處直接初始化。5.5 快速雙擊下單持倉出現(xiàn)負(fù)數(shù)現(xiàn)象快速點(diǎn)擊買入按鈕明明余額足夠買 100 股最終持倉變成 -20 股或者余額變負(fù)數(shù)。原因兩次點(diǎn)擊事件都在余額校驗(yàn)完成前進(jìn)入了扣款邏輯或者賣出時(shí)沒有檢查當(dāng)前持倉量。數(shù)據(jù)庫層面沒有約束程序?qū)用嬉矝]有加鎖負(fù)庫存就出現(xiàn)了。解決下單入口加 synchronized 見 4.3 的寫法賣出在下單前先查 position.getQuantity()不足直接拒絕。另外可以在 t_account 表加 CHECK (available_balance 0)MySQL 8.0.16 以后會(huì)強(qiáng)制生效作為最后一層防線。程序鎖加數(shù)據(jù)庫約束雙層保護(hù)演示時(shí)再怎么點(diǎn)都不怕。6. 答辯前只練這三件事數(shù)據(jù)驗(yàn)證、演示節(jié)奏與加分說辭答辯演示前我會(huì)先跑一遍對賬 SQL確認(rèn)賬是平的。賬不平的模擬盤演示出去功能再多也圓不回來。對賬思路不復(fù)雜用戶的「當(dāng)前可用余額 各持倉市值 所有成交扣費(fèi)」應(yīng)該等于初始資金。SQL 寫成這樣SELECT u.username, a.available_balance, SUM(p.quantity * s.last_price) AS market_value, a.available_balance SUM(p.quantity * s.last_price) AS total_assets FROM t_user u JOIN t_account a ON u.id a.user_id LEFT JOIN t_position p ON p.user_id u.id LEFT JOIN t_stock s ON s.code p.stock_code GROUP BY u.id;如果每個(gè)用戶的 total_assets 都等于初始資金說明撮合、扣款、持倉更新是一致的。這條 SQL 跑通你演示時(shí)心里有底。演示節(jié)奏我習(xí)慣控制在十分鐘第一分鐘界面行情刷新動(dòng)起來讓評委看到價(jià)格在每秒跳動(dòng)中間五分鐘做一筆完整買入和一筆賣出強(qiáng)調(diào)撮合隊(duì)列的價(jià)格優(yōu)先和時(shí)間優(yōu)先最后兩分鐘打開數(shù)據(jù)庫對著 t_trade_order 和 t_deal_record 展示買賣數(shù)據(jù)是怎么落庫的。這比反復(fù)切窗口講功能更能體現(xiàn)數(shù)據(jù)結(jié)構(gòu)課程的訓(xùn)練痕跡。加分說辭記得準(zhǔn)備兩個(gè)。一是撮合隊(duì)列為什么用堆而不用數(shù)組線性掃描答「ArrayDeque 和 List 得 O(n) 掃描PriorityQueue 插入和取最值 O(log n)」二是 ConcurrentHashMap 和 Hashtable 的差別答「鎖粒度不同前者鎖桶后者鎖整表」。這類問題就是常見的 java 基礎(chǔ)面試題變體提前背熟被追問不慌。我自己的習(xí)慣是正式演示前至少完整過三遍流程中間故意制造一次「余額不足」的失敗彈窗證明異常路徑也處理了。這一手比單純展示順利路徑更讓評委相信系統(tǒng)是你自己寫的。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本免费一区二区不卡| 97干天天| 国产一级高清免费观看| 欧美色图 人妻| 亚州操逼网| 91 天天综合| 中文字幕一区av| 好色综合| 后入日本1234| 国产后入清纯| 日本一线产区和二线产区伦理片| 五月花婷婷| 中文字幕97| 日韩午夜国产| 五月天丁香欧洲日韩| 亚洲精品一二牛牛| 精品乱码久久久久| 熟妇熟女视频一区二区三区| 6080YYY午夜理论片在线观看| 国产久9| 日本网色| 无码丰满熟妇一区二区浪潮AV| 男人的天堂在线| 欧美日韩高潮喷水91| 日韩高清黄片| 377p欧洲日本亚洲大胆| 91在线免费精品视频| 国产乱不卡| 操人妻丝袜高跟| 日韩乱插| AV电影在线播放| 无码一区免费在线不卡| 精品国产av一区二区三区四区入口| 我爱操| 91欧美美女日韩国产婷婷| 国产一级137片内射麻豆| 偷拍导航视频网站| 老鸭窝日丰县女人| 中文字幕欧美日本乱码一线二线 | 色婷婷丁香五月| 精品中文字幕一区二区| 无码直播久久久| 国产在线视频午夜精华在| 亚洲久草AV色图| 开心六月色| 操逼逼无码| 国模艳艳啪啪一区| 四虎免费看黄| 97精品视频免费| 久草久热| 色噜噜狠狠色综无码久久合欧美| 婷婷在线播放| 色色色色网站| 国产精品电影| 国产精品对白内射| 蜜桃色院一区久久 | 91少妇人妻| 大逼色网站| 欧美性第1页| 91天堂视频| 色呦呦、国产精品| 久久做97| 久久精品成人一区二区三区蜜臀| 久久熟女久| 九九九九欧美| 亚洲AV在线资源| 91蜜桃传媒精品久久久一区二区| 男人精品天堂一区| 久久久久久十| 不卡av在线中文字幕| 免费观看性欧美一级| 夜草网站| 国产高清MV操逼视频| 亚洲av成人精品一区| 欧美一区二区三区不卡高清视频| 玖玖爱免费观看视频| 一区二区三区激情在线观看| 嗯嗯啊好大| 亚洲一区制服诱惑| 大香蕉草草| 999综合网| 国内毛片欧美香蕉精品| 可以免费观看的日韩av毛片| 色婷婷亚洲婷婷| 亚洲欧美大| 99热99re超碰精品| 超碰久草| 精品毛片av一区二区 | 综合激情婷婷| 都市激情人妻一区二区青青操视频| 精品少妇人妻一区二区三区| 久久9久| 国产精品久久久啊| 激情色播| 中国和日本人色哪个不下载能放| 国产在线综合福利网站| 被男人添B超爽视频| 99热只有这里有精品| 黄色AV影视| 亚洲一本色道中文无码aV天美| 首页亚洲国产高跟丝袜诱惑视频| 亚洲精品欧洲精品| 人妻铁牛TV| 欧美日韩久久精品爱爱| 日韩不卡毛片Av免费高清| 天天综合亚在线| 青久久| 欧亚无码视频| 人人爱夜夜爱| a级免费在线观看| 尤物国产一区在线观看| 黄色高清久久无码依人| 偷拍盗拍亚洲色图图片| 久久亚洲精品成人av| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 啊啊啊好湿久久| 91精品国产91久久久久久久久久久久| 翔田千里AⅤHD无码| www.激情| 天天操天天日天天干| 久久男人的天堂| 高清国产性猛交xxxx乱大交| 91 综合 色| 日韩色| 91强奸乱轮| 色99色| 久久久性少妇| 国产AV无码AV| 久久久久久9999| 青青操网| 青青11操操操操操操操操| 麻豆熟妇乱妇熟色A片在线看| 无码区蜜乳| 97操操| 亚洲视频一二区| 精品无码秘 人妻一区二区| 中文字幕精品一区二区精品| 久久精品操| 极品综合| 亚洲91射| 国产精品国产拍高清AV| 久草尤物| 老司机免费视频在线91| 日韩免费高清大片在线| www.高清无码诱惑一区.com | 久热超碰| 一区二区高清视频| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 操老熟女AV| 国产精品欧美日韩久久| 久草男人天堂| 无码在线亚洲| 亚洲男人的天堂va亚洲男人社| 婷婷久久综合| 国内伊人久久久久久网站视频| 日本特黄f c2| 日韩熟女操逼| 色香网| 97天天爽| 成人性爱av.com| 久久超碰av在线| 婷婷伊人网| 欧美性性性| 在现视频女上位好爽| 一起草三级AV电影在线观看| 亚洲天堂情色| 亚洲偷拍自拍在线视频| 99久久无码| 亚洲第一色页夜| 成人性爱美曰韩| 少妇大屁屁| 77777亚洲蜜臀精品久久综合蜜臀| 一起草三级AV电影在线观看| 久久人妻一区二区三区高清| 蜜桃久久一区二区三区| 欧美一级久久久久久久大片动画| 免看60秒涩涩视频| 防屏蔽在线视频| 97色色色| 精品少妇一区二区| 欧美最婬乱婬爆婬性视频 | 亚洲成人激情小说视频| 91无摭挡| 久久草视频污视频| 久久九九综合| 美国黄片aaa| 97国产精品一区二区传媒公司| www.五月天| 亚洲欧洲综合av在线| 亚洲无码一区成人免费午夜| 国产视频大全| 久无码| 福利操逼| 翔田千里Av在线| 日本欧美不卡| 黄久在线| 久久久专区| 99精品网| 射 色综合| 99热国产| 国产精品日韩在线一区| 亚洲毛片基地专区| 老鸭窝成人| 亚州综合AⅤ| 大香蕉伊人亚洲| 天天综合精品| 先锋激情∨在线视频播放| 色臀AV| 超碰在线1234区| 97色妞| 密臀在线一区尤物| 久久久久女教师免费一区| 午夜久久一区二区无码中出| 婷婷久草一区二区三区| 99天堂网| 亚洲精品天堂久久A∨51成人漫| 欧洲精品一级二级精品综合视频综合 | 大香蕉男人的天堂| 午夜精品久久久久| 操一区| 一区二区不卡| 久草精品视频| 97久久久网站| 日本免费一区二区不卡| 超碰97色色| 欧美熟妇精品黑人巨大一二三区| 久操高青| 亚拍在线| 清纯唯美激情| 日日夜夜精品视频| 亚洲久草AV色图| 色狠人在线99| 999久久久九九九九| 亚洲风情综合网| 97中文字幕色| 欧美色图 人妻| 黑人精品久久97| 欧洲免费一区二| 久久大香蕉手机高清视频| 98一区二区精品| 顶级丝袜熟女一区二区三区 | 亚洲综合影片| 人人搡人人肉久久精品| 亚洲91射| 久久老女人| 婷婷色综合欧美日韩| 国产精品成久久久久午夜午夜| 91被操| 久操凹凸视频| 丁香五月天激情网站| 成片免费观看视频大全| 人妻熟女一区二区三区在线| 中日韩久久久免费看| 欧美96在线|欧| 超碰95| 国产三级片在线观看| 国产成人在线观看网址| 亚洲精品官网在线观看| 日韩乱码av| 亚洲一区二区在线观看91| 久久久999国产| 国产激情视频一区区三区| 欧美一区二区福利在线| 夜夜嗨一区二区| 伊人网在线观看| 超碰97人人乐| 国产乱伦亚洲色图高清无码| 在线a v| 久久久com| 自拍丝袜美腿人妻| 偷拍亚洲情色| 色y情视频免费看| 国产剧情AV不卡在线观看| 久久精品性| 亚州色站 日韩电影| 天天拍天| 最新无码国产| 日韩一级二级| 亚洲天堂一区二区| AAAA级日本片免费视频| 精品超碰国产| 伊人午夜福利视频| 国产美女销魂在线观看不卡| 久久天天摸| 亚洲自拍青操视频| www.久久最新地址| 精品无码人妻一区二区免费蜜桃| 嗯~啊~轻一点 视频| 一二三四视频中文字幕在线看| 五月婷婷五月天| 日韩美女,国产传媒,视频一区| 欧美第一页| 久久精品28| 性色av大全| 97超碰jingpin| 亚州欧美在线| 中文激情网| 亚洲国产中文字幕| 亚乱色| 欧美白嫩在线放| 中文字幕精品探花视频| juliaann欧美丝袜办公室| 91足交| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 三级激情网站| 色大香蕉97N| 久久久99免费| 性爱AV天堂| 欧美色www亚洲国产阿娇要播| 99热这里都是精品| 亚洲欧美第一页| 首页亚洲国产高跟丝袜诱惑视频 | 久久久久亚洲三级电影| 日本不卡高清免v欧美日韩在线观看| 欧美色老汉| 激情久久av一区av二区av| 亚州欧美综合| 五月天丁香网| 精品无码久久久久久久久果冻糖心| 亚洲成人网站在线观看| 国产精品久久蜜乳av| 色色五月婷婷| 久久青青草在线视频| 可以免费观看的av| 91亚洲电影| 国产夜夜操| 视频一区二区三区精品| 亚州九九九精品视频| 首页中文字幕中文字幕免费| 77国产精品| 99久久精品无码一区二区毛片免费| 九九热精品在线| 欧美性爱一区二区三区| 丁香五月天激情综合| 欧美色性情| 欧美人妻精品| 中文字幕一二区二三区人妻专区| 久久久久久久久国产| 五月婷婷性爱| 欧美真人抽搐一进一出gif| 草草电影院| 97超碰色屌| 黄色一区二区秘书性感| 熟女精品日韩一区二区三区 | 91高清欧美| 女人妻一区| 看大黄色大片原件| 丰满人妻一区二区三区四区| 性色avv| 亚洲欧美日韩免费观看| 青青久久久| 青青操97| 午夜福利视频在线一区| 操人妻视频| 污污污8888| 秋霞网—男女啪啪亚洲免费体验区 | 激情终合网| 任你艹| 国产一区二区免费福利片| 久久一区二区三区四区五区| 亚洲色图欧洲| 青青操综合网| av日韩中文字幕| 亚欧美色图| 国产精品电| 亚洲日韩熟女人妻高清在线| ...日韩成人一区二区三区字幕| 女一区二区| 亚洲乱码尤物193YW| 亚洲精品久久久久毛片A片拉屎| 蜜臀久久久国产| 色情综合网| 亚洲一卡2卡3卡4卡乱码网站| 激情婷婷丁香网| 女人一区| 蜜臀亚洲中文| 狠狠久久亚洲欧美专区| 欧美系列在线一区二区| 国产精品麻豆视频网站| 日本高清视频xxxx| 麻豆三极片| 国语精品对白| 国产精品乱码久久久久久久久| 欧美国产有色电影| 久久久不能久久久久| 立川理惠无码一区二区| aaaa少妇高潮大片| 天天看天天在线精品| 综合久久久久久久久91| 国产精品人妻免费精品| 密乳视频在线| 伊人一级免费黄片| 日本成a人v网站在线观看| 欧美九九九| 长久操视频| 蜜臀99999| 久久嫩草国产成人一区| 色五月天AV| 亚洲AV乱码专区国产噜噜亚洲| 一区二区三区精品黑丝白丝酒店对鸡 | 亚洲第一视频 欧美风情 日韩| 欧美日韩国产人人| 青青伊人加勒比海| 久污| 青青草中出视频 | 亚洲大胆人体av| 欧美 熟女 日韩| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 天天色播| 国产一区二区三区中文字幕| 亚洲欧美九九| 精品人妻一区二区三区视频| 精品9999| 99久久精品国产系列| 伊人网免费视频| 国产亚洲中文不卡二区| 国产Aα| 熟女突然公开看18禁影片| 无码人妻精品一区二区中文| 国产精品岛国片在线观看| 日韩欧美亚洲一区二区三区影院| 亚洲超碰在线| 天天干一区二区| 日韩紧密久久| 日本最新1区2区3区| 久久有码视频| 岛国福利在线精品播放| 亚洲福利中文字幕在线| 亚洲天堂区| 美女淫穴| 欧美日韩一二三| 26UUU欧美日本| 人人贴人人摸| 一区二区激情国产熟女| 噜噜噜久久亚洲精品色情| 久草色悠悠在线视频| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 艹精品| 婷婷激情综合网| 这里是精品| 亚洲国产精品久久久久婷婷老年| 久久久久久久| 91社操逼| 中文字幕55555| 97久久久久久久久久| 日本精品五区| 日韩性爱播放| 91五月天| 国产家庭乱伦性爱视频| 久久e6只有精品| 啊啊啊轻点在线观看| 成人免费看吃奶视频网站| 亚洲av夫妻操穴网| 蜜臀AV午夜精品久| 婷婷久久综合| 超碰欧美COM| 欧洲中文字幕| 色网色网色网色网色网色| 国产原创剧情在线丝袜| 亚洲鸥美色图| www.久久最新地址| 神马影院午夜福利久久久| 日韩一级二级三级免费看完整版| 色啪网| 天天日天天干天天摸天天操| 国产精品视频一区二区三区八戒| 伊人伊人LD| 久久成人国产精品| 96AV久久久| TS人妖另类精品视频系列| 婷婷久草一区二区三区| 97超碰色色| 久久久无码国精品无码三区三区| 九t超碰| 中日高清无码操逼视频| 91女色| 久久人妻精品| 青草精品视频-日本久久久久网站| 免费看一级a性色生活片久久无| 伊人亚洲综合| 国产树林里野战在线看| 国产精品一二三| 亚洲精品成人| 亚洲天堂男人天堂网| 久久精精区一区二区一蜜桃一区二区| 欧美综合第一页| 无码99| 成 人 A V免费视频在线观看| 91在线免费观看处女| 国产精品不卡一区二区三区av| 啊啊啊好湿国产一二| 91人妻人人澡人人爽人人精品| 91黑丝少妇| 日韩激情毛片一级久久久| 亚洲色图国产另类| 色欲日韩欧美在线一区| 国产精品97视频| 麻豆国产尤物AV| 午夜性刺激视频免费观看| 一区 欧美 日韩 麻豆| 操逼天美3区| 97中文字幕一区| 亚洲丝袜二区| 日本免费一级AAA大片器| 国产女人9999| 久悠悠av| 日韩国产在线观看av| 中文字幕免费在线观看| 精品无码一区二区| 国产女人操逼视频| 91视频综合| 91AV天美在线视频| 十八禁网站在线| 亚洲综合影片| 白嫩国模丰满一二三区| 久久大| 欧美天天综合站| 亚洲国产精品久久久久久久久久| 五月婷婷六月丁香网址| 欧美色干| 97网址97| 欧美综合色站| 亚洲不卡AV在线| 黄在线| 五十路熟女人妻一区二区在线观看 | 久色99999| 熟女人妻av在线资源,黄色的资源| 欧美的性爱网站免费| 一本色道熟妇| 另类专区加勒比| 男人的天堂激情| 久久久夜夜嗨免费视频| 人人操肉肉| 欧美成人一级麻豆| 亚洲在饯| 日韩成人人妻网站| 伦理弟一页| 性色高清在线| 蜜桃精品一区二区三区ww| 色官网在线| 一区二区三区探花在线观看| 91av熟女人妻| 国产无码成人无码| 日韩91网站| 密臀在线视频| 91男人综合| 麻豆天美在线喷水AV| 99国产在线绯色一区| 久久久草成人网站久久久草成人久久久草久久久| av在线一区二区三区| 免费观看网黄| 亚洲不卡三级手机播放| 粉嫩AV输入| 人妻精品综合中文字幕在线 | 人人干黄色| 国产成人在线观看网址| 一本色道久久综合精品婷婷| 精品人妻一区二区三区视频| 日韩情色AV| 九九热精品免费视频| 911av网站免费观看| 欧美特大AA级黄片| 精品高潮| 91被操| 亚洲福利影院一区久久| 校园春色五月天| 欧美96在线|欧| 91熟女丨91老女人| 躁躁躁日日躁2020| chaopen97久久| 久草线上视频免费看| 成人十八禁日韩欧美一二三| 亚洲凸凹超碰成人| 久久夜夜夜| 黄色二级片网站| 大香蕉99热| 欧美se亚洲| 欧美日韩人妻婷婷一区| 校园春色中文字幕AV| 东北女人被操| 丝袜天堂网| 中文日韩欧美熟| avav青青草久久夜| 亚洲人妻精品一区二区| 天天综合-91入口| 秋霞操逼片| 天天色天天干天天射| 天天操天天7| 日本精品一区二区三| 亚洲AV永久无码精品成人调教| 東南亚性呦成人伦理资源在线视频| 超碰欧美COM| 欧美亚洲中文| 人人操人人干网页| 一区二区三区激情在线观看| 蜜桃色色网站视频三区| 久久偷拍人| 亚洲精品乱码久久久久久蜜桃麻豆| 国产蜜臀精品一区二区尤物| 超碰人妻97| 日本黄色精品专区网站| 久久九九国产精品| 天无日色综合| 好屌色综合| 一二区在线观看视频| 91亚洲电影| 黄色激情电影在线观看| 五月丁香久久| 神马久久久久久久久久| 老熟妇一区二区三区| 国内外内射高清视频| 成人免费毛片| 丁香六月婷婷| 97一区二区三区视频| 欧美激情亚洲| 精品人妻一区| 欧洲综合视频| 国产三级中文字幕粉嫩| 黄色免费一级在线毛片| 99热亚洲| 超碰日韩美妻| 插入逼91| 久久精精区一区二区一蜜桃一区二区| 大肉棒导航| 91免费看一区二区三区| 日本韩欧美在线播放a| 女人妻一区| 91熟女丨91老女人| 影音先锋乱| 国产AV人人 夜夜人人澡| 一二区在线观看视频| 亚洲色图欧美色图另类图片| 91一起操| 941超碰| 国产精品黄色三级av| 在线 制服丝袜中出 人妻| 熟女熟妇一区二区三区视频| 一级人妻性爱视频| 日本三级久| 亚洲天天自拍| 久久久久国产精品喷潮免费观看臀| 性欧美天天| 97超碰美女| 3p国产色噜噜一区| 中文字幕精品三级久久久| 国内精品嫩模A∨私拍小视频| 99热这里只有精品9| 亚洲一区制服诱惑| 国产福利小视频高清在线观看| 欧美成人精品一区二区三区| 人妻欧美| 色噜噜人妻av 中文字幕| 欧美成97爱| 久久精品人体AV| 久久香蕉国产线看观看亚洲女人 | 色大香蕉97N| 国产精品黄色三级av| 精品国产一区二区三区久久久蜜臀 | 99热aaa| 国产精品人妻无码久久久老鸭窝 | 欧美制服网站美腿丝袜| 人妻久久一区二区三区| 大香网伊人久久综合| 噜噜噜噜天天狠狠| 爱我干综合| 国产精品噜噜噜日日日| 综合久久99| 久久久极品| 日韩人妻资源网| 青青色在线观看| 自拍丝袜美腿人妻| 日本精品中文字幕视频| 一直超碰| 亚洲AV无码国产精品久久久久 | 亚洲图片 91| 免费AV中文网在线观看| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美亚州综合图片| 色黄色美女大长腿午夜视频| 好爽要喷了| a在线观看| 懂色aV一区二区天美传媒| 久久久9视频| 中文字幕欧美日韩三级| AND人妻系列| 麻豆国产视频精品观看| 九九热午夜欧亚国产视频| 精品一区二区成人动漫| 精品国产乱码久久久久久蜜臀| 在线观看十八禁| 手机在线播放国产福利| 一区二区亚州激情久婷婷欧美| 日本日皮视频逼| 2017大香蕉| 色九九九九| 亚洲成人在线播放| 欧美人人曰人人操人人射射| 大干人妻| 久久久久密| 人人摸人人叼| 九九九免费视频| 大香网伊人久久综合网eew| 日本在线激情一区二区三区| 成人青青草原伊人| 欧美熟妇乱码在线一区| 深夜激情无码| 大香蕉一级黄色片久久| 国模91| 久99久视频精选| 日本一区二区做爱的视频| 91亚洲综合在线| Julia Annxxxxx| 毛片视频白嫩| 亚洲无码久久久久久久| 色婷婷狠狠| 色五天伊人| 欧美超碰97| 五月天AV资源| 成人欧美日超碰| 夜夜嗨一区二区| 深田咏美亚洲精品福利社| 熟女探花啪啪| 台湾佬大香蕉| 天天插天天操天天摸天天射天天看| 九九热在线视频| 五月天玖玖资源站| 青青青国产手线观看视频2| 熟女精品日韩一区二区三区| 日韩天天本| 欧洲乱码视频| 超碰人人乐97| 九九热免费视频| 在线观看精品国产免费| 蜜桃视频成a人v在线| 国语对白露脸XXXXXX| 啊啊啊不要嗯嗯在线观看| 啊啊啊啊啊啊好湿好爽视频| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 91高清日| 劲爆欧美人妖三区91| 天美传媒Av在线| 亚洲人在线| 激情文学 国产一二三aV| 99色在线| 亚洲图片偷拍视频区| 亚洲国产精品9999在线观看| 人人操人人爽人人操人人| 日韩在线国产字幕| 97精品网| 日韩肏逼视频| 日韩亚洲欧美中文字幕| 韩国三级色呦呦| 久久区| 天天日天天干天天操| 9118禁| 日本操逼无码| 91香蕉国产尤物视频| 十八禁啪啪视频| 少妇综合网| 一级毛片电影免费看| 91精品人| 国产精品白丝在线播放| 国产精品久久久久无码A√| 狠狠色伊人亚洲综合网站色| 亚洲一区二区三区不卡国产欧美| 男女做爰猛烈动高潮A片免费应用| 波多野结衣AV无码一区| 国产无码精品高清| 亚洲色图日韩精品| 视频分类 国内精品| 大香蕉在线SuP| 色偷偷超碰亚洲| 亚洲日韩资源| 人妻天堂网| 国产肏逼网站| 亚洲色图尤物视频| 国产亚洲国产超碰| 成人资源中文字幕在线观看天天| 亚欧性爱在线无码| 色欧美天天| 99热免费精品| 日韩欧美中文字亚洲慕| 国产又粗又长视频| 天天爽夜夜爽夜夜爽精| 超碰成人公开| 青娱乐亚洲自拍| 99精品免费| 久久综合18p| 欧美伦乱爱| 亚洲国产亚洲天堂| 色综合加勒比| 综合五月婷婷亚洲一区| 色五月婷婷麻豆在| 亚洲成人精品久久久| 少妇九九九九| 婷婷干黄色| 超碰99在线| 亚洲天堂第一页| 欧美色综合网| 久久伊人亚洲AV无码网站| 国产精品老师| 欧美天堂日韩三级国产传媒| 超碰97人妻自拍| 日韩欧美福利视频看看| 夜夜草网站| 久久水蜜臀亚洲AV无码精品| 97这里有精品| 日韩欧美操逼xxx| 色婷五月天| 最新精品久久蜜桃 | 95自拍视频在线观看| 99热9| 超碰夫妻97| 欧美翘臀视频网站一区二区三区| 亚洲国产奇米影视久久| 91在线免费观看处女| 超碰在线免费一区二区三区| 370p日韩欧美亚洲精品| 亚洲国产欧美日韩人妻日中文| 亚洲丰满很很操| 久久在线观看免费视频| 日日夜夜干| 久久9免费视频| 免费啪啪av| 超碰激情808| 精品久| 婷婷五月成人| 欧美日韩小说| 97国产高清视频在线观看| 蜜桃久久精品一区二区三区| 国产操逼网站亚洲一级黄色| 志村玲子视频一区二区| 天天日熟妇| 国产精品久久99日日| 国厂麻豆77q4| 亚洲**2021在线观看| 97香焦色区| 色噜噜狠狠色综无码久久合欧美| 99天堂网| 91欧美少妇| 强奸乱亚洲| 大香蕉性欧美| 国产1769在线| 校园春色美腿丝袜 | 在线播放欧洲免费av| 操逼操逼视频操逼| 久久综合久色欧美综合狠狠 | 操操操日本的逼| 好看的久久不射无码影视影院| 被窝影院午夜看片无码| 天天综合网91入口| 黄片免费日韩| 少妇69中文| 国产亚洲日韩在线三区黑人| 精品久一区免费| 免费自拍三级综合| 啊啊啊啊好大好硬啊啊啊啊啊| 欧美一级国产一级| 粉嫩AV输入| 国模无码一区二区三区在线| 色天天野狼综合社区| 久久av无码| 久草婷婷| 免费啪啪啪网站18岁| 外国免费性情大片| 欧美婷婷| 9丨久久九九九| 日本三级小说中文字幕| 黄色电影在线播放综合网站| 啊嗯嗯啊好大好爽| 乱伦系列一区二区| 欧美精品久久久久久久久88| 精品人妻一区二区三区不卡断| 狠狠色丁香| 夜夜爽夜夜爽| 性性久久| 色婷婷电影网| 欧美亚洲情色| 激情小说亚洲视频| 欧美色图天堂在线| 色哟哟综合| 色偷偷人人玩人人舔人人操人人摸人人爽| 中文自拍欧美影视| 96精品久久久久久久久久| 啊啊啊啊操死我了| 色综合久久88色综合久久天天| 精品大全99999| 色欧美天天| 操操操五月天婷婷丁香影院| 中国黄色特级精品一区二区三区片| 久久综合激情| 一级黄色性爱裸体视频| yazhouzaixian| 色蜜AV| 国产精品久久久久久久黄无码 | 欧美一区二区日韩三区| 天天综合~91| 97干天天| 亚洲五月丁香花狠狠干一区二区三区 | 日日妻色网| 亚洲日韩AV视色| 日本www操操操| www.av家庭乱伦| 国产AV线| 欧天美中出| 韩国女主播青草福利视频| 亚洲欧美激情在线视频| 日韩成人性日韩成人性爱视频在线免费观看 | 夜夜躁狠狠躁日日躁av| 亚洲熟女乱综合一区二区三区| 五月激情小说| 国产精品熟女丝袜一区二区| 四虎午夜影院| 人妻丝袜二区| 久久久国产护士丝袜美腿一| 国产熟妇一区二区| 中文字幕成人理论在线| 日韩一级欧美一级国产一级台湾| 天天天干977| 丰满少妇精品一区二区| 久偷拍| 欧美精品人妻视频| 一起草av| 中文字幕黄色片| 色网在线视频观看免费| 黑人精品XXX一区一二区| 久久中出| 日韩啪啪视频| 极品出轨视频网站| 国产成人精品一区| 久久久一区二区| 亚洲精品一卡二卡三卡福利视频网站| 人妻少妇一区二区| 99热综合| 男人天堂2019亚洲| 色久综合| 日韩黄色电影网站| 色综合网1| 日本久久天堂| 精品国产精品一区二区| 无码av永久免费专区网站| 密乳无码| 国产AV毛片| 久久一区二区高清免费| 久久受www免费人成| 97精品国产97久久久久久户外免费| 七久久久| 五月天黄色av| 久热伊人99re| 亚洲人在线| 亚洲精品骚逼| 欧美变态激情网| 亚洲色91C| 美女骚尻视频| 久久大香蕉97| 蜜臀久久99精品久久久久久酒店 | 51一区二区三区| 免费A V在线播放| 蜜臀无码视频在线观看| 操屄日韩| 国产av强奸美女| 日韩丝袜二区| 欧美色视频在线| 免费看A片毛毛片在线播| 黑人无码一区二区| 久碰视频| 偷窥自拍亚洲天堂网爆| 99这里有精品视频| 夜夜操av亚洲一区二区| 成人久久精品| 久久久免费视频18| 色爱天堂| 色哟哟AⅤ| 欧美性爱三区二区| 丁香六月啪啪| 91丝袜在线观看视频在线观看| av72网| 精品久久97观看在线视频| 精品视频一区二区| 99re热有精品视频国产| 亚洲黄网在哪免费看| 少妇超碰在线| 9999亚洲电影| 亚洲欧美天| 午夜国产综合视频在线观看| 亚洲成a人在线观看久| 五月天综合网| 九九久久九九久久| 亚洲国产精品久久久男人的天堂| 日韩无码服务区| 白丝被操91| 色色色色电影网| 偷窥自拍亚洲色图| 大屁股熟女一区二区三区| 淫荡网址| 在线观看精品国产免费| 国产成人亚洲精品自产在线| 中文字幕超碰CAO| 欧美 亚洲 在线| 操高情无码| 夜夜夜久久| 超碰九九| 亚欧成人综合影院| 黄色污污污污污污网站| 欧洲站一级二级三级h| 国产熟女精品一区二区| 牛牛aV| 久久偷拍人| 久久久久久精| 久久AV无码网址| 熟妇精品juliaannAV| 人人妻人人爱人人玩| 欧美日韩性爱操大逼| 伊人国产视频| 色香综合| 激情专区综合| 欧美在线中M| 欧美日韩电影成人在线| 国语对白在线播放视频| 1204av韩国| 青娱乐福利99| 国产精品天美传媒| 久久这里只| 免费一级特黄特色大片在线观看看| 国产精品久久发布| 久久久青青草| 高清在线偷拍自拍视频| 精品妇操一区二区三区| 色色色日本| 伊人大香蕉在线| 中文字幕三四区| 97人肏| 狠狠超| 美女上床网站| 看一级特黄a大一片| 欧美日韩青操| 亚洲国产奇米影视久久| www.AV有限公司一区| 国产一国产一级毛片古装| 久久久久免费少妇| 超碰久超碰久| 国产av尤物| 激情色图| 熟妇熟女亚洲天堂网| 人人操人人肉久久精品| av天堂影视中文在字幕在线中文| 国内毛片四区| 人妻天堂综合网| 色97欧美| caorenqi shipin| 1区2区3区视频| 精品.99999| 青娱乐淫乱1314| 97 亚洲 日韩 欧美 在线| 91在线免费精品视频| 午夜成人福利影视| 91精品亚洲内射孕妇| 夜夜嗷嗷一区二区| 免费自拍三级综合| 91色综合色| 亚洲五月婷婷| 日本不卡在线二区三区| 国产视频一区二区三区久久亚洲天堂 | 香蕉视频欧美一卡二卡| 久久久久国产亚洲一区欧美色图日韩 | 天美91| 中美日韩毛片| 伊人久久综合影院| 欧美日韩国产人人| 女人爽到高潮潮喷18禁网站| 男人综合网| 欧美狠狠弄| 久久久久久久国产a∨| 久啪视频| 亚洲。日韩。欧美| 欧美性生活免费网| 日韩欧美三级| 人人色人人射人人妻| 日韩中文字墓| 久久精品夜色国产亚洲AV| 柠檬AV导航| 免费视频在线一区二区不卡| 很很很很操| 色播丁香| 91色图| 欧美日韩中国x| 天美国产三级传媒| ..日韩av毛片精品久久久| 91青青在线| 超碰国产情侣自拍网| 强奸乱伦资源| 韩国免费播放一级毛片| 风月影院男女十八禁| 97色伦欧美| 亚洲国产精品无码AV在线| 99少妇| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲综合骚逼| 日韩精品一二三四| 色婷婷激一区二区三区 | www..com操老师| 欧美日韩资源| 亚洲中亚日激情视频| 亚洲精品色| 国语对白在线播放视频| 国产精品白丝在线播放 | 丁香色五月 97干| 91人妻最真实刺激绿帽| 日本高清一本二本免费不卡| 一道本东京热加勒比一区二区三区| 色噜噜人妻丝袜a∨先锋影 | 欧美日本天堂| 人妻嗯啊啊在线播放| 欧美不卡二区| 白丝被操91| 亚洲欧美黄| 97在线欧| 欧美在线55555| 色欧美天天| 亚欧成人中文字幕一区| 中文字幕一区av| 无码人妻精品一区二区中文| 屁股久久久久久| 97伦综合| 少妇高潮喷水无套久久久久久| 国产高清不卡视频| 亚洲最大的综合性av| 波多野结衣AV无码一区| 啊啊嗯嗯好爽| 人妻精品一区二区| 中文字幕一区二区三区四五区| 日本超碰97日韩精品人妻| 99热97| 欧美日不卡| 亚洲国男人的天堂| 99这里有精品| 婷婷九月色| 99热这里只有精品9| 大色综合网| 五月天丁香婷婷综合网站| 中日亚韩免费视频| av在线不卡一区二区三区| 国产精品视频自拍在线| 精品无码一区二区三区色欲| 天天干夜夜鈤| 91综合网在线| 蜜臀在线视频| 东京热一区二区中文字幕| 久久九色| 精品九九| 国产在线播放成人免费| 色综合加勒比| 欧美A片中文字幕| A级毛片在线看免费| 久久久亚洲Av| 粉嫩粉嫩一区性色AV片| 人人操人人操人人操人人操人人操人人人11.CM | 国产黄色影片在线观看| 欧美丰满少妇xx高潮| 精品国产人成在线|