登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』Java面试一战到底(基础卷)

書城自編碼: 3562077
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作 者: 周冠亚
國際書號(ISBN): 9787302564362
出版社: 清华大学出版社
出版日期: 2020-11-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 1074

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
美丽与哀愁:第一次世界大战个人史
《 美丽与哀愁:第一次世界大战个人史 》

售價:NT$ 653.0
国家豁免法的域外借鉴与实践建议
《 国家豁免法的域外借鉴与实践建议 》

售價:NT$ 857.0
大单元教学设计20讲
《 大单元教学设计20讲 》

售價:NT$ 347.0
儿童自我关怀练习册:做自己最好的朋友
《 儿童自我关怀练习册:做自己最好的朋友 》

售價:NT$ 316.0
高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量)
《 高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量) 》

售價:NT$ 286.0
元好问与他的时代(中华学术译丛)
《 元好问与他的时代(中华学术译丛) 》

售價:NT$ 398.0
汽车传感器结构·原理·检测·维修
《 汽车传感器结构·原理·检测·维修 》

售價:NT$ 500.0
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
《 怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!) 》

售價:NT$ 296.0

編輯推薦:
本书涵盖软件开发必备的、面试必考的数据结构和算法,JDK(Java Development Kit)中重要的、面试常见的代码分析、Java语言并发编程核心代码分析和面试技巧揭秘。本书从结构上可以分为五篇,*篇是准备开发环境,介绍Java语言开发中常见的工具和使用技巧
內容簡介:
本书立足于当前主流互联网企业对Java开发人员的技术要求,分析并总结面试中常见的面试考点以提升Java开发人员的技术实力。通过结合作者和行业内多位阅历丰富的Java开发人员、面试官和猎头的工作经验,总结出高效的面试技巧,助力Java开发人员早日走出面试困惑期,收获满意的工作机会和丰厚的薪资。本书第1章讲解Java语言开发环境的搭建过程。第2章和第3章讲解Java开发人员面试中常见的数据结构和算法考点。第4章讲解Java开发人员面试中常见的Java基础相关的考点。第5章和第6章讲解Java开发人员面试中常见的并发编程考点。第7章和第8章讲解Java开发人员可能会面临的面试形式和应对面试所需的技巧。 本书内容翔实,贴近面试实践,考点讲解详尽,适用于所有Java语言面试候选人、分布式系统开发爱好者以及计算机相关专业的学生阅读,也可供具有一到三年Java开发经验的读者夯实基础,提升开发技术。
關於作者:
周冠亚,上海交通大学软件工程硕士,资深Java开发工程师。先后就职于飞牛网、万达网络科技有限公司、上海2345网络科技有限公司、美团点评,目前就职于上海某知名电子商务公司,主要从事后端Java开发工作,拥有丰富的软件开发经验,熟悉Java、高并发、微服务、大数据及相关软件架构,已出版《Spring 5企业级开发实战》(清华大学出版社,2018年)。
目錄
第一篇 准备开发环境
第1章 开发环境搭建 1
1.1 Java语言版本构成及特性 1
1.2 JDK的安装 3
1.3 IntelliJ IDEA的安装 4
1.4 Apache Maven的安装 5
1.5 IntelliJ IDEA插件安装 5
1.6 小结 6

