算法
- 快排
public class Main{
public int part(int[] nums,int l,int r){
int tmp = nums[l];
while(l<r){
while(l<r &&nums[r] >= tmp)r--;
nums[l] = nums[r];
while(l<r && nums[l] <= tmp)l++;
nums[r] = nums[l];
}
nums[l] = tmp;
return l;
}
public void QuickSort(int[] nums,int l,int r){
if(l<r){
int tmp = part(nums,l,r);
QuickSort(nums,l,tmp);
QuickSort(nums,tmp+1,r);
}
}
}
- 重载运算符:
java不支持重载运算符;
C++可以重载运算符。
数据库
mysql的两种搜索引擎
- InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件 本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效率很高。但是辅助索引需要 两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他 索引也都会很大。
- MyISAM是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引保存的是数据 文件的指针。主键索引和辅助索引是独立的
操作系统
线程通信:
- 多个线程监听同一个 v o l a t i l e volatile volatile关键字。
- 等待、通知机制(Object.wait/Object.notify)
- join方式
- threadLocal
进程的socket套接字通信具体是怎么样的
浏览器输入URL到返回页面过程
- 域名解析(DNS解析IP)
- TCP连接,浏览器给服务器发送一个HTTP请求
- 服务器返回HTTP响应
- 浏览器渲染HTML
- 断开连接
面向对象
特征
- 封装
- 继承
- 多态
other
-
new的过程:
- 首先常量池中找到类的带路径全名,然后检查对应的字节码是否已被加载、解析、验证、初始化,如果没有,先加载类。
- 虚拟机为对象分配内存。
+ 指针碰撞
+ 空闲列表 - 设置对象头信息:元数据信息、哈希码、GC分代年龄。
- 调用对象 i n i t init init方法,根据传入的属性值给对象赋值。
- 在线程中新建对象引用,并指向堆中刚刚新建对象实例。
-
hashMap底层实现(顺序表+链表+红黑树)TreeMap也用了红黑树
-
父类子类执行顺序
-
String/StringBuilder/StringBuffer
-
synchronized
-
String不可变原因
-
final关键字
-
异常
-
CAS
-
多线程插入数据库
-
MyBites
-
sql优化
状态码
1 信息,服务器收到请求,需要请求者继续执行操作
- 100:继续,客户端应该继续请求
- 101:切换协议,服务器根据客户端的请求切换协议,只能切换到更高级的协议
2 成功,操作被成功接收并处理
- 200:请求成功
- 201:已创建,成功请求并创建了新的资源
- 202:已接受,已经接收请求,但未处理完成
- 203:非授权信息,请求成功。但返回的meta信息不在原始的服务器,而是一个副本
- 204:无内容,服务器成功处理,但未返回内容。在未更新网页情况下,可确保浏览器继续显示当前文档
- 205:重置内容,服务器处理成功,浏览器应该重置文档视图
- 206:部分内容,服务器成功处理部分get请求
3 重定向, 需要进一步操作以完成请求
- 300: 多种选择,请求资源包含多个位置,相应可返回一个资源特征与地址的列表用于用户终端
- 301:永久移动
- 302:临时移动
- 303:查看其他地址
- 304:未修改
- 305:使用代理
- 306:已经被废弃的http状态码
- 307:临时重定向
4 客户端错误,请求包含语法错误或无法完成请求
- 400:客户端请求语法错误
- 401:请求要求用户的身份认证
- 402:保留,将来使用
- 403:服务器理解请求客户端的请求,但拒绝执行此请求
- 404:服务器无法根据客户端的请求找到资源
- 405:客户端请求的方法被禁止
- 406:服务器无法根据客户端请求的内容特性完成请求
- 407:请求要求代理的身份认证
- 408:超时
- 409:服务器完成客户端的put请求可能返回此代码,服务器处理请求时发生冲突
- 410:客户端请求的资源已不存在
- 411:服务器无法处理不带Content-Length的请求信息
- 412:客户端请求信息的先决条件错误
- 413:请求实体过大,服务器无法处理,拒绝请求
- 414:请求url过长,服务器无法处理
- 415:服务器无法处理请求附带的媒体格式
- 416:客户端请求的范围无效
- 417:服务器无法满足Expect的请求头信息
5 服务器错误,服务器在处理请求的过程中发生了错误
- 500:服务器内部错误
- 501:服务器不支持请求的功能
- 502:作为网关或者代理工作的服务器尝试执行请求时,从远程服务器收到一个无效的响应
- 503:由于超载或系统维护无法处理客户端的请求
- 504:充当网关或者代理的服务器未及时从服务器获取请求
- 505:服务器不支持请求的http协议的版本,无法完成处理
JVM
运行时数据区
- 方法区
- 堆
- 虚拟机栈:线程私有
- 本地方法栈:线程私有:为Native方法服务
- 程序计数器:线程私有
引用
- 强引用
- 弱引用
- 软引用
- 虚引用
框架
Spring
其他问题
- 网站压力测试:大佬文章
未完待续 温故知新 未央书斋