Skip to content

Commit 34b1822

Browse files
committed
add toc
1 parent 7f2015a commit 34b1822

File tree

1 file changed

+168
-1
lines changed

1 file changed

+168
-1
lines changed

Readme.md

+168-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,134 @@
1+
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again -->
2+
**Table of Contents**
3+
4+
- [Python面试题集](#python)
5+
- [Python语言特性](#python)
6+
- [1 Python的函数参数传递](#1-python)
7+
- [2 Python中的元类(metaclass)](#2-pythonmetaclass)
8+
- [3 @staticmethod@classmethod](#3-staticmethodclassmethod)
9+
- [4 类变量和实例变量](#4-)
10+
- [5 Python自省](#5-python)
11+
- [6 字典推导式](#6-)
12+
- [7 Python中单下划线和双下划线](#7-python)
13+
- [8 字符串格式化:%和.format](#8-format)
14+
- [9 迭代器和生成器](#9-)
15+
- [10 `*args` and `**kwargs`](#10-args-and-kwargs)
16+
- [11 面向切面编程AOP和装饰器](#11-aop)
17+
- [12 鸭子类型](#12-)
18+
- [13 Python中重载](#13-python)
19+
- [14 新式类和旧式类](#14-)
20+
- [15 `__new__``__init__`的区别](#15-newinit)
21+
- [16 单例模式](#16-)
22+
- [1 使用`__new__`方法](#1-new)
23+
- [2 共享属性](#2-)
24+
- [3 装饰器版本](#3-)
25+
- [17 Python中的作用域](#17-python)
26+
- [18 GIL线程全局锁](#18-gil)
27+
- [19 协程](#19-)
28+
- [20 闭包](#20-)
29+
- [21 lambda函数](#21-lambda)
30+
- [22 Python函数式编程](#22-python)
31+
- [23 Python里的拷贝](#23-python)
32+
- [24 Python垃圾回收机制](#24-python)
33+
- [1 引用计数](#1-)
34+
- [2 标记-清除机制](#2--)
35+
- [3 分代技术](#3-)
36+
- [25 Python的List](#25-pythonlist)
37+
- [26 Python的is](#26-pythonis)
38+
- [27 read,readline和readlines](#27-readreadlinereadlines)
39+
- [28 Python2和3的区别](#28-python23)
40+
- [操作系统](#)
41+
- [1 select,poll和epoll](#1-selectpollepoll)
42+
- [2 调度算法](#2-)
43+
- [3 死锁](#3-)
44+
- [4 程序编译与链接](#4-)
45+
- [1 预处理](#1-)
46+
- [2 编译](#2-)
47+
- [3 汇编](#3-)
48+
- [4 链接](#4-)
49+
- [5 静态链接和动态链接](#5-)
50+
- [6 虚拟内存技术](#6-)
51+
- [7 分页和分段](#7-)
52+
- [分页与分段的主要区别](#)
53+
- [8 页面置换算法](#8-)
54+
- [9 边沿触发和水平触发](#9-)
55+
- [数据库](#)
56+
- [1 事务](#1-)
57+
- [2 数据库索引](#2-)
58+
- [3 Redis原理](#3-redis)
59+
- [4 乐观锁和悲观锁](#4-)
60+
- [5 MVCC](#5-mvcc)
61+
- [6 MyISAM和InnoDB](#6-myisaminnodb)
62+
- [网络](#)
63+
- [1 三次握手](#1-)
64+
- [2 四次挥手](#2-)
65+
- [3 ARP协议](#3-arp)
66+
- [4 urllib和urllib2的区别](#4-urlliburllib2)
67+
- [5 Post和Get](#5-postget)
68+
- [6 Cookie和Session](#6-cookiesession)
69+
- [7 apache和nginx的区别](#7-apachenginx)
70+
- [8 网站用户密码保存](#8-)
71+
- [9 HTTP和HTTPS](#9-httphttps)
72+
- [10 XSRF和XSS](#10-xsrfxss)
73+
- [11 幂等 Idempotence](#11--idempotence)
74+
- [12 RESTful架构(SOAP,RPC)](#12-restfulsoaprpc)
75+
- [13 SOAP](#13-soap)
76+
- [14 RPC](#14-rpc)
77+
- [15 CGI和WSGI](#15-cgiwsgi)
78+
- [16 中间人攻击](#16-)
79+
- [17 c10k问题](#17-c10k)
80+
- [18 socket](#18-socket)
81+
- [19 浏览器缓存](#19-)
82+
- [20 HTTP1.0和HTTP1.1](#20-http10http11)
83+
- [Ajax](#ajax)
84+
- [*NIX](#nix)
85+
- [unix进程间通信方式(IPC)](#unixipc)
86+
- [数据结构](#)
87+
- [1 红黑树](#1-)
88+
- [编程题](#)
89+
- [1 台阶问题/斐波纳挈](#1-)
90+
- [2 变态台阶问题](#2-)
91+
- [矩形覆盖](#)
92+
- [2 杨氏矩阵查找](#2-)
93+
- [3 去除列表中的重复元素](#3-)
94+
- [4 链表成对调换](#4-)
95+
- [Definition for singly-linked list.](#definition-for-singly-linked-list)
96+
- [class ListNode:](#class-listnode)
97+
- [def __init__(self, x):](#def-initself-x)
98+
- [self.val = x](#selfval--x)
99+
- [self.next = None](#selfnext--none)
100+
- [创建字典的方法](#)
101+
- [1 直接创建](#1-)
102+
- [2 工厂方法](#2-)
103+
- [3 fromkeys()方法](#3-fromkeys)
104+
- [dict={'x':-1,'y':-1}](#dictx-1y-1)
105+
- [dict2={'x':None, 'y':None}](#dict2xnone-ynone)
106+
- [合并两个有序列表](#)
107+
- [交叉链表求交点](#)
108+
- [Definition for singly-linked list.](#definition-for-singly-linked-list)
109+
- [class ListNode:](#class-listnode)
110+
- [def __init__(self, x):](#def-initself-x)
111+
- [self.val = x](#selfval--x)
112+
- [self.next = None](#selfnext--none)
113+
- [二分查找](#)
114+
- [快排](#)
115+
- [找零问题](#)
116+
- [广度遍历和深度遍历二叉树](#)
117+
- [二叉树节点](#)
118+
- [层次遍历](#)
119+
- [深度遍历](#)
120+
- [前中后序遍历](#)
121+
- [求最大树深](#)
122+
- [求两棵树是否相同](#)
123+
- [前序中序求后序](#)
124+
- [重建](#)
125+
- [后序遍历](#)
126+
- [单链表逆置](#)
127+
128+
<!-- markdown-toc end -->
129+
130+
131+
1132
# Python面试题集
2133

3134
目前面了4家python的公司,基本都是很基础的东西,对比发现和stackoverflow上高票数的问题有很多重复,整理一下希望对别人有帮助.
@@ -353,7 +484,7 @@ Python 中,一个变量的作用域总是由在代码中被赋值的地方所
353484

354485
本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing locals)→全局/模块作用域(Global)→内置作用域(Built-in)
355486

356-
## 18 线程全局锁
487+
## 18 GIL线程全局锁
357488

358489
线程全局锁(Global Interpreter Lock),即Python为了保证线程安全而采取的独立线程运行的限制,说白了就是一个核只能在同一时间运行一个线程.
359490

@@ -497,6 +628,10 @@ is是对比地址,==是对比值
497628
* readline 读取下一行,使用生成器方法
498629
* readlines 读取整个文件到一个迭代器以供我们遍历
499630

631+
## 28 Python2和3的区别
632+
633+
634+
500635
# 操作系统
501636

502637
## 1 select,poll和epoll
@@ -641,9 +776,18 @@ Bulid过程可以分解为4个步骤:预处理(Prepressing), 编译(Compilation)
641776

642777
## 4 乐观锁和悲观锁
643778

779+
悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作
780+
781+
乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。
782+
783+
## 5 MVCC
784+
644785

786+
## 6 MyISAM和InnoDB
645787

788+
MyISAM 适合于一些需要大量查询的应用,但其对于有大量写操作并不是很好。甚至你只是需要update一个字段,整个表都会被锁起来,而别的进程,就算是读进程都无法操作直到读操作完成。另外,MyISAM 对于 SELECT COUNT(*) 这类的计算是超快无比的。
646789

790+
InnoDB 的趋势会是一个非常复杂的存储引擎,对于一些小的应用,它会比 MyISAM 还慢。他是它支持“行锁” ,于是在写操作比较多的时候,会更优秀。并且,他还支持更多的高级应用,比如:事务。
647791

648792
# 网络
649793

@@ -761,6 +905,17 @@ Socket=Ip address+ TCP/UDP + port
761905

762906
304 not midifyide
763907

908+
## 20 HTTP1.0和HTTP1.1
909+
910+
推荐: http://blog.csdn.net/elifefly/article/details/3964766
911+
912+
1. 请求头Host字段,一个服务器多个网站
913+
2. 长链接
914+
3. 文件断点续传
915+
3. 身份认证,状态管理,Cache缓存
916+
917+
## Ajax
918+
764919
# *NIX
765920

766921
## unix进程间通信方式(IPC)
@@ -815,6 +970,18 @@ def fib(i):
815970
return fib(i-1)+fib(i-2)
816971
```
817972

973+
第三种方法
974+
975+
```python
976+
def fib(n):
977+
a, b = 0, 1
978+
while a < n:
979+
print a,
980+
a, b = b, a + b
981+
print
982+
fib(1000)
983+
```
984+
818985
## 2 变态台阶问题
819986

820987
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

0 commit comments

Comments
 (0)