幫助中心 | 我的帳號 | 關於我們

Java編程問題

  • 作者:(羅)安赫爾·倫納德|責編:張賽//耍利娜|譯者:金嘉怡//夏鈺輝//黃堅
  • 出版社:化學工業
  • ISBN:9787122449597
  • 出版日期:2024/07/01
  • 裝幀:平裝
  • 頁數:566
人民幣:RMB 149 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書通過探討Java開發工作中常會遇到的問題及相關解決方案,介紹了涉及字元串、數字、數組、集合、數據結構、日期和時間、對象、不可變性、Switch表達式、類型推斷、Java I/O、Java反射、函數式編程、併發、HTTP Client API和Websocket等方面的核心知識與實用技巧。
    這些簡單或複雜的問題,將幫助你提升解決現實問題的編程能力,使你了解相關問題基於Java 8?12的最佳實踐,同時還可以檢測你對相關技術的掌握程度。
    本書可供初級和中級Java開發人員參考,同樣也適合正為相關技術面試做準備的求職者閱讀。

作者介紹
(羅)安赫爾·倫納德|責編:張賽//耍利娜|譯者:金嘉怡//夏鈺輝//黃堅

目錄
第1章  字元串、數字和數學
  問題
  解決方案
    1.統計重複字元的數量
    2.尋找第一個非重複字元
    3.反轉字母和單詞
    4.檢查字元串是否僅包含數字
    5.統計母音和輔音的數量
    6.統計某個特定字元的出現次數
    7.將String轉換為int、long、float或double類型
    8.去除字元串中的空格
    9.用分隔符連接多個字元串
    10.生成全部排列組合
    11.檢查字元串是否為迴文
    12.刪除重複的字元
    13.刪除給定的字元
    14.找到出現次數最多的字元
    15.按長度對字元串數組排序
    16.檢查字元串是否包含子串
    17.計算字元串中子串的出現次數
    18.判斷兩個字元串是否互為變位詞
    19.聲明多行字元串(文本塊)
    20.重複拼接同一個字元串n次
    21.刪除首尾空格
    22.尋找最長公共前綴
    23.應用縮進
    24.字元串轉換
    25.求最小值與最大值
    26.求兩個大數之和(int/long)並處理運算溢出的情況
    27.解析特定進位下的無符號數
    28.通過無符號轉換轉變數字
    29.比較兩個無符號數
    30.無符號數的除法和取模
    31.判斷float/double是否為有限浮點數
    32.對兩個布爾表達式執行邏輯AND/OR/XOR運算
    33.將BigInteger轉換為基本類型
    34.將long類型轉換為int類型
    35.計算取整除和模數
    36.相鄰浮點數
    37.求兩個大數的乘積(int/long)並處理運算溢出的情況
    38.融合乘加(FMA)
    39.緊湊數字格式化
  小結
第2章  對象、不可變性和Switch表達式
  問題
  解決方案
    40.用函數式和命令式風格的碼檢查空引用
    41.檢查空引用並拋出自定義的NullPointerException異常
    42.檢查空引用並拋出指定的異常
    43.檢查空引用並返回非空默認引用

    44.檢查索引是否在[0,length)範圍內
    45.檢查子區間是否在[0,length)範圍內
    46.equals()和hashCode()
    47.簡述不可變對象
    48.不可變字元串
    49.編寫一個不可變類
    50.在不可變類中傳遞/返回可變對象
    51.使用建造者模式編寫不可變類
    52.避免在不可變對象中出現錯誤數據
    53.克隆對象
    54.重寫toString()
    55.新版Switch表達式
    56.多個case標籤
    57.語句塊
  小結