第二篇 数据结构和算法
第2章 数据结构 7
2.1 线性表 8
2.1.1 线性表的定义 8
2.1.2 线性表的类型 8
2.1.3 线性表的抽象类型的定义 8
2.1.4 线性表常见面试考点 9
2.2 顺序表 10
2.2.1 顺序表添加元素 10
2.2.2 顺序表查找元素 10
2.2.3 顺序表删除元素 11
2.2.4 顺序表的实现 11
2.2.5 顺序表常见面试考点 15
2.3 单链表 15
2.3.1 单链表添加元素 16
2.3.2 单链表查找元素 16
2.3.3 单链表删除元素 17
2.3.4 单链表的实现 17
2.3.5 单链表常见面试考点 23
2.4 双向链表 23
2.4.1 双向链表添加元素 24
2.4.2 双向链表查找元素 24
2.4.3 双向链表删除元素 25
2.4.4 双向循环链表 25
2.4.5 双向链表常见面试考点 26
2.5 栈 26
2.5.1 顺序栈 27
2.5.2 链式栈 31
2.5.3 栈常见面试考点 34
2.6 队列 34
2.6.1 顺序队列 35
2.6.2 循环队列 39
2.6.3 链式队列 43
2.6.4 优先队列 46
2.6.5 队列常见面试考点 50
2.7 树 50
2.7.1 树结构的相关概念 51
2.7.2 二叉树 52
2.7.3 斜树 52
2.7.4 满二叉树 53
2.7.5 完全二叉树 53
2.7.6 二叉树存储结构 54
2.7.7 二叉树的遍历 56
2.7.8 二叉排序树 56
2.7.9 AVL树 64
2.7.10 2-3-4树 79
2.7.11 红黑树 86
2.7.12 哈夫曼树 106
2.7.13 树常见面试考点 114
2.8 树和森林 115
2.8.1 普通树转化为二叉树 115
2.8.2 森林转化为二叉树 116
2.8.3 树的遍历 117
2.8.4 森林的遍历 117
2.8.5 树和森林常见面试考点 117
2.9 图 118
2.9.1 图的相关概念 118
2.9.2 图的邻接矩阵存储结构 119
2.9.3 图的邻接表存储结构 122
2.9.4 图的十字链表存储结构 126
2.9.5 图的遍历 132
2.9.6 最小生成树 136
2.9.7 Prim算法求解最小生成树 137
2.9.8 Kruskal算法求解最小生成树 146
2.9.9 Dijkstra算法求解最短路径 152
2.9.10 图的常见面试考点 159

第3章 算法 160
3.1 字符串相关算法 160
3.1.1 验证回文字符串 160
3.1.2 分割回文字符串 162
3.1.3 单词拆分 164
3.1.4 前缀树 167
3.1.5 有效的字母异位词 170
3.1.6 无重复字符的最长子串 172
3.1.7 电话号码的字母组合 174
3.1.8 串联所有单词的子串 176
3.1.9 字符串相关算法常见面试考点 179
3.2 数组相关算法 179
3.2.1 乘积最大连续子序列 179
3.2.2 求众数 181
3.2.3 旋转数组 183
3.2.4 移动零 186
3.2.5 求两个数组的交集 187
3.2.6 递增的三元子序列 189
3.2.7 搜索二维矩阵 191
3.2.8 除自身以外数组的乘积 194
3.2.9 数组相关算法常见面试考点 197
3.3 排序算法 197
3.3.1 冒泡排序算法 197
3.3.2 选择排序算法 199
3.3.3 插入排序算法 201
3.3.4 希尔排序算法 203
3.3.5 归并排序算法 206
3.3.6 快速排序算法 208
3.3.7 堆排序算法 213
3.3.8 计数排序算法 219
3.3.9 桶排序算法 221
3.3.10 基数排序算法 224
3.3.11 排序算法常见面试考点 227

