一些常考的基础知识点个人总结,大神勿喷,欢迎指正. 1.广义表的表尾是指除去表头后剩下的元素组成的表,表头可以为表或单元素值.表尾或为表,或为空表. 2.构造函数不能声明为虚函数. 构造函数为什么不能是虚函数? 1. 从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的.问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能…
(1)TCP和UDP有什么区别? TCP是传输控制协议,提供的是面向连接的,可靠地字节流服务.使用三次握手建立连接,四次挥手释放连接.UDP是用户数据报协议,传输的是UDP数据报,是无连接的,而且没有超时重发机制. TCP保证数据按序到达,提供流量控制和拥塞控制,在网络拥堵的时候会减慢发送字节数,而UDP不管网络是否拥堵.  TCP是连接的,所以服务是一对一服务,而UDP可以1对1,也可以1对多(多播),也可以多对多. TCP可靠传输的保证: 停止等待协议:每发送完一个分组就停止发送,等待对方确…
搜索引擎的实现,会用到哪些重要的数据结构 设计实现一个HTTP代理服务器 / web服务器 / FTP服务器/ 设计实现cache缓存web服务器的网页访问记录 把一个文件快速下发到100w个服务器 将微信用户分为两组,组内的微信用户互相不为好友:用并查集 朋友之间的点对点关系用图维护,怎么判断两人是否是朋友:求朋友圈的个数 XX市有多少钢琴调音师傅?(费米问题) 范围1到1000的数,原本有1000个,互不重复,现多出来1个重复的数,怎么找到它 1-100顺序排列,丢失了一个怎么找到(二分法)…
数据库的索引类型 聚集索引和非聚集索引的区别(叶节点存储内容) 唯一性索引和主码索引的区别 索引的优缺点,什么时候使用索引,什么时候不能使用索引(重点) 索引最左前缀问题 数据库中事务的ACID 数据库隔离性设置不同会出现的问题(脏读.不可重复读.丢失修改.幻读) Mysql有四个隔离级别:未提交读,提交读,可重复读,可串行化. Mysql的优化(高频,索引优化,性能优化) 数据库引擎介绍,innodb和myisam的特点与区别 数据库连接池的作用 讲讲你用过的所有锁,除了互斥锁与读写锁比如自旋…
21.volatile关键字: 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:   (1) 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的.   (2) 禁止进行指令重排序.       volatile只提供了保证访问该变量时,每次都是从内存中读取最新值,并不会使用寄存器缓存该值—每次都会从内存中读取.       而对该变量的修改,volatile并不提供原子性的保证.     …
11.构造方法(构造器): 构造方法是一种特殊的方法,具有以下特点.    (1) 构造方法的方法名必须与类名相同.    (2) 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型.    (3) 构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域.    (4) 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码.    (5) 构造方法可以重载,以参数的个数,类型,…
1.sleep()和wait(): Java中的多线程是一种抢占式的机制,而不是分时机制.抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行.   ● 共同点:    (1) 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回.    (2) wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException.        如果线程A希望立即结束线程B,则可以对线程B对应的Threa…
静态链接库和动态链接库的区别 一个进程可以通过调用waitpid函数来等待它的子进程终止或者停止 Debug和Release的区别 临界区互斥量信号量事件进程互斥与同步 进程有哪几种状态,状态转换图,及导致转换的事件 进程由运行态进入就绪态和阻塞态的原因 进程切换 进程调度算法 死锁 哲学家就餐问题 linux运行时内存映像 通过虚拟地址访问内存的优势 缓存是数据交换的缓冲区(称为Cache) 线程访问某数据 无名管道  FIFO(命名管道)消息队列信号量信号共享内存 1.    静态链接库和动…
指针和引用的区别 extern,const,static,volatile关键字 #define 和const的区别 关于typedef和#define; C++程序中内存使用情况分析(堆和栈的区别) new 与 malloc的异同处,new和delete是如何实现的. C和C++的区别 C++中的重载,重写,重定义(隐藏)的区别: 析构函数一般写成虚函数的原因. 构造函数为什么一般不定义为虚函数 构造函数或者析构函数中调用虚函数会怎样. 析构函数能抛出异常吗 纯虚函数和抽象类 多态的实现条件,…
链表倒转  leetcode-206 连续子数组最大和问题(和最大的连续子序列的和)   leetcode-53 输出字符串中最长的回文子串长度?  leetcode-5 一个字符串,求最长无重复子串的长度?  leetcode-3 最长递增子序列  leetcode-300 反转一个字符串......(手写代码) leetcode-344 数组中存在一个大于n/2次的数,如何以最优方法查找它?LeetCode 169 \ 229 一个字符串中{}  [ ]  ()匹配问题     LeetCo…