|
第1章 国内笔试面试风格及准备方法" u( e: {- T6 ~2 P4 Q
5 ]2 p C) `6 |
分享面试经验,通过例题分析国内面试的风格及准备方法 9 _0 g& O, t* {6 `8 @# b5 A* U7 o
· 1) C/C++部分:+ ?5 D3 v. R4 q, j/ \: x( r( z$ ~! ~
实现 memcpy 函数
/ O: q( a6 t& R( \0 o: q STL 中 vector 的实现原理
$ ~: `8 A+ e. V1 ^1 |/ d t+ }· 2)概率题部分:; _' f I% L/ R6 }5 S6 }: g
给 N 张牌和一个随机函数,设计一个算法对这堆牌进行洗牌
$ _: W3 B7 y: G5 f" g· 3)智力题部分+ E" E2 m# x, M8 [, g! M% O
25 匹马,5 个赛道,最少赛多少次找出前三: \2 r, m5 D! a5 |
· 4)操作系统部分- {/ p+ ?% O' [% `6 g& J" d+ X
进程和线程的区别和联系
; z; I4 E( g W4 A& q# `0 l+ F· 5)大数据部分
* B2 f8 t# ]2 L4 S) g5 K8 h 100 亿个整数,如何找到中位数
5 E$ X- c1 P, h( K· 6)算法题部分
% F6 N" |* x2 `5 k/ F* G& o 手写快排 . s* P" O1 P' i- \+ {& P, |
手写堆 9 h# l4 D* Z1 a& N& w& b
刷LintCode
' z- S" e( z2 ?% h N% f5 u
. E, {" h& l" P# ]第2章 C/C++面试知识点梳理
! b- z, V0 f. {3 w7 M* I
: A# |8 m/ F4 r/ ~0 ]本节通过真实的笔试、面试题讲解 C++相关的基础内容,包括各种关 键字的作用,字节对齐,智能指针,单例模式等
" ~$ A8 _: H1 e% ]- y· 1) 叙述智能指针的原理' B& n, a# G B# u
衍生出 STL 中 auto_ptr 以及 shared_ptr 的使用
+ Y* N. `) u5 x2 N' q 如果出现循环引用如何处理?
& F8 j4 e1 }% v3 Y, j3 J" h8 x, Z· 2) C++单例模式写法 L9 g* t. E2 O; T; |7 W; a
衍生问题:如何定义一个只能在堆上定义对象的类?栈上呢? - j% o, q: ]4 m0 q/ N
· 3) Struct 的字节对齐问题
( R9 @$ o) D/ o# r6 m+ T" C· 4) C 与 C++易混淆概念分析" x# i, K% Y& B0 d) b
引用和指针有什么区别? const 和 define 有什么区别? new 和 malloc 有什么区别? define 和 inline 有什么区别?
. f( t; w' L/ }4 r: a$ H· 5) static 关键字用法总结# m0 K! W+ o9 ^' \( ]
衍生问题:成员函数能否声明为 static 和 const 的呢? static 函数能否调用非 static 函数4 V/ a, h+ N" ~5 G) r; K; \
· 6) const 关键字用法
X6 N6 r" m7 l5 i$ s· 7) C++四种强制类型转换
- i' K1 H2 n" D) W
* U. G7 G" e+ l" g( k3 J l( [第3章 C/C++面试知识点梳理下
# y# \2 K! c9 M9 r# V 本节详细讲解 C/C++面试中非常高频的虚函数、虚继承以及 C++对象 内存模型,从此遇到这类问题不再“虚”!& S# ]: h% k6 z4 T+ l
· 1) C++虚函数详解
8 }& L$ D5 b; X4 M0 N! F6 Y 什么是虚函数,有什么作用?% i0 b+ N2 m" T+ E) S5 n. I
. T. n7 Z9 K* i7 j# J/ e& k/ |
虚函数实现原理:包括虚函数表、虚函数指针等
& a4 D, U) N. n# D' X. l! }; R4 t! W
衍生问题:
, n/ T& E! a4 g+ o- }! `9 b
& p0 V) @$ y8 ^# ]- Z 为什么 C++里访问虚函数比访问普通函数慢?
- q* L+ m8 R% [+ R9 e3 E
1 Q: M0 S2 Z9 q; m2 E' z9 y 为什么需要虚析构函数?
. V$ x' g4 r: \2 }+ B$ e3 D6 d7 y/ C" M) h9 _
内联函数、构造函数、静态成员函数可以是虚函数吗?0 {# a3 _' J9 a7 z+ n& _9 ]
+ ^) f; w9 W( `) K# n" k3 l- Q3 w% R
构造函数中可以调用虚函数吗?$ m2 P( \0 o; q' l Z) i# K% o
· 2) C++虚继承详解
8 T+ b/ U* F% Q2 v* y' J, U9 X# Z) P' r. a6 g6 P
为什么需要虚继承? 虚继承实现原理解析
4 B8 P% m1 l; G' `3 @9 O/ G" i# ~# e. z( ~# \
· 3) C++对象内存模型详解
- [ x1 Q5 F- p
3 ~3 p+ B) G+ @' u7 \; W2 {, F 融合虚函数、虚继承,讲解 C++对象模型
" O! f& z$ G5 g3 Y0 [& \: H6 M) f q4 A1 [* l) f: Y
第4章 智力题* q. F- N5 C5 O0 k5 H
本节详细讲解国内面试中高频的智力题, 并总结常见的解决这类问题的思路与技巧5 u8 ?7 G, `1 F7 e3 _0 u
· 10+个常见智力面试题- ^, ^, [" t% M
3 I7 M: V# {+ W) H- c第5章 概率题与操作系统题2 J5 Z. M; X2 t- k' Y7 Q# D
· 操作系统相关的面试问题
$ i9 T/ Q7 B \7 }4 o# F2 u( k7 y8 {' W2 g& I4 D
第6章 面向对象设计
3 h" }9 e4 G4 r1 y · 1、请设计一个抽象类,用来支持有序数组归并任务
( A7 A) f ^/ i* e: W9 _ · 2、请设计一个LRU Cache
$ w3 L/ f, v" \( Q8 f% [ · 3、设计一个在线聊天系统5 p: H4 f* e; M) {; H/ `
· 4、设计一个基于内存的简单文件系统
# c9 |1 g2 c. _) l · 5、设计一个支持多终端的日志打印系统(如向文件打印、向网络打印、向屏幕打印)
" n+ |; f; V& N' R1 t6 R! h9 w · 6、设计一个棋盘游戏
: ^& O6 q2 M- Y9 K · 7、请设计一个数据结构,它能够支持插入、删除、最大值、最小值、随机返回一个数的操作/ |1 O. ]# W( m/ u2 _
· 8、设计一个函数,使得它在n毫秒内最多访问M次+ l4 q8 R' Q& u5 f( k' c* J p
* w3 u5 s3 i' ?0 L: ~% F
第7章 海量数据处理问题
, Y8 X& }8 `8 Y0 H+ e · 1、Map-Reduce原理
& Q/ @7 J1 B5 n4 M · 2、BloomFilter原理
5 \/ Z5 _& ?" V8 m · 3、Trie树原理% r7 ?) d( h$ ?4 p0 R, P
· 4、两个大文件,每个文件里都存有上亿个url,怎么找到重复的url
/ U/ _5 ]7 [# ^6 y: _( | · 5、给百度一天的querylog,如何找到一天中出现频率最多的k个query0 k* T$ }+ v; m$ F& s9 o6 P
7 v' A' H. U5 u: f/ r3 z. X
/ a, F8 ^2 {7 V U) Z/ T, U. e
" O1 Y) X- [: h" {9 m2 ?( u$ ?2 [
; f% B. l6 ]1 z
4 z6 K# |" O& w3 M( f! u8 p5 m- {) }
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见' T" M7 P w& V4 G6 e7 `
- q% r2 q) X2 D5 h; x4 ?
$ y" B7 [5 b1 J1 k; K& W2 _. n$ w3 X* s$ H0 E$ T
本资源由Java自学网收集整理【www.javazx.com】 |
|