第三篇 Java基础
第4章 Java中的集合框架 229
4.1 集合框架概述 229
4.2 ArrayList 230
4.2.1 ArrayList类的使用方式 230
4.2.2 ArrayList类的声明 232
4.2.3 ArrayList类的属性 233
4.2.4 ArrayList类的构造器 233
4.2.5 ArrayList类添加元素的方法 234
4.2.6 ArrayList类查询元素方法 238
4.2.7 ArrayList类更新元素方法 240
4.2.8 ArrayList类删除元素方法 240
4.2.9 ArrayList类批量方法 242
4.2.10 ArrayList类导出数组方法 244
4.2.11 ArrayList类排序方法 245
4.2.12 ArrayList类的迭代器 247
4.2.13 ArrayList常见面试考点 253
4.3 LinkedList 253
4.3.1 LinkedList类的使用方式 253
4.3.2 LinkedList类的声明 255
4.3.3 LinkedList类的属性 256
4.3.4 LinkedList类的内部类Node 256
4.3.5 LinkedList类的构造器 257
4.3.6 LinkedList类添加元素方法 257
4.3.7 LinkedList类查询元素的方法 260
4.3.8 LinkedList类更新元素方法 261
4.3.9 LinkedList类删除元素的方法 262
4.3.10 LinkedList类批量方法 263
4.3.11 LinkedList类的迭代器 265
4.3.12 LinkedList常见面试考点 269
4.4 Deque 270
4.4.1 Deque类的使用方式 270
4.4.2 Queue接口 271
4.4.3 Deque接口 272
4.4.4 LinkedList类的addFirst方法 276
4.4.5 LinkedList类的addLast方法 276
4.4.6 LinkedList类的offerFirst方法 277
4.4.7 LinkedList类的offerLast方法 277
4.4.8 LinkedList类的removeFirst方法 278
4.4.9 LinkedList类的removeLast方法 279
4.4.10 LinkedList类的pollFirst方法 280
4.4.11 LinkedList类的pollLast方法 280
4.4.12 LinkedList类的getFirst方法 280
4.4.13 LinkedList类的getLast方法 281
4.4.14 LinkedList类的peekFirst方法 281
4.4.15 LinkedList类的peekLast方法 281
4.4.16 LinkedList类的add方法 282
4.4.17 LinkedList类的offer方法 282
4.4.18 LinkedList类的remove方法 282
4.4.19 LinkedList类的poll方法 283
4.4.20 LinkedList类的element方法 283
4.4.21 LinkedList类的peek方法 283
4.4.22 LinkedList类的removeFirstOccurrence方法 284
4.4.23 LinkedList类的removeLastOccurrence方法 284
4.4.24 LinkedList类的push方法 285
4.4.25 LinkedList类的pop方法 286
4.4.26 Deque常见面试考点 286
4.5 PriorityQueue 286
4.5.1 PriorityQueue类的使用方式 286
4.5.2 PriorityQueue类的声明 287
4.5.3 PriorityQueue类的属性 288
4.5.4 PriorityQueue类的构造器 289
4.5.5 PriorityQueue类的add方法 294
4.5.6 PriorityQueue类的offer方法 294
4.5.7 PriorityQueue类的poll方法 297
4.5.8 PriorityQueue类的peek方法 297
4.5.9 PriorityQueue常见面试考点 298
4.6 HashMap 298
4.6.1 HashMap类的使用方式 298
4.6.2 Entry接口 300
4.6.3 Map接口 301
4.6.4 HashMap类的声明 307
4.6.5 HashMap类的属性 307
4.6.6 HashMap静态内部类Node 309
4.6.7 HashMap静态内部类TreeNode 311
4.6.8 HashMap的存储结构 312
4.6.9 HashMap的类构造器 312
4.6.10 HashMap类的put方法 313
4.6.11 HashMap类的hash方法 314
4.6.12 HashMap类的putVal方法 314
4.6.13 HashMap类的resize方法 318
4.6.14 HashMap类的putTreeVal方法 323
4.6.15 HashMap类的treeifyBin方法 324
4.6.16 HashMap类的remove方法 330
4.6.17 HashMap类的get方法 334
4.6.18 HashMap常见面试考点 335
4.7 LinkedHashMap 335
4.7.1 LinkedHashMap类的使用方式 336
4.7.2 LinkedHashMap类的声明 339
4.7.3 LinkedHashMap静态内部类Entry 339
4.7.4 LinkedHashMap类的属性 339
4.7.5 LinkedHashMap类的构造器 340
4.7.6 LinkedHashMap类的put方法 341
4.7.7 LinkedHashMap类的get方法 345
4.7.8 LinkedHashMap类的getOrDefault方法 345
4.7.9 LinkedHashMap类的containsValue方法 346
4.7.10 LinkedHashMap类的removeEldestEntry方法 346
4.7.11 LinkedHashMap类常见面试考点 346
4.8 TreeMap 346
4.8.1 TreeMap类的使用方式 347
4.8.2 TreeMap类的声明 348
4.8.3 TreeMap静态内部类Entry 352
4.8.4 TreeMap类的属性 353
4.8.5 TreeMap类的构造器 354
4.8.6 TreeMap类的putAll方法 355
4.8.7 TreeMap类的buildFromSorted方法 355
4.8.8 TreeMap类的put方法 358
4.8.9 TreeMap类的get方法 361
4.8.10 TreeMap类的remove方法 362
4.8.11 TreeMap类的firstKey方法 365
4.8.12 TreeMap类的lastKey方法 365
4.8.13 TreeMap类常见面试考点 366
4.9 HashSet 366
4.9.1 HashSet类的使用方式 366
4.9.2 HashSet类的声明 367
4.9.3 HashSet类的属性 367
4.9.4 HashSet类的构造器 368
4.9.5 HashSet类的add方法 369
4.9.6 HashSet类的remove方法 369
4.9.7 HashSet类的contains方法 369
4.9.8 HashSet类的iterator方法 370
4.9.9 HashSet类常见面试考点 372
4.10 LinkedHashSet 372
4.10.1 LinkedHashSet类的使用方式 372
4.10.2 LinkedHashSet类的声明 373
4.10.3 LinkedHashSet类构造器 373
4.10.4 LinkedHashSet类常见面试考点 374
4.11 TreeSet 374
4.11.1 TreeSet类的使用方式 375
4.11.2 TreeSet类的声明 377
4.11.3 TreeSet类的属性 379
4.11.4 TreeSet类的构造器 379
4.11.5 TreeSet类的add方法 380
4.11.6 TreeSet类的first方法 381
4.11.7 TreeSet类的last方法 382
4.11.8 TreeSet类的descendingIterator方法 382
4.11.9 TreeSet类常见面试考点 385

