java基础知识
面向对象
多态(重写、重载),继承,封装,抽象
hashCode
主要为了查找的快捷性(hashMap hashtable等,equals也可以用) 如果equals重写hashCode也要重写
容器的继承关系
 Hashtable线程安全,hashMap线程不安全 Vector线程安全 其他list线程不安全 Set都是不安全的,用CopyOnWriteArraySet创建是安全的
LinkedList增删改效率高,基于链表,线程安全 ArrayList查询效率高,基于数组,线程不安全,用于快速随机访问 Array是数组,arrayList是它的升级版,可以存放不同类型的元素(因为存的是object) Vector:非常类似ArrayList但是是同步的 Stack:继承自Vector HashSet 不保证顺序,可以至多有一个null HashMap 存储键值对,用键值对计算hashCode,比hashset快
异常

死锁
互斥条件(排他性使用),请求和保持条件(进程已经获取了一个资源,还要获取另一个,获取不到就不放目前持有的资源),不剥夺条件(进城已获得的资源只能在使用完后自己释放),火炉等待条件(发生死锁时必然有一个进程-资源的环形链)
文件链式存储

关键字
static:static方法就是没有this的方法,方便在没有创建对象的情况下进行调用 final:定义变量的话在赋初值后不能修改,定义类的话类不能继承
设计模式
单例模式
 分为懒汉模式和饿汉模式,懒汉模式线程不安全
观察者模式
被观察者是同一个父类的子类,观察者内部有被观察者的列表,在需要时可以依次调用所有被观察者的某方法进行操作(对被观察者的通知)   
装饰模式
父类中的方法较简单/通用,子类在继承时在内部创建父类的实例,并在重写方法时对父类的方法进行扩展  
适配器模式
某类在执行其中某函数时需要调用其他类中的函数,因此创建专用函数用于调用其他类的实例,并在其他函数中使用该实例的函数  
工厂模式
  
代理模式
一个类可能要实现多种功能,因此首先创建一个接口,所有的类继承于这个接口,每个类中只实现一部分功能   
算法
常用排序算法
二分查找
元素必须有序,不停的和中间的元素比
冒泡排序
len-1趟 重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来 
插排
只走一趟 对于序列的每一个值和后一个相比,如果逆序则对调,每次对调后依次与前面的值相比,如果逆序则不停对调直到完成排序。 
简单选择排序(选最小)
给定数组 int[] arr={里面n个数据};第1趟排序,在待排序数据arr[0] ~ arr[n-1]中选出最小的数据,将它与arrr[0]交换;第2趟,在待排序数据arr[1] ~ arr[n-1]中选出最小的数据,将它与r[1]交换;以此类推,第i趟在待排序数据arr[i-1]~arr[n-1]中选出最小的数据,将它与r[i-1]交换,直到全部排序完成。
快排
选定基准值,所有比基准值小的去一边,大的去另一边 
最短路径算法
Floyd
邻接表中只记录最短路径长度,不记录最短路径的细节,如果不连通用无穷大表示;更新n次表即得到最终结果
Dijkstra
维护一个最短路径集合,不停的找距离集合最近的点加入,最开始加入的点是初始点 
树的遍历算法
先序
递归:先左后右 非递归:根节点入栈,然后循环,指针首先指向栈底,每一轮循环栈底出栈,并输出,再将指针指向的结点右、左结点依次入栈,指针指向top– 
中序
递归遍历时先遍历左,再输出当前,再遍历右 非递归遍历时同上
后序
递归遍历时先依次遍历左右结点,再输出当前 非递归遍历时给每个结点一个标记,只有遍历过它的所有孩子结点后才能置零,标志为0被遍历时才能输出,否则依次将它的左右孩子结点入栈并将标志位置零不输出。
广度
用队列实现
计网
常见网络异常
400 请求无效 408 请求超时 305 使用代理 
三次握手
 
四次挥手
 
http和https
HTTP 的方法:get post head put delete connect option(获取服务器支持的请求方法) trace(测试诊断) http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议,端口不一样,是不同的连接方式,http无状态协议,https是由ssl+http构建的可进行加密传输,身份认证的网络协议 http工作原理(基于TCP实现的): 
滑动窗口
用于网络传输时候的拥塞控制,避免网络拥堵
常见网络协议
应用层:HTTP FTP SMTP POP3 会话层:SSL 运输层:TCP UDP  网络层:IP ICMP 数据链路层:ARP
在浏览器中输入url地址 ->> 显示主页的过程
1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束
数据库
删表用drop 改表用alert 索引: 1.聚集索引(主键索引):在数据库里面,所有行数都会按照主键索引进行排序。 2.非聚集索引:就是给普通字段加上索引。 3.联合索引:就是好几个字段组成的索引,称为联合索引。
|