diff --git a/基础知识学习笔记/初级算法篇/img.png b/基础知识学习笔记/初级算法篇/img.png new file mode 100644 index 0000000..5b40bba Binary files /dev/null and b/基础知识学习笔记/初级算法篇/img.png differ diff --git a/基础知识学习笔记/初级算法篇/img_1.png b/基础知识学习笔记/初级算法篇/img_1.png new file mode 100644 index 0000000..5533a02 Binary files /dev/null and b/基础知识学习笔记/初级算法篇/img_1.png differ diff --git a/基础知识学习笔记/初级算法篇/img_2.png b/基础知识学习笔记/初级算法篇/img_2.png new file mode 100644 index 0000000..40e436d Binary files /dev/null and b/基础知识学习笔记/初级算法篇/img_2.png differ diff --git a/基础知识学习笔记/初级算法篇/img_3.png b/基础知识学习笔记/初级算法篇/img_3.png new file mode 100644 index 0000000..c94482d Binary files /dev/null and b/基础知识学习笔记/初级算法篇/img_3.png differ diff --git a/基础知识学习笔记/初级算法篇/img_4.png b/基础知识学习笔记/初级算法篇/img_4.png new file mode 100644 index 0000000..cb0581f Binary files /dev/null and b/基础知识学习笔记/初级算法篇/img_4.png differ diff --git a/基础知识学习笔记/初级算法篇/数据结构.md b/基础知识学习笔记/初级算法篇/数据结构.md new file mode 100644 index 0000000..e8e5860 --- /dev/null +++ b/基础知识学习笔记/初级算法篇/数据结构.md @@ -0,0 +1,3 @@ +### 二叉树 +>- 父=子/2 +>- 2*i 2*i+1 \ No newline at end of file diff --git a/基础知识学习笔记/初级算法篇/算法.md b/基础知识学习笔记/初级算法篇/算法.md index e069ada..e9b3a03 100644 --- a/基础知识学习笔记/初级算法篇/算法.md +++ b/基础知识学习笔记/初级算法篇/算法.md @@ -13,6 +13,8 @@ ### 不带符号右移>>> + + diff --git a/基础知识学习笔记/初级算法篇/高级算法.md b/基础知识学习笔记/初级算法篇/高级算法.md new file mode 100644 index 0000000..6cdb221 --- /dev/null +++ b/基础知识学习笔记/初级算法篇/高级算法.md @@ -0,0 +1,16 @@ +### 线段数 +>- 区间数的操作,增加更新查询 +>- 用树表示累加和,将数组拆分为二叉树,利用数组实现二叉树 +>- ![img.png](img.png) +>- ![img_1.png](img_1.png) +>- 准备4倍N的临时数组:因为最后一层为2N个数,前面也为2N个数 + +### 懒更新 +>- ![img_2.png](img_2.png) +>- 在树结构中,把规定下标的数增加 +>- 找到包含所有片段的树节点 +>- 创建懒更新信息数组,在需要增加的数组上填充数字 +>- ![img_3.png](img_3.png) +>- 当新任务来的时候,把懒信息向下层发送,然后清空 +>- 执行新任务 +>- ![img_4.png](img_4.png) diff --git a/基础知识学习笔记/编程知识/img_3.png b/基础知识学习笔记/编程知识/img_3.png new file mode 100644 index 0000000..220e5de Binary files /dev/null and b/基础知识学习笔记/编程知识/img_3.png differ diff --git a/基础知识学习笔记/编程知识/语法知识.md b/基础知识学习笔记/编程知识/语法知识.md index 363b60a..78de14d 100644 --- a/基础知识学习笔记/编程知识/语法知识.md +++ b/基础知识学习笔记/编程知识/语法知识.md @@ -23,4 +23,18 @@ Integer.MAX_VALUE 2^31-1 ### 对象创建过程 >- 分配空间 +### String +>- String是final修饰,新对象,线程安全 +>- stringBUffer是线程安全的 +>- StringBUilder 不是线程安全的 + +### GC算法的理解 +>- 标记清除算法 +>- 标记复制算法 +>- 标记整理算法 + +### hashmap扩容 +>- ![img_3.png](img_3.png) +>- 在扩容时会出现死循环 +>- diff --git a/高级知识/云计算/img.png b/高级知识/云计算/img.png new file mode 100644 index 0000000..b8dc68e Binary files /dev/null and b/高级知识/云计算/img.png differ diff --git a/高级知识/云计算/img_1.png b/高级知识/云计算/img_1.png new file mode 100644 index 0000000..a49e80b Binary files /dev/null and b/高级知识/云计算/img_1.png differ diff --git a/高级知识/云计算/img_2.png b/高级知识/云计算/img_2.png new file mode 100644 index 0000000..4ba8989 Binary files /dev/null and b/高级知识/云计算/img_2.png differ diff --git a/高级知识/云计算/基础知识.md b/高级知识/云计算/基础知识.md new file mode 100644 index 0000000..c43774d --- /dev/null +++ b/高级知识/云计算/基础知识.md @@ -0,0 +1,38 @@ +### AWS云计算 +>- 计算能力,网络能力,安全能力 +>- 共享资源,按需付费 +>- 互联网基础服务 +>- Amazon Web Services +![img.png](img.png) +>- iass paas saas + +### 虚拟机 +>- 规定的硬件资源中,虚拟服务器 +>- 能模拟多服务器运行的事务 +>- 安全性,隔离性不影响其他虚拟机 +>- 支撑不同的功能 +### 容器 +>- docker把服务的运行环境以及相应的应用程序都封装在容器中了 +>- 减少系统环境维护dev——op 开发测试一体化 +>- kubernetes 容器管理系统 + +### openstack +>- 能够对虚拟进行系统管理,新增,删除,监控,提高效率 +>- 做成Iaas 基础设施即服务,把服务器交给别人使用 + +### Doceker +>- 容器化平台,在各系统上运行 +>- 运行、暂停、重启、退出 +>- ![img_1.png](img_1.png) + +### Mycat +>- 大数据库集群,高可靠性 +>- 数据库中间件产品 +>- ![img_2.png](img_2.png) +>- 能够解析、聚合、排序合并 +>- 对sql进行解析、优化、路由 +>- 高可用性,高读写性能分级存储 + +### MongoDB +>- 能够保存JSON文件 +>- 推送Kafka \ No newline at end of file diff --git a/高级知识/简历中的知识体系/Spring知识.md b/高级知识/简历中的知识体系/Spring知识.md new file mode 100644 index 0000000..c2c8b87 --- /dev/null +++ b/高级知识/简历中的知识体系/Spring知识.md @@ -0,0 +1,4 @@ +### bean对象 +>- 通过依赖注入,放入单例池子 + +### AOP \ No newline at end of file diff --git a/高级知识/简历中的知识体系/网络编程.md b/高级知识/简历中的知识体系/网络编程.md index d047180..412b36a 100644 --- a/高级知识/简历中的知识体系/网络编程.md +++ b/高级知识/简历中的知识体系/网络编程.md @@ -66,6 +66,24 @@ TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系 ![img_4.png](img_4.png) +### TCP/IP +>- 报文+报头 +>- 三次握手 ,客户开始,保证能够确立连接 +>- 四次挥手结束 + +### Redis +>- 数据类型int raw embstr list hash set +>- 缓存雪崩,通过随机设置Redis key失效时间解决大量缓存同时失效的问题 +>- 数据穿透:redis没有id,直接访问数据库,会在高并发情况挂掉,利用校验进行过滤 +>- 将redis,mysql搭建成高可用的集群,防止单点 +>- 10万/秒 + +### 消息队列 ActiveMQ RabbitMQ RocketMQ kafka,中间件 +>- 优点,解耦,异步处理,流量控制(秒杀),服务解耦 +>- 解决上下游速度不一致的问题,起到缓冲的作用 + +### 自增Id用完了怎么办 +>- 重新循环INdb,覆盖原来的值 diff --git a/高级知识/高级开发面试/img_1.png b/高级知识/高级开发面试/img_1.png new file mode 100644 index 0000000..46cd20a Binary files /dev/null and b/高级知识/高级开发面试/img_1.png differ diff --git a/高级知识/高级开发面试/多线程.md b/高级知识/高级开发面试/多线程.md index 2041342..c171533 100644 --- a/高级知识/高级开发面试/多线程.md +++ b/高级知识/高级开发面试/多线程.md @@ -29,4 +29,40 @@ ### markword >- 记录锁信息,记录回收次数 ->- 记录偏向锁 \ No newline at end of file +>- 记录偏向锁 + +### 线程的基本周期 +![img_1.png](img_1.png) + +### threadLocal +>- 获取线程map资源,进行事务操作,获取信息 + +### 并发特性 +>- 原子性,有序性,可见性(volatile)cpu + +### spring中的设计模式 +>- 工厂模式: BeanFantory用来创建对象,在工厂里面创建对象,管理对象周期 +>- 单例模式: Spring中的Bean 默认为单例 +>- 装饰器模式: Beanwrapper 访问Bean的属性和方法 +>- 策略模式: Bean的实例化策略 +>- 代理模式: AOP的AOPProxy 代理字节码生成技术,静态代理,动态代理。 + +### 线程池 +>- 重量级资源 +>- 生产者消费者模式,解耦,异步,增加性能 +>- 缺点:不能有大量数据交换 + +### 处理死锁 +>- 锁资源互斥,死循环 +>- 顺序加锁 +>- 加锁超时时限 +>- 死锁检测 + +### 定位内存泄露 +>- OOM + +### AQS线程等待队列 +>- state 变量 volatile修饰,表示同时允许多少给线程获取锁 +>- 使用CAS方法获取state + +### 多线程wait,notify,notifyALl线程等待 diff --git a/高级知识/高级开发面试/设计模式.md b/高级知识/高级开发面试/设计模式.md index 58dcc1d..12b9317 100644 --- a/高级知识/高级开发面试/设计模式.md +++ b/高级知识/高级开发面试/设计模式.md @@ -7,4 +7,12 @@ ### DCL双重判断 double check lock >- 防止上锁时候被其他线程操作 +### Redis +>- 高新能非关系数据库,采用Redis实现分布式缓存 +>- 提高数据操作效率 +### zookeeper的理解 +>-分布式管理,分布式中间件 +> 协调分布式集群管理,保证一致性 +> 分布式锁 +> master选组,管理节点信息,主从选举