第四篇 Java并发编程
第5章 线程基础 387
5.1 线程的概念 387
5.1.1 进程与线程的关系 387
5.1.2 线程的概念常见面试考点 388
5.2 线程的创建 388
5.2.1 继承Thread类 388
5.2.2 实现Runnable接口 389
5.2.3 实现Callable接口 390
5.2.4 线程池 391
5.2.5 线程创建的常见面试考点 394
5.3 线程的生命周期 394
5.3.1 初始状态 395
5.3.2 就绪状态 396
5.3.3 运行中状态 396
5.3.4 阻塞状态 396
5.3.5 等待状态 396
5.3.6 超时等待状态 396
5.3.7 终止状态 396
5.3.8 线程的生命周期常见面试考点 397
5.4 线程中断 397
5.4.1 线程中断的概念 397
5.4.2 线程中断的响应 397
5.4.3 线程中断的操作 397
5.4.4 线程中断常见面试考点 401
5.5 线程的优先级和守护线程 401
5.5.1 线程优先级的特性 402
5.5.2 守护线程 406
5.5.3 线程优先级和守护线程常见面试考点 408
5.6 线程常用方法 408
5.6.1 sleep方法 408
5.6.2 wait方法 410
5.6.3 notifynotifyAll方法 411
5.6.4 yield方法 413
5.6.5 join方法 415
5.6.6 线程常用方法常见面试考点 416
5.7 线程组 416
5.7.1 线程组的概念 416
5.7.2 一级关联 417
5.7.3 多级关联 419
5.7.4 线程组自动归属 420
5.7.5 批量管理线程 421
5.7.6 线程组常见面试考点 422
5.8 Thread类代码解析 423
5.8.1 Thread类常用属性 423
5.8.2 Thread类的构造器 424
5.8.3 Thread类的start方法 427
5.8.4 Thread类的run方法 431
5.8.5 Thread类的exit方法 431
5.8.6 Thread类的interrupt方法 431
5.8.7 Thread类的interrupted方法 434
5.8.8 Thread类的isInterrupted方法 435
5.8.9 Thread类的join方法 435
5.8.10 Thread类的sleep方法 438
5.8.11 Thread类常见面试考点 441
5.9 volatile 442
5.9.1 硬件系统架构 442
5.9.2 缓存一致性问题 443
5.9.3 缓存一致性协议 444
5.9.4 as-if-serial 445
5.9.5 程序顺序规则 446
5.9.6 指令重排序 447
5.9.7 volatile内存语义 450
5.9.8 volatile常见面试考点 451
5.10 synchronized 451
5.10.1 synchronized的作用 451
5.10.2 synchronized的使用方式 452
5.10.3 synchronized死锁问题 462
5.10.4 synchronized的特性 464
5.10.5 synchronized的实现原理 464
5.10.6 synchronized的存储结构 469
5.10.7 自旋锁 473
5.10.8 锁消除 474
5.10.9 锁粗化 475
5.10.10 偏向锁 475
5.10.11 轻量级锁 478
5.10.12 重量级锁 480
5.10.13 synchronized实现线程通信 481
5.10.14 synchronized常见面试考点 488
5.11 ThreadLocal 488
5.11.1 ThreadLocal的使用方式 488
5.11.2 ThreadLocal原理分析 490
5.11.3 静态内部类ThreadLocalMap 492
5.11.4 ThreadLocal类的set方法 499
5.11.5 ThreadLocal类的get方法 499
5.11.6 ThreadLocal与内存泄漏 500
5.11.7 ThreadLocal常见面试考点 501

