10 2019 档案
摘要:频度Tn的最高次幂系数变为1就是时间复杂度; n就是问题规模; 一、简化算法时间复杂度分析 1、用基本操作代替所有原操作执行次数,来计算算法的时间复杂度; 二、简化分析时间复杂度实际分析 1、 2、倍增,时间复杂度是logn,log不写底数默认是2; 3、一元二次方程,解出根号下n的时间复杂度
阅读全文
摘要:一、概念 1、原操作 2、频度 3、时间复杂度 n趋于无穷大时候,Tn比上On是一个常数,变化趋势一样;(On是Tn的最高次幂); 4、时间复杂度表示
阅读全文
摘要:不断进入和其再不断出来的过程; 一、斐波拉契数列 1、递归可以看成是树结构,复杂度是2的n次方 2、斐波拉契数列,for循环求第n个数的值 复杂度就是n,要循环n-2次; 3、递归求第n位的值 复杂度是2^n,比for循环大很多; 二、遍历文件夹 三、快速排序,分而治之 1、里面两个while是满足
阅读全文
摘要:一个算法解决一个问题,算法是无止尽的,重要的是要学会需求分析和画图,再转换成代码实现的编程思想; 一、数组和链表 数组只能通过索引访问元素; 集合,是一个概念,只要能存放数据的容器并能动态大小,都是集合; 1、ArrayList自己实现,基于数组 引用对象赋值实际是赋值的地址值,temp地址值再赋值
阅读全文
摘要:一、概念 二、大数字运算 1、大数字使用数组存储,int和double最大值范围都不够; int是32位,即4个字节,-2^32~2^32-1,20个亿多一点; 2、代码实现 大数字使用数组存储,数组从后往前遍历; 3、封装 num是int型小数字,是需要和数组存储的大数字进行乘运算的整型数字; 三
阅读全文
摘要:一、concurentMap 1、数据结构,分段数组segment不扩容,里面的table扩容,每次翻倍,table中放的是entry链表的头地址; 2、初始化 segment和table的长度都是2的幂次方,方便位运算,位运算扩容之后可以保证原先的元素排列不变; 用于定位元素所在segment。s
阅读全文
摘要:一、Hash 1、md5是hash算法,不可逆,还原的是暴力穷举的方式解析的;加盐之后穷举也不能还原; 2、压缩映射会有重复,即哈希冲突; 二、ConcurrentHashMap 1、putIfAbsent,保证线程安全 复合操作合成一个原子操作 原理: 2、位运算 正数最高位位0,负数为1; 3、
阅读全文
摘要:1、第一个数据源 2、第二个数据源 3、 4、注解实现和数据源切换代码 5、
阅读全文
摘要:1、mysql内置函数加解密aes 2、 3、 4、 5、重复数据 6、 7 查看事务隔离级别 8 9 10
阅读全文
摘要:1、递归遍历设置树结构 找出第一层遍历,在内部递归,递归完了再add进集合 2、递归找出当前节点所有子节点
阅读全文
摘要:2、接收推送的附件 filebody 3、j将自己文件打包,供别人获取 4、获取打包的附件
阅读全文
摘要:一、node概念 1、当线程获取锁失败时,会被打包成一个node放到同步队列中 2、node属性 当线程获取锁失败时,会被打包成一个node放到同步队列中,所以node属性中有一个thread属性; 3、condition中有一个等待队列 二、同步状态获取和释放源码实现 for(;;)自旋,编译后比
阅读全文
摘要:一、模板方法模式 父子类多态,父类中用一个方法调用执行所有所需要的方法; 父类: 子类: 主线程执行时候调用父类的模板方法; 二、AQS思想 sync都是独占锁,lock显示锁也是,只有读写锁是共享锁 三、AQS自己实现锁 1、继承AbstractQueuedSynchronizer,需要覆盖重写几
阅读全文
摘要:一、内置锁sync 和 显示锁lock概念 1、synv锁又叫内置锁,不能中断,拿不到无限等待即阻塞; java自带关键字; 隐式可重入; 重入锁:锁对应对象要多次调用对应方法,如递归 2、 lock的lockinterruptiply意思是可中断的;语言层面的接口; 其实现类reentrantlo
阅读全文
摘要:1、有返回值,用futuretask包装,当作runnable传回创建线程; 2、代码实现 主线程: cancel(true) 中断线程;
阅读全文
摘要:一、概念, 基于处理器指令,把比较和交换合成一个指令完成,保证了原子性; 因为是针对一个内存地址值的,一个内存地址指向一个变量,所以只对一个共享变量能保证原子性; 二、原子操作类 锁只有synchronized和显示锁; cas不是锁,是处理器指令原子操作; 多线程下的cas原子操作,只会有一个线程
阅读全文
摘要:一、countDownLatch 1、计数器,调用await的线程等待计数器的扣除点都扣完了为0时候会继续往下执行; 1.2专门的初始化线程类: 1.2业务线程类: 1.3主线程最大最用是初始化了几个线程: 一个线程可以扣除多个扣除点; 二、CyclicBarrier 1、两个概念区别,Cyclic
阅读全文
摘要:一、fork/join框架 1、分而治之和工作密取概念 工作密取就是A干完了帮B线程干点活,并把结果返回给B; 工作密取时候,A从后面开始拿任务,B从前面,避免资源竞争; 2、代码实现,根据这个框架的标准范式使用 主线程 pool.invoke是同步用法; 3、异步用法 主线程: 异步,主线程执行中
阅读全文
摘要:一、wait、notife、notifyAll 1、 2、 notify就发一个信号,随机给正在wait的线程中一个,不传递; notifyAll发送给所有正在wait的线程信号; 条件允许,使用notifyAll,线程类中重写的run方法做好逻辑判断,使得创建出来的线程不会产生冲突就行; 3、实现
阅读全文
摘要:锁:JVM会在每个对象头上都会有个锁的标志位; 一、synchronized内置锁,java自带关键字,也叫内置锁 二、volatile 1、可见性是保证每次get时候会从主内存刷新一次值到运行内存中,自己运行内存中的值值为无效;set设置值的时候也会同步到主内存中让其他线程可以看到修改; 因为ag
阅读全文
摘要:一、概念和开启线程和中断线程 1、基本概念 上下文切换就是cpu调度分配时间片用在了在线程状态切换了额,越少越好,自旋锁的意义; 2、callable接口方式和futureTask结合,获取返回值,和runable的区别就是返回值; 3、协作式,interrupt不会立即让线程停止,需要慢慢的释放资
阅读全文
摘要:一、概念 redis目录下的1个 bin 目录就是一个redis服务;从机不能添加数据,只会接收主机的拷贝数据; 二、设置主从服务器 1、cp vim 查看正在运行的端口和服务程序按名称过滤:
阅读全文
摘要:java代码操作,redis集成到项目中 先导包,再spring配置jedis连接池; 一、jedis对象使用 二、jedis 连接池使用 选择数据库 三、spring整合
阅读全文
摘要:一、RDB方式,默认方式,一个时间段内数据会一次性操作一下持久化到硬盘文件中,dump.rdb文件; 二、AOF方式,要手动修改,没操作一次都持久化到硬盘文件中,appendonly.aof 文件; 1、修改成aof方式 编辑配置文件后重启: 2、持久化方式对应各自的持久化文件,访问数据的文件来源也
阅读全文
摘要:一、设置key的存活时间 1、失效后 ttl 是 -2,get返回 null ; 2、不设置存活时候 ttl 返回是 -1; 二、查找指令和删除指令、重命名key、查看key类型 1、模糊查询 2、严格匹配是否存在 3、 4、 5、判断key的类型
阅读全文
摘要:有序比无序的更耗性能 一、存取元素 1、添加元素,value存在则替换score值,不存在则添加: 2、获取某个元素的分数 3、 4、获取一定索引区间元素value值,默认按照对应score升序排序: 5、降序 6、不仅查找value,也返回score值; 7、获取指定分数区间的元素和分数信息 8、
阅读全文
摘要:一、set集合无序不重复 二、存取数据 1、 2、 3、 4、set集合差集运算 找出并返回前面集合有后面没有的元素; 5、set集合交际运算 6、并集运算 sunion 7、随机弹出一个元素,因为set集合是无序的; 8、查看set集合所有元素和获取元素个数
阅读全文
摘要:登录redis客户端 一、存取数据 1、左右添加数据 2、读取数据lrange 3、左右固定弹出一个元素 4、列表中个数 5、删除元素值为value的元素 count 值要自己给定: 6、获取和设置指定索引值 7、保留指定索引片段元素,索引区间之外的其他的元素都被剔除: 索引区间左右都包含;索引 -
阅读全文
摘要:一、概念 二、存取散列Hash值 1、 2、JSON字符串存取,没有更新值的字段资源浪费 使用散列Hash存取,可以单独到一个或多个字段; 3、hsetnx,属性不存在就新增并赋值,属性已存在啥也不干 4、取值hget、hmget、hgetall 5、输出字段 6、递增字段数值 7、其他命令 三、电
阅读全文
摘要:一、连接不同数据库和存取String类型值 1、连接数据库 2、set和get多个 3、取值并赋值 取值返回的是赋值改变之前的值; 4、递增和递减 5、字符串尾部加值 6、商品编号自增应用
阅读全文
摘要:一、概念 二、explain 三、sql优化 count(*)包含null值,count(id)不包含null值; 1、子查询优化使用join,不要使用in; 2、group by优化 优化后: 3、索引优化
阅读全文
摘要:一、消费者订阅 用各自的监听器: 去掉public再写一个类: 二、生产者发布
阅读全文
摘要:一、点对点模式 1、receive方法获取 点对点模式,消费者要自己receive方法主动去mq拿消息,或者使用监听器,监听mq,即时获取; 就将生产者的代码生产者对象改成消费者就可以: 这种使用receive方法,消费一条,队列就少一条; 2、监听器模式 消费者代码中: 通过监听器获取的消息之后还
阅读全文
摘要:一、概念 点对点模式,消费者要自己receive方法主动去mq拿消息,或者使用监听器,监听mq,即时获取; 二、代码实现 发送成功: redelivered是未被消费;
阅读全文
摘要:一、打包 二、运行 1、 双击jar包有一个运行的窗口: 2、war包不能运行原因:
阅读全文
摘要:一、第一种就是快速入门那样只启动一个类; 第二种:App运行main方法扫描包: 发布:项目打成jar包,直接运行App中的main方法; @ComponentScan(basePackages= {" ", " "}) ;扫描多个包;
阅读全文
摘要:一、反向代理 二、负载均衡 均衡不同的服务器处理请求,weight就是权重,1比1这边,五五开处理请求;max_fail失败几次就判断是挂了;
阅读全文
摘要:一、概念 分布式,njinx集群部署,不同服务器同一套代码; 微服务是不同的模块不同的服务器,发布新版本不影响其他功能; 二、快速入门 pom.xml只需要导入两个依赖就可以自动导入所有需要的包: @restController:rest风格,参数写在连接里面,不写在问号后面; @ResponseB
阅读全文
摘要:一、概念,key-value缓存数据库,缓解数据库压力,节约系统数据库IO开销,存储类型: 二、前端启动和后台启动 1、前台启动不推荐,其他指令执行不了; 指令:ls查看当前所有文件;pwd当前所在全路径; 2、后台启动推荐; 2.1要拷贝文件redis.conf; 指令:cp 文件 目的路径 2.
阅读全文
摘要:一、传递集合参数 二、和Struts2的区别 Struts2是基于类封装请求参数,SpringMVC是基于方法封装参数;
阅读全文
摘要:一、接收参数几种方式 1、前端页面 2、模型(model/javaBean)接收 定义标准的javaBean 3、包装类,即模型中套了模型
阅读全文
摘要:一、 1、配置 适配器的作用就是规定怎么调控制器; 2、使用 controller代码 三、
阅读全文
摘要:一、action是struts2的控制器,SpringMVC的控制器controller; model也就是javaBean; 固定放的位置和配置文件; 二、快速使用代码 1、导包 2、web.xml配置 3、 controller代码 三、执行原理流程
阅读全文
摘要:一、sql注入现象 拼接产生新的sql语句,里面多了两个 or 关键词,有or这种关键词可能会改变sql语义; 二、预编译防止sql注入 预编译是在传参代替占位符之前,sql语句已经生成确定,传入的只当作参数值,没有关键词等会改变语义;
阅读全文
摘要:一、struts2执行流程 二、架构图 只需要编写黄色部分的代码;
阅读全文
摘要:一、项目框架结构 MVC & Web、service、dao 二、使用代码 访问:
阅读全文
摘要:一、分布式集群,多态服务器相同的代码,均衡压力; 二、 1、导包,ehcache适用mybatis的jar包; 2、映射配置文件中配置: 3、ehcache配置文件 4、使用代码和mybatis自带的 perpetualcache 一样;
阅读全文
摘要:一、一级缓存 1、概念 2、使用代码 有增删改操作时,会自动清除一级缓存: 二、二级缓存 1、没开启二级缓存 没有开启缓存,不同的session获取不同的mapper,会执行两次sql; 2、二级缓存原理: 3、开启二级缓存 全局配置文件中: 映射文件中: 4、使用二级缓存代码:
阅读全文
摘要:一、加载映射文件几种方式 二、mapper接口注解执行sql语句 就将xml中的sql语句放到注解的括号中就可以,一般只用于简单的sql语句合适;
阅读全文
摘要:一、概念 二、快速入门 1、导包搭建环境 要输出到文件中 log4j.rootLogger 要再加个 file; 2、全局配置文件 3、映射文件 4、测试使用代码 “findUserById” 是映射文件中的一个select 标签的 id 属性值;10 是参数;
阅读全文
摘要:一、概念 二、一级缓存 一级缓存,同一个session共享数据,两次获取信息只会执行一次sql语句; 三、二级缓存,默认不使用,需要手动配置开启 持久化对象意思是数据库中存在的模型,自己new的不是; 一般很少被修改的数据才会使用二级缓存,并发访问策略是read-only; 四、EHCache缓存提
阅读全文
摘要:一、悲观锁 二、乐观锁 实体类中加版本标识字段: 映射文件也加: 操作数据会自动判断:
阅读全文
摘要:数据库操作术语 一、配置详解 1、 根据映射关系创建表,不一样的以映射关系为主更新表,update: 2、方言就是指定哪一种数据库
阅读全文
摘要:一、配置自动提交事务,之后不写事务也可以持久化数据 二、
阅读全文
摘要:一、加载核心配置文件方式 二、加载映射文件方式 三、SessionFactory相当于连接池 四、获取session会话 同一个线程中获取的session两种方法获取的是同一个session对象; 不同的线程获取的session对象不同;
阅读全文
摘要:一、 1、核心配置文件 2、实体类 3、对象对应的映射文件 4、持久化数据 运行结果:
阅读全文
摘要:一、概念 hibernate交互数据库时,对象的属性转成sql,mybatis直接写sql,性能更高; 二、
阅读全文
摘要:一、@Transactional 注解的源码,定义属性时给默认值 二、基于注解的事务管理代码实现 1、bean.xml中配置 2、业务实施层的代码注解配置: 其中,配在类上则所有方法都被事务管理,也可配置在单独方法上;
阅读全文
摘要:一、手动管理和半自动工厂模式 二、AOP事务管理 1、表达式中,第一个※是返回值所有类型,service包下一个点意思是service包下的类,两个点意思是service包下的类和其子包下的类也包含,括号前面※代表的是所有方法,括号里面点点是方法所有参数; 2、AOP事务管理配置 配置多个切入点(需
阅读全文
摘要:一、事务管理器 整合的不同的操作数据库的持久层框架用对应的事务管理器,导包; 二、事务定义描述,传播行为和隔离级别
阅读全文
摘要:一、bean.xml配置数据源 bean.xml装配bean,依赖注入其属性的时候,对应实体类中属性一定要有set方法, 二、读取配置文件配置数据源 1、配置文件 bean.xml配置: classpath就是src目录下,${ } 当作是Spring表达式,获取properties文件中对应的数据
阅读全文
摘要:一、 c3p0和dbcp区别 二、导包 hibernate通过映射自动创建表; 三、代码实现
阅读全文
摘要:1.service方法有返回值 + 无异常 + XML ***************************************1.前置通知...deleteUser2.环绕通知...开启事务...deleteUser通过id删除用户3.后置通知...deleteUser返回值:14.环绕通知
阅读全文
摘要:一、基于xml 执行的切入点中具体方法有返回值,则方法结束会立即执行后置通知,然后再执行环绕通知的放行之后的代码; 2、连接点即所有可能的方法,切入点是正真被切的方法,连接点方法名: 其中,只有环绕通知的切入点参数不一样,是可以放行的切入点; 3、异常通知是处理异常; 切面类中的异常通知的方法参数列
阅读全文
摘要:一、导包 二、bean.xml配置 三、环绕通知 四,表达式
阅读全文

浙公网安备 33010602011771号