第3章  處理日期和時間
  問題
  解決方案
    58.字元串與日期時間的轉換
    59.格式化日期和時間
    60.獲取當前日期/時間(不含時間/日期)
    61.基於LocalDate和LocalTime構建LocalDateTime
    62.通過Instant類獲取機器時間
    63.使用基於日期的值(Period)定義時間段;使用基於時間的值(Duration)表示一小段時間
    64.提取日期和時間單位
    65.加減日期時間
    66.獲取所有時區的UTC和GMT
    67.獲取所有可用時區的本地日期時間
    68.顯示有關航班的日期時間信息
    69.將Unix時間戳轉換為日期時間
    70.查找某月的第一天/最後一天
    71.定義/提取時區偏移
    72.在Date和Temporal之間轉換
    73.遍歷一段日期範圍
    74.計算年齡
    75.獲得一天的起始和結束時間
    76.兩個日期之間的差異
    77.實現一個國際象棋計時器
  小結
第4章  類型推斷
  問題
  解決方案
    78.簡單的var示例
    79.使用var與基本類型
    80.使用var和隱式類型轉換來提高碼的可維護性
    81.顯式向下轉型(downcast)應避免使用var
    82.在變數名沒有足夠的類型信息保障可讀性時應避免使用var
    83.結合LVTI和面向介面編程技術
    84.結合LVTI和鑽石操作符
    85.將數組賦值給var

    86.在多變數聲明中使用LVTI
    87.LVTI和變數作用域
    88.LVTI和三元操作符
    89.LVTI和for循環
    90.LVTI和流
    91.使用LVTI拆分嵌套/大型表達式鏈
    92.LVTI和方法返回值及參數類型
    93.LVTI和匿名類
    94.LVTI可以是final變數或effectivelyfinal變數
    95.LVTI和Lambda表達式
    96.LVTI和空初始化器、實例變數以及catch塊變數
    97.LVTI和泛型類型
    98.LVTI、通配符、協變和逆變
  小結
第5章  數組、集合和數據結構
  問題
  解決方案
    99.對數組進行排序
    100.查找數組元素
    101.檢查兩個數組是否相等或不匹配
    102.按字典序比較兩個數組
    103.用數組創建流
    104.計算數組的最小值、最大值和平均值
    105.反轉數組
    106.填充和設置數組
    107.下一個更大的元素(NGE)
    108.改變數組大小
    109.創建不可修改/不可變的集合
    110.映射默認值
    111.判斷Map中鍵是否存在或缺失
    112.從Map中移除元素
    113.替換Map條目
    114.比較兩個Map
    115.對Map進行排序
    116.複製HashMap
    117.合併兩個Map
    118.移除集合中所有符合謂詞條件的元素
    119.將集合轉換為數組
    120.使用列表篩選集合
    121.替換列表元素
    122.線程安全的集合、棧和隊列
    123.廣度優先搜索(BFS)
    124.前綴樹(Trie)
    125.元組(Tuple)
    126.並查集
    127.芬威克樹或二進位索引樹
    128.布隆過濾器
  小結
第6章  Java I/O路徑、文件、緩存、掃描和格式化
  問題

  解決方案
    129.創建文件路徑
    130.變換文件路徑
    131.拼接文件路徑
    132.通過兩個路徑創建相對路徑
    133.比較文件路徑
    134.輪詢路徑
    135.監聽路徑
    136.流式獲取文件文本內容
    137.在文件樹中搜索文件或文件夾
    138.高效讀寫文本文件
    139.高效讀寫二進位文件
    140.大文件搜索
    141.將一個JSON/CSV文件作為一個對象讀取
    142.處理臨時文件和文件夾
    143.過濾文件
    144.判斷兩個文件是否不匹配
    145.循環位元組緩衝區
    146.標記解析文件
    147.將格式化輸出直接寫入文件
    148.使用Scanner
  小結
第7章  Java反射類、介面、構造函數、方法和欄位
  問題
  解決方案
    149.檢查包
    150.檢查類和超類
    151.通過反射構造函數實例化
    152.獲取參數上的註解
    153.獲取合成構造函數
    154.檢查可變參數
    155.檢查默認方法
    156.通過反射實現基於嵌套的訪問控制
    157.面向getter和setter使用反射
    158.反射與註解
    159.調用實例方法
    160.獲取靜態方法
    161.獲取方法、欄位和異常的泛型
    162.獲取公共欄位和私有欄位
    163.處理數組
    164.檢查模塊
    165.動態理
  小結
