- 博客(166)
- 资源 (3)
- 收藏
- 关注
转载 AOP的动态代理原理
一直好奇~所以看了一些博客~总结一下:https://blog.csdn.net/dreamrealised/article/details/12885739 AOP的源码中用到了两种动态代理来实现拦截切入功能:jdk动态代理和cglib动态代理。两种方法同时存在,各有优劣。jdk动态代理是由java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的...
2018-07-15 23:35:27
1174
转载 Maven工具的基础知识
动手操作一下:在Intellij Idea中使用Maven创建Spring&SpringMVC项目https://eason-yang.com/2016/08/03/use-maven-to-create-a-spring-springmvc-project-in-intellijidea/或者直接新建一个SpringWeb项目 同样的效果~...
2018-07-10 16:37:30
164
原创 左(进阶)算法----数据结构自设计 / 跳表
设计可以变更的缓存结构:思路:设计结构 map---储存对应的位置 + 双向链表---维持优先级还有size的限制 ----如果超过个数限制 ---则将头节点删除 并 从中找到map对应的记录(因为节点中含有map中的key)将新加入节点连在双向链表后面即可~代码实现:设计的缓存结构:注意:map 中 存值 具体和数值类型有关map 中 存放 基础类型 则就是具体的值 ...
2018-07-08 13:01:27
748
转载 生产-消费者模式
背景生产者消费者模式是可以通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生...
2018-06-30 10:35:14
324
转载 分布式(网站架构演化)
一. 大型网站架构演化1.1 大型网站架构特点高并发、大流量高可用海量数据:需要存储、管理海量数据,需要使用大量服务器。用户分布广泛,网络情况复杂安全环境恶劣:由于互联网开放性,使得网站容易受到攻击。需求快速变更,发布频繁渐进式发展1.2 大型网站架构演化过程初始阶段的网站架构: LAMP应用服务和数据服务分离:用户越来越多导致存储空间不足,整个网站使用三台服务器,应用服务器、文件服务器和数据库服...
2018-06-30 10:32:51
760
转载 集合
集合框架Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection: 是单列集合 List: 元素是有序的(元素存取是有序)、可重复. 有序的 collection,可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。可存放重复元素,元素存取是有序的。List接口中...
2018-06-30 10:28:34
339
转载 MySQL存储引擎 优化 索引问题
https://github.com/CyC2018/CS-Notes/blob/master/notes/MySQL.md 存储引擎的区别InnoDB: 支持事务,是面向在线事务处理(OLTP)的应用,特点是行锁设计,支持外键,并支持一致性非锁定读,即默认情况下读取操作不会产生锁.是默认的存储引擎:.还提供了插入缓冲,二次写,自适应哈希索引,预读等高性能和高可用的功能.MyIS...
2018-06-30 10:27:24
1112
原创 左 . 进阶算法---单调栈
单调栈:问题描述:给定一个数组 请确定每个元素左右距离最近的比它大的数字常规想法: 到某一个元素时 通过两个for 分别获取其左边比它大的和右边比他大的数字 时间复杂度为O(n2)最优解思路(单调栈):1 一个按照从大到小顺序排序的栈结构 若在压栈过程中发现要压栈的元素和栈顶的元素相比要大 则弹出当前栈顶元素 并从开始弹出处记录 之后继续弹出的下一个即为距离最近的一个元素注意...
2018-06-28 23:37:46
1713
原创 左 . 进阶算法---KMP算法/BFPRT算法/窗口(双端队列)
KMP算法:常规想法:一个个匹配 时间复杂度太高总结: 我们发现 每次匹配前面的并没有给后面一些指导信息Note: 子串 和子序列不一样 前者是连续的 后者可以是不连续的 注意区分...
2018-06-28 23:21:23
314
转载 Spring问题总结
https://blog.csdn.net/qq_39688352/article/details/77723157 什么是SpringSpring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础...
2018-06-28 19:57:10
369
原创 IDEA 中刚上手遇到的一些小问题汇总
2018.6.18 超级开心 终于解决了两个小问题1 IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除 原因: IDEA默认把项目的源代码版本设置为jdk1.5,目标代码设置为jdk1.5解决方案:1.修改Maven的Settings.xml文件添加如下内容<profiles> <profile> ...
2018-06-18 15:18:32
443
转载 IDEA / git 和github 的新手使用教程
史上最简单的 GitHub 教程https://blog.csdn.net/qq_35246620/article/details/66973794推荐给大家很棒的新手教程: 标记红色的为重要章节:第 1 篇:初识 GitHub · 简介篇第 2 篇:敲开 GitHub 的大门 · 注册账号第 3 篇:GitHub 主页介绍及修改个人信息第 4 篇:创建 GitHub 仓库的步骤及方法第 5 篇:...
2018-06-17 16:00:40
659
原创 Git 工具的下载安装
1 首先,进入 Git 的官网:git - -fast-version-control如上图所示,在 Git 的官网中点击Downloads,进入如下页面:根据操作系统选择合适的版本:2 默认一步步安装即可 需要注意: 到下图所示步骤时,建议选择第二项 3 验证是否成功: 鼠标右键单击 Git Bash here 并在窗口输入git ,出现以下信息:...
2018-06-17 00:11:42
9217
1
原创 java开发环境配置(JDK /Intelli IDEA /Maven/ tomcat)
2018. 6. 15 之前总是习惯eclipse+ tomcat 环境现在公司里用 IDEA +maven+ tomcat 比较多 所以换个工具 慢慢来IDEA下载 安装1 进入官网下载 IntelliJ IDEA 可执行文件:https://www.jetbrains.com/idea/如上图所示,进入“Download IntelliJ IDEA”页面,显然咱们可以看到 IntelliJ ...
2018-06-15 23:47:20
1483
原创 左 . 进阶算法---KMP算法
KMP算法:常规想法:一个个匹配 时间复杂度太高总结: 我们发现 每次匹配前面的并没有给后面一些指导信息Note: 子串 和子序列不一样 前者是连续的 后者可以是不连续的 注意区分...
2018-06-14 20:51:19
1510
2
原创 左 . 算法--- 前缀树/贪心策略/递归/ 动态规划专题
前缀树:举例: 如图所示 路径上标的是字符串中单个字符 升级 1(查找是否有特定字符串):如果要查找"de"前缀的字符串,很好做到 但是查找是否有"de"字符串就不太好确定 (因为和"def"类似的结构是相同的)所以 在刚才的基础上 在每个节点加上计数器 如果以此节点为末尾节点 则+1 升级 2 ( 确定含有特定前缀的字符串个数 ):就在每个节点处开辟另一个参数区域 用来...
2018-06-06 22:12:51
837
原创 左 . 算法---哈希函数/哈希表/布隆过滤器/一致性哈希算法 专题
哈希函数:常见的功能就是 打乱分布 均匀随机 输入无穷大 输出却在一定范围内 即使出现碰撞 但是每个输出对应的输入个数 概率均匀分布 没有太大偏向一个重要的性质: 如果在input域上均匀分布 那么经过哈希并%m 运算后(在0~m-1范围内) 在输出域上同样均匀分布 哈希表:经典结构:根据key算出具体的hashcode值(h)--...
2018-06-04 22:36:06
1146
3
转载 编译型语言与解释型语言
前提:计算机底层只能识别(并执行)0、1序列的机器码,这表示所有的高级编程语言所编写的代码,最终都要以某种方式被转换成能被计算机识别的0、1序列机器码,方可被计算机接受并执行。那么这种将代码转换为机器码的方式就分为编译型和解释型这两类,两者方式只是在翻译的时间不同。主要是二者的翻译时间不同:编译型语言,写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运...
2018-05-31 15:08:30
231
原创 左 . 算法---排序 /栈队列/链表 专题
排序: 7大排序算法冒泡排序: 时间O(n2) 额外空间O(1) 选择排序 时间0(n2)原理就是 :在 0-n-1中找最小 -----放在位置0上 在1--n-1中找最小 -------放在位置1上 ...... 总结:选择排序和冒泡排序的排序方法与数据的状况无关 无论哪种情况总是...
2018-05-28 17:51:51
698
原创 数据库sql 实战----牛客实战题库
1 查找最晚入职员工的所有信息 select * from employees where hire_date=(select max(hire_date) from employees); select * from employees order by hire_date desc limit 0,1; //LIMIT m,n : 表示从第m+1条开始,取n条数据;CREATE T...
2018-05-20 22:41:08
547
原创 《剑指offer》------回溯法专题
矩阵中的路径:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b...
2018-05-20 21:45:48
473
原创 《剑指offer》------字符串/数组专题
package com.duoduo.day329;/* * 一个二维数组,每一行从左到右递增,每一列从上到下递增.输入一个二维数组和一个整数,判断数组中是否含有整数。 */public class ArrSearch { public static void main(String [] args) { int [][] arr= {{1,2,8,9},{2,4,9,12},{4...
2018-05-19 17:46:17
475
转载 Java 正则表达式
转载自 https://blog.csdn.net/yuanhengzhw/article/details/79192450 https://blog.csdn.net/Code_Hu/article/details/79255188一、正则表达式概念正则表达式(英语:Regular Expression,在代码中常简写为regex)。 正则表达式是一个字符串,使用单...
2018-05-19 16:13:06
759
原创 事务 (特性 / 隔离级别)
一、Mysql事务事务:事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。例如:A——B转帐,对应于如下两条sql语句 update account set money=money-100 where name=‘a’; update account set money=money+100 where name=‘b’; 1、Mysql中的事务a、mysql引擎是支持...
2018-05-15 22:05:08
270
原创 Spring4.x (配置连接池 /事务管理 /事务配置)
目录:源码:JdbcTemplate jdbcTemplate =new JdbcTemplate(dataSource);根据源码 注入对象:具体如下:XML:测试结果:补充:具体如下:XML:测试结果:效果是:出现异常 事务不会出现一方成功 另一方失败的情况...
2018-05-15 21:44:33
1036
原创 Spring4.x (基于aspectj的注解AOP操作 / jdbcTemplate)
目录:基于aspectj的注解aop:具体如下:XML:测试类:补充:Spring的jdbcTemplate操作:jdbcTemplate的CRUD操作:增加:如下:具体如下:数据库test--user表:修改:删除:查询:具体:回忆JDBC的底层代码:具体:具体:具体同上...
2018-05-15 16:57:41
462
原创 interview for chinaPay
想了半天 还是chinaPay最直观一点地点:皇后大酒店时间:2018 .5 .14 上午9点半---11点半这是第一次正式意义上的国企,非互联网机构面试。听说有技术群面,好奇什么样的流程,从早上6点起床奔波到面试场地,填表签到,累到不行。昨下午笔试,晚上发面试通知, 第二天早上面试,时间赶的不行。昨晚脑袋又不好使,稀里糊涂的准备着材料,电子扫描版,纸质版。群面:10个技术岗,非技术岗混杂在一起进...
2018-05-14 16:32:02
175
原创 Spring4.x (注解 / AOP原理 /基于aspectj的xml方式 /动态代理 / log4j)
目录:注解:Spring注解开发准备:新约束的位置如下:内容如下: 复制粘贴即可:注解创建对象:XML配置文件:测试:注解注入属性::具体如下:两个user类:配置文件:测试方法和结果:具体如下:标黄色区域与Dao中注解的value值必须保持一致:若是采用不一致 则出现错误:日志显示错误:配置文件和注解混合使用:具体如下:两个类:含有两个对象属性的类:XML:测试:AOP:...
2018-05-13 17:31:43
723
原创 Spring4.x 入门( ioc 底层原理/bean管理/ 注入对象类型)
由最初创建对象的方式new -----采用简单工厂模式来生成对象--------IOC底层原理:下图就是IOC的底层原理(用到xml文件配置+ 工厂模式+ dom4j解析xml文件+ 反射生成对象)SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径:htt...
2018-05-11 17:38:36
1154
2
原创 设计模式5--观察者模式
定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知,并自动更新JDK内置:使用JDK中的观察者模式,只能是使用 被观察者类 (Subject) 继承自Observable类,观察者类 实现Observer接口来实现UML类图:抽象的被观察者(Subject主题):package com.duoduo.Observer;//抽象的被观察者(主题)publi...
2018-05-10 16:16:09
259
原创 设计模式4--工厂模式 (Executors 线程池用到)
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。 抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 一个抽象工厂类,可...
2018-05-10 10:55:02
2688
原创 多线程----多生产者多消费者(点餐小程序demo)
场景:来快餐店点汉堡 假如同时有多个点餐者和多个生产者 则可以设定在生产一些汉堡之后开始消费 而不是简单的 生产一个即消费一个的固定模式使用最爱的lock 和 Condition : package com.duoduo.Thread;import java.util.concurrent.locks.Condition;import java.util.concurrent.lo...
2018-05-09 15:02:38
1158
原创 多线程----FutureTask(异步计算结果)
FutureTask:三种状态:FutureTask.get()/ cancel()方法:使用: 因为实现了Runnable接口,则也可以交给Executor执行~代码实例:实现原理:基于AQS(队列同步器) 实现原理图:FutureTask.get()方法的底层源码:FutureTask.run()方法的底层源码:FutureTask的级联唤醒图:...
2018-05-08 20:54:03
2275
1
原创 多线程----ScheduledThreadPoolExecutor 定期(延迟)执行任务
ScheduledThreadPoolExecutor :运行机制:做出的修改:DelayQueue任务队列:实现:具体方法源码:take():add()/offer():
2018-05-08 17:09:42
3413
原创 多线程----线程池核心类 ThreadPoolExecutor
ThreadPoolExecutor 4 个组件: 3种不同的实现类:FixedThreadPool:SingleThreadExecutor:CachedThreadPool:
2018-05-08 15:23:27
1330
原创 多线程----Executor框架结构和成员
Executor 框架的两级调度模型:Executor框架的结构:3部分组成:涉及到的类和结口:Executor框架的使用示意图:Executor框架的成员:
2018-05-08 11:55:51
263
原创 多线程----线程池基础原理(创建提交关闭配置)
线程池:线程池的好处(为什么要用ThreadPool):实现原理:ThreadPoolExecutor:执行示意图:执行execute方法的4种情况:execute底层代码实现:线程执行任务示意图:线程池的创建:向线程池提交任务:两种提交方法:execute / submit 关闭线程池: 合理的配置线程池:监测线程池:...
2018-05-08 09:56:27
379
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