第6章 并发编程工具 502
6.1 AbstractQueuedSynchronizer 502
6.1.1 AbstractOwnableSynchronizer代码分析 502
6.1.2 AbstractQueuedSynchronizer内部类 503
6.1.3 AbstractQueuedSynchronizer的属性 506
6.1.4 AbstractQueuedSynchronizer独占模式 506
6.1.5 AbstractQueuedSynchronizer共享模式 516
6.1.6 AbstractQueuedSynchronizer条件模式 522
6.1.7 AbstractQueuedSynchronizer常见面试考点 546
6.2 Lock 547
6.2.1 Lock接口加锁方法 547
6.2.2 Lock接口解锁方法 549
6.2.3 Lock接口的newCondition方法 549
6.3 ReentrantLock 549
6.3.1 ReentrantLock的使用方式 549
6.3.2 ReentrantLock类图 551
6.3.3 ReentrantLock内部类Sync代码解析 552
6.3.4 ReentrantLock内部类FairSync代码解析 554
6.3.5 ReentrantLock内部类NonfairSync代码解析 555
6.3.6 ReentrantLock构造器代码解析 556
6.3.7 ReentrantLock公平锁代码解析 557
6.3.8 ReentrantLock非公平锁代码解析 559
6.3.9 公平锁与非公平锁比较 560
6.3.10 ReentrantLock常见面试考点 561
6.4 Semaphore 561
6.4.1 Semaphore的使用方式 561
6.4.2 Semaphore类图 563
6.4.3 Semaphore内部类Sync代码解析 563
6.4.4 Semaphore内部类FairSync代码解析 565
6.4.5 Semaphore内部类NonfairSync代码解析 566
6.4.6 Semaphore构造器代码解析 566
6.4.7 Semaphore公平模式代码解析 567
6.4.8 Semaphore非公平模式代码解析 570
6.4.9 Semaphore常见面试考点 571
6.5 CountDownLatch 571
6.5.1 CountDownLatch的使用方式 572
6.5.2 CountDownLatch类图 575
6.5.3 CountDownLatch内部类Sync代码解析 575
6.5.4 CountDownLatch构造器代码解析 576
6.5.5 await方法代码解析 577
6.5.6 awaitlong timeout, TimeUnit unit方法代码解析 578
6.5.7 countDown方法代码解析 579
6.5.8 CountDownLatch常见面试考点 580
6.6 CyclicBarrier 580
6.6.1 CyclicBarrier的使用方式 580
6.6.2 CyclicBarrier的属性 583
6.6.3 CyclicBarrier内部类Generation代码解析 583
6.6.4 CyclicBarrier构造器代码解析 584
6.6.5 await方法代码解析 584
6.6.6 reset方法代码解析 588
6.6.7 CyclicBarrier常见面试考点 588
6.7 ReentrantReadWriteLock 589
6.7.1 ReentrantReadWriteLock的使用方式 589
6.7.2 ReentrantReadWriteLock类图 591
6.7.3 ReentrantReadWriteLock的属性 592
6.7.4 ReentrantReadWriteLock构造器代码解析 592
6.7.5 ReentrantReadWriteLock内部类Sync代码解析 593
6.7.6 ReentrantReadWriteLock内部类FairSync代码解析 595
6.7.7 ReentrantReadWriteLock内部类NonfairSync代码解析 595
6.7.8 ReentrantReadWriteLock内部类ReadLock代码解析 596
6.7.9 ReentrantReadWriteLock内部类WriteLock代码解析 597
6.7.10 ReentrantReadWriteLock写锁代码解析 599
6.7.11 ReentrantReadWriteLock读锁代码解析 602
6.7.12 ReentrantReadWriteLock常见面试考点 607
6.8 ArrayBlockingQueue 607
6.8.1 ArrayBlockingQueue的使用方式 608
6.8.2 ArrayBlockingQueue的属性 609
6.8.3 ArrayBlockingQueue构造器代码解析 610
6.8.4 ArrayBlockingQueue入队方法代码解析 612
6.8.5 ArrayBlockingQueue出队方法代码解析 614
6.8.6 ArrayBlockingQueue常见面试考点 617
6.9 LinkedBlockingQueue 618
6.9.1 LinkedBlockingQueue的使用方式 618
6.9.2 LinkedBlockingQueue内部类Node代码解析 620
6.9.3 LinkedBlockingQueue的属性 621
6.9.4 LinkedBlockingQueue构造器代码解析 622
6.9.5 LinkedBlockingQueue入队方法代码解析 623
6.9.6 LinkedBlockingQueue出队方法代码解析 625
6.9.7 LinkedBlockingQueue常见面试考点 629
6.10 DelayQueue 629
6.10.1 DelayQueue的使用方式 629
6.10.2 DelayQueue的声明 632
6.10.3 DelayQueue的属性 632
6.10.4 DelayQueue构造器代码解析 633
6.10.5 DelayQueue入队方法代码解析 633
6.10.6 DelayQueue出队方法代码解析 635
6.10.7 DelayQueue工作原理解析 639
6.10.8 DelayQueue常见面试考点 640
6.11 LinkedBlockingDeque 640
6.11.1 LinkedBlockingDeque的使用方式 640
6.11.2 LinkedBlockingDeque的声明 644
6.11.3 LinkedBlockingDeque内部类Node代码解析 647
6.11.4 LinkedBlockingDeque的属性 648
6.11.5 LinkedBlockingDeque构造器代码解析 649
6.11.6 LinkedBlockingDeque入队方法代码解析 650
6.11.7 LinkedBlockingDeque出队方法代码解析 654
6.11.8 LinkedBlockingDeque常见面试考点 658
6.12 CopyOnWriteArrayList 658
6.12.1 CopyOnWriteArrayList的使用方式 658
6.12.2 CopyOnWriteArrayList的属性 660
6.12.3 CopyOnWriteArrayList构造器代码解析 660
6.12.4 CopyOnWriteArrayList添加元素方法代码解析 661
6.12.5 CopyOnWriteArrayList更新元素方法代码解析 663
6.12.6 CopyOnWriteArrayList删除元素方法代码解析 664
6.12.7 CopyOnWriteArrayList查找元素方法代码解析 666
6.12.8 CopyOnWriteArrayList工作原理解析 667
6.12.9 CopyOnWriteArrayList常见面试考点 668
6.13 ConcurrentHashMap 668
6.13.1 ConcurrentHashMap的使用方式 669
6.13.2 ConcurrentHashMap类的属性 670
6.13.3 ConcurrentHashMap内部类Node代码解析 671
6.13.4 ConcurrentHashMap内部类TreeNode代码解析 672
6.13.5 ConcurrentHashMap内部类TreeBin代码解析 674
6.13.6 ConcurrentHashMap内部类ForwardingNode代码解析 675
6.13.7 ConcurrentHashMap类put方法代码解析 676
6.13.8 ConcurrentHashMap类putIfAbsent方法代码解析 676
6.13.9 ConcurrentHashMap类putVal方法代码解析 677
6.13.10 ConcurrentHashMap类initTable方法代码解析 679
6.13.11 ConcurrentHashMap类helpTransfer方法代码解析 680
6.13.12 ConcurrentHashMap类treeifyBin方法代码解析 682
6.13.13 ConcurrentHashMap类tryPresize方法代码解析 683
6.13.14 ConcurrentHashMap类transfer方法代码解析 684
6.13.15 ConcurrentHashMap类get方法代码解析 690
6.13.16 ConcurrentHashMap常见面试考点 690
6.14 Unsafe 690
6.14.1 Unsafe单例设计模式 691
6.14.2 Unsafe类内存操作相关方法 691
6.14.3 Unsafe类CAS相关方法 695
6.14.4 Unsafe类线程调度相关方法 697
6.14.5 Unsafe类Class相关方法 698
6.14.6 Unsafe类对象相关方法 700
6.14.7 Unsafe类数组相关方法 701
6.14.8 Unsafe类volatile相关方法 703
6.14.9 Unsafe类内存屏障相关方法 704
6.14.10 Unsafe类常见面试考点 704
6.15 LockSupport 704
6.15.1 LockSupport的使用方式 705
6.15.2 LockSupport构造器代码解析 706
6.15.3 LockSupport静态代码块 707
6.15.4 LockSupport类阻塞方法代码解析 708
6.15.5 LockSupport类唤醒方法代码解析 709
6.15.6 LockSupport常见面试考点 709
6.16 原子类 710
6.16.1 AtomicInteger的使用方式 711
6.16.2 AtomicInteger类的属性 712
6.16.3 AtomicInteger构造器代码解析 712
6.16.4 AtomicInteger常用方法代码解析 713
6.16.5 ABA问题 715
6.16.6 AtomicStampedReference代码解析 717
6.16.7 原子类常见面试考点 718
6.17 线程池 719
6.17.1 ThreadPoolExecutor的使用方式 719
6.17.2 ThreadPoolExecutor构造器代码解析 722
6.17.3 ThreadPoolExecutor工作流程 726
6.17.4 ThreadPoolExecutor内部类Worker代码解析 727
6.17.5 ThreadPoolExecutor的状态 729
6.17.6 ThreadPoolExecutor提交任务代码解析 731
6.17.7 ThreadPoolExecutor类execute方法代码解析 733
6.17.8 ThreadPoolExecutor类addWorker方法代码解析 735
6.17.9 ThreadPoolExecutor类runWorker方法代码解析 738
6.17.10 ThreadPoolExecutor类getTask方法代码解析 741
6.17.11 ThreadPoolExecutor类processWorkerExit方法代码解析 742
6.17.12 ThreadPoolExecutor类shutdown方法代码解析 743
6.17.13 ThreadPoolExecutor类shutdownNow方法代码解析 743
6.17.14 线程池常见面试考点 744