第8章  函數式編程:基礎與設計模式
  問題
  解決方案
    166.編寫函數式介面
    167.Lambda簡介
    168.實現環繞執行模式
    169.實現工廠模式

    170.實現策略模式
    171.實現模板方法模式
    172.實現觀察者模式
    173.實現貸出模式
    174.實現裝飾器模式
    175.實現級聯建造者模式
    176.實現命令模式
  小結
第9章  函數式編程:進階
  問題
  解決方案
    177.測試高階函數
    178.測試使用Lambda表達式的方法
    179.調試Lambda表達式
    180.過濾流中的非0元素
    181.無限流、takeWhile()和dropWhile()
    182.映射流中的元素
    183.找出流中的元素
    184.匹配流中元素
    185.流中的sum、max和min操作
    186.收集流的返回結果
    187.連接流的返回結果
    188.聚合收集器
    189.分組(grouping)
    190.分區(partitioning)
    191.filtering、flattening和mapping收集器
    192.teeing
    193.編寫自定義收集器
    194.方法引用
    195.並行處理流
    196.null-safe流
    197.組合方法、謂詞和比較器
    198.默認方法
  小結
第10章  併發:線程池、Callable介面以及同步器
  問題
  解決方案
    199.線程生命周期狀態
    200.對象級鎖與類級鎖的對比
    201.Java中的線程池
    202.單線程的線程池
    203.擁有固定線程數量的線程池
    204.帶緩存和調度的線程池
    205.工作竊取(work-stealing)線程池
    206.Callable和Future
    207.調用多個Callable任務
    208.鎖存器(latch)
    209.屏障(barrier)
    210.交換器(exchanger)
    211.信號量(semaphore)

    212.移相器(phaser)
  小結
第11章  併發:深入探討
  問題
  解決方案
    213.可中斷方法
    214.fork/join框架
    215.fork/join框架和compareAndSetForkJoinTaskTag()
    216.CompletableFuture
    217.組合多個CompletableFuture實例
    218.優化忙等待
    219.任務的取消
    220.線程局部存儲(ThreadLocal)
    221.原子變數
    222.可重入鎖(ReentrantLock)
    223.可重入讀寫鎖(ReentrantReadWriteLock)
    224.郵戳鎖(StampedLock)
    225.死鎖(哲學家就餐問題)
  小結
第12章  Optional
  問題
  解決方案
    226.初始化Optional
    227.Optional.get()和值丟失
    228.返回一個預先構造的默認值
    229.返回一個不存在的默認值
    230.拋出NoSuchElementException異常
    231.Optional和null引用
    232.消費一個存在內容的Optional類
    233.根據情況返回一個給定的Optional類(或另一個Optional類)
    234.通過orElseFoo()鏈接多個Lambda表達式
    235.不要只是為了獲取一個值而使用Optional
    236.不要將Optional用於欄位
    237.不要將Optional用於構造函數的參數
    238.不要將Optional用於setter類方法的參數
    239.不要將Optional用於方法的參數
    240.不要將Optional用於返回空的或者null的集合或數組
    241.避免在集合中使用Optional
    242.將of()和ofNullable()搞混淆
    243.Optional與OptionalInt
    244.確定Optional的相等性
    245.通過map()和flatMap()轉換值
    246.通過Optional.filter()過濾值
    247.鏈接Optional和StreamAPI
    248.Optional和識別敏感類操作
    249.在Optional的內容為空時返回布爾值
  小結
第13章  HTTPClient和WebSocketAPI
  問題
  解決方案

    250.HTTP/
    251.觸發一次非同步GET請求
    252.設置一個理
    253.設置/獲取請求頭
    254.指定HTTP方式
    255.設置請求體
    256.設置連接身份認證
    257.設置請求超時
    258.設置重定向策略
    259.發送同步和非同步請求
    260.處理cookie
    261.獲取響應信息
    262.處理響應的請求體類型
    263.獲取、更新和保存JSON
    264.壓縮
    265.處理表單數據
    266.下載資源
    267.使用multipart上傳
    268.HTTP/2的伺服器端推送
    269.WebSocket
  小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032