第五篇 面试与技巧
第7章 剖析面试 745
7.1 什么是面试 745
7.1.1 让面试官记住你 746
7.1.2 让面试官信任你 747
7.2 面试环节分析 748
7.2.1 笔试 748
7.2.2 语音面试 748
7.2.3 视频面试 748
7.2.4 现场面试 749
7.2.5 压力面试 750
7.2.6 背景调查 750
7.2.7 在线考试 751

第8章 面试技巧 752
8.1 第一类候选人 752
8.2 第二类候选人 755
8.3 第三类候选人 755
8.4 第四类候选人 756

参考文献 762
內容試閱
Java语言在如今的软件行业已然成为重要、流行的开发语言之一,越来越多的企业选择Java语言作为其主要开发语言。伴随着互联网行业的不断发展,越来越多的互联网企业为Java开发人员提供了优厚的薪水。随着Java开发人员薪水的不断上调,企业在Java开发人员的挑选方面投入了越来越多的时间成本和人力成本。本书结合目前互联网公司常见的面试考点进行分析,针对各个面试考点各个击破,并结合国内一二线主流互联网公司和部分独角兽公司的面试场景,总结面试中高效的面试技巧,尽可能提升Java开发人员的面试通过率。
本书涵盖软件开发必备的、面试必考的数据结构和算法,JDK(Java Development Kit)中重要的、面试常见的代码分析、Java语言并发编程核心代码分析和面试技巧揭秘。本书从结构上可以分为五篇,第一篇是准备开发环境,介绍Java语言开发中常见的工具和使用技巧,涉及第1章内容。第二篇是数据结构和算法,讲解软件开发行业中无论任何编程语言都会涉及的数据结构和算法,涵盖第2章和第3章。第三篇是Java基础,主要讲解面试中常见的Java类的代码实现原理,涉及第4章内容。第四篇是Java并发编程,主要讲解Java多线程中常见的面试题,涵盖第5章和第6章。第五篇是面试,主要讲解Java开发人员可能会遇到的面试形式和必备的面试技巧,涵盖第7章和第8章。
本书结构
本书共8章,各章内容概述如下:
? 第1章介绍Java开发所需的环境和工具,包括JDK安装、IntelliJ IDEA安装、Maven安装和IntelliJ IDEA插件安装。
? 第2章介绍面试中常见的数据结构,如线性表、链表、栈、队列、树、森林和图等。
? 第3章介绍面试中常见的算法,如冒泡排序、选择排序、希尔排序和堆排序等。
? 第4章介绍面试中常见的Java集合框架,如HashMap、TreeMap等。
? 第5章介绍面试中常见的Java线程基础相关的知识,如线程阻塞、线程唤醒、volatile、synchronized等。
? 第6章介绍面试中常见的Java并发编程工具类的实现原理,如ReentrantLock、CopyOnWriteArrayList、ConcurrentHashMap等。
? 第7章介绍常见的面试形式,如语音面试、视频面试、现场面试、压力面试、背景调查等。
? 第8章介绍常见的几种候选人的面试过程和高效的面试技巧。
本书预备知识
Java基础
建议读者掌握必要的Java编程基础知识,可以参考本书内容实现编程。
本书使用的软件版本
本书使用到的开发环境如下:
? 操作系统:MacOS 10.14.3。
? 开发工具:IntelliJ IDEA 2019.1.3。
? JDK版本:1.8。
? maven-3.5.0。
读者对象
本书适合所有Java语言开发人员、Java语言求职人员、在校学生及对面试存在疑惑的开发人员阅读。
源代码下载
GitHub源代码下载地址:
https:github.comonline-demojava-interview-guide。
也可以扫描右侧的二维码进行下载。如果下载有问题,请联系booksaga@126.com,邮件主题为Java面试一战到底(基础卷)。
致谢
本书能够顺利出版,首先要感谢清华大学出版社的王金柱编辑,他给了笔者一次与各位读者分享技术、交流学习的机会,感谢王金柱编辑在本书出版过程中的辛勤付出。感谢笔者的好友黄文毅,也是笔者曾经的同事,对笔者在写作思路上给予的帮助和支持。
感谢中国电信天翼电子商务有限公司(甜橙金融),书中很多知识点和项目实战经验都来源于甜橙金融,感谢甜橙金融营销中各位同事对笔者工作和学习的帮助和支持。感谢行业前辈杨继龙对笔者职业生涯的提点,感谢好友钱方对笔者写作进度的监督和指导,感谢英语老师吴定山对笔者英语能力的培养。
限于笔者水平有限,书中难免存在疏漏之处,敬请广大读者朋友及业界专家批评指正,以期使本书更加完善。

周冠亚
2020年2月16日

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.