自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洛豳枭薰

最好的年华为最初的梦想尽最大的努力

  • 博客(126)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mybaits无法加载Xml文件

可以将接口与xml组合的方式<!-- Using classpath relative resources --><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper...

2019-12-22 16:43:25 297

原创 Eclipse+Maven+mybaits简单实例

文章目录一、数据库二、eclipse maven建立Java Web项目三、Web Demo1、实体类2、DAO接口和DAOImp实现类3、逻辑层4、控制器四、mybaits Demo1、pom.xml2、mybaits.xml3、flowerDaoImp.xml4、测试showAll 方法一、数据库CREATE TABLE `flower` ( `id` int(20) NOT NUL...

2019-12-18 21:18:20 432

原创 编写servlet的404历程

文章目录1、首先是项目结构2、代码(1)HelloWorld(2)web.xml3、404解决(1)查看当前servlet包名类名引用是否正确(2)路径因是否正确(3)查看tomcat是否部署在eclipse中4、最后感谢党1、首先是项目结构2、代码(1)HelloWorldpackage com.robin;import java.io.IOException;import ja...

2019-11-20 16:22:22 327

原创 Spring Aop Demo

文章目录一、aop二、xml方式1、定义接口类2、具体实现类3、切入类4、xml配置方式5、test二、Config配置方式1、配置类2、testeclipse 如何自动新建bean.xmlnew–>others–>spring Bean Configuration File–>命名一、aop1、 aop面向切面有两种方式:1 接口代理 2 cglib代理2、由于...

2019-11-11 10:43:59 405

原创 redis-实现商品交易

文章目录一、结构设计二、用户挂卖商品三、购买商品四、test一、结构设计1、需要设计用户存储结构hash,来存放当前用户具有的金钱数2、设计用户包裹set,里边存储了用户的所有商品3、设计交易区market:zset集合来存储,存储格式为item.user price用户流程:1、将自己拥有的商品放置到贸易区,并设定一定的价格,在放置过程中需要去查看当前商品是否有变动,因为redis...

2019-10-22 10:28:10 288

原创 reids 模仿消息队列

文章目录一、消息队列二、Jedis资源池生成实例三、生产者四、消费者参考一、消息队列消息队列简单来说就是一个消费者生产者模型,消费消费资源,生产者生产资源,如何通过redis来实现消息队列,会发觉redis中list结构很适合处理这类问题,list类型可以用来在商城系统中表明某一个流程,将一个个流程以lpush的方式放入到list中,将结束的流程以rpop的方式结束当前路程。二、Jedi...

2019-10-21 15:51:44 119

原创 redis实战--文章投票

确定投票系统结构1、hash来存储文章key:article:110titile:文章标题link:链接votes:投票数user:文章作者2、zset存储文章发布时间3、zset存储文章得分4、set集合存储每一篇文章的投票的用户vote:110user:1user:2考虑生成文章需要将文章属性以Map集合的形式传入到hash结构中,之后在对应score与time添...

2019-10-18 21:27:59 192

原创 代理模式

文章目录一、静态代理二、jdk的动态代理1、实现jdk动态代理2、使用要点(1)为什么jdk动态代理只能针对于接口?(2)为什么调用InvocationHandler会自动执行invoke()函数?(3)为什么匿名内部类使用局部变量需要定义为final?三、cglib的动态代理1、实现cglib动态代理四、参照博客一、静态代理1、比如买房子,首先实现通用接口,buyhouse()2、目标类实...

2019-08-13 09:35:29 133

原创 01背包问题

文章目录一、递归解决背包问题二、动态规划一、递归解决背包问题暴力递归,穷举出所有的可能性,在检索完所有物品,即index=nums.length时候决定是否更新最大值1、当物品体积小于等于当前背包容量,选择放或者不放2、当物品体积大于,只能选择不放该物品//递归解决背包问题 public int getMaxValue(int[] weight, int[] value, int ...

2019-07-23 15:59:20 129

原创 HTTP协议

文章目录一、Http协议过程1、Url输入地址2、DNS解析3、request请求1、请求行2、请求头部3、空行+请求正文(Get无请求正文)4、response请求1、状态行:协议版本、状态码、状态描述2、响应头3、空行+响应正文(HTML网页)5、获取HTML对应的资源(JS、css、图片)6、浏览器对网页进行渲染并显示二、长连接与短连接1、短连接2、长连接三、带流水与不带流水1、不带流水2、...

2019-07-07 21:09:13 160

原创 工厂模式

文章目录一、简单工厂模式Demo二、工厂方法模式1、工厂方法模式简介2、工厂方法模式结构2、Demo三、抽象工厂模式1、抽象工厂方法简介2、抽象工厂方法结构3、Demo一、简单工厂模式简单工厂模式就是为了避免直接new对象,不需要去关注怎么生成该对象,用户只需要传入对应的参数就可以1、Iproduct:定义抽象产品类的公共方法2、Product:定义具体的产品类,实现抽象类中的方法...

2019-07-02 10:27:46 151

原创 观察者模式

文章目录一、观察者模式二、订阅/发布模式(push模式)三、pop模式拉取模式四、标准模式(继承现有接口和抽象类)五、引用一、观察者模式观察者的通俗理解可以参考订阅发布的方式,每一个订阅内容,一旦被观察对象内容改变就会向观察者发送消息,告诉观察者修改了内容或者是观察者获取最新内容Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数...

2019-07-01 16:15:24 169

原创 享元模式

文章目录一、享元模式的意义?二、享元模式结构1、单纯享元模式2、复杂享元模式三、单纯享元模式实现四、复合享元模式实现一、享元模式的意义?享元模式重点在于享,可以理解为分享,String的设计使用到了祥元模式,这个模式存在的意义在于减少创建许多冗余的实例对象,造成OOM错误,比如在电商中,如果客户请求一个商品就需要实例化一个商品对象,之后调用该对象的方方,一定会导致内存爆表的情况,享元模式会判断...

2019-07-01 13:51:51 184

原创 Mysql索引详解

文章目录一、为什么需要索引?(索引的优缺点)1、索引产生的意义2、索引的优缺点二、索引的分类三、B树-数据库索引原理1、B树(平衡多路查找树)2、B+树3、B+树的优势四、聚合索引(InNoDB存储引擎)与非聚合索引(MyISAM存储引擎)1、聚合索引2、非聚合索引3、InNoDB与MyISAM异同五、组合索引(覆盖索引)1、index Key:索引数据范围2、Index Filter :用于过滤...

2019-06-29 21:58:33 8406 3

原创 MySQL锁机制

文章目录一、锁的分类(一)、按粒度划分的锁1、表级锁(偏向于读)2、行级锁3、页级锁(二)、按锁的级别划分1、共享锁(读锁)2、排他锁(写锁)三、MyISAM存储引擎的锁1、支持表锁(偏向于读)2、并发锁2、锁调度四、InNoDB存储引擎的锁(一)支持事务(二)行锁1、共享锁与排他锁2、意向共享锁与意向排他锁3、行级锁(Record lock)导致的死锁4、行级锁的间隙锁(Next-Key loc...

2019-06-26 17:53:29 3445 2

原创 Map集合系列

文章目录一、Map结构1、架构2、接口3、抽象类4、子类二、HashMap三、HashTable四、TreeMap五、WeakHashMap六、Map总结一、Map结构1、架构2、接口1、Map接口是所有实现类和其他接口的父接口(键值对的存储方式),提供了最基本的接口方法:容量、判断是否为空、增加(单个或者集合)、删除、获取键集合、获取值集合、entrySet迭代键值对、jdk1.8中添...

2019-06-24 17:34:02 472

原创 TreeMap全面解析(包含红黑树插入删除)

红黑树1、规则1、每个节点都只能是红色或者黑色2、根节点是黑色3、每个叶节点(NIL节点,空节点)是黑色的。4、如果一个结点是红的,则它两个子节点都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。5、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。2、插入原则1、插入节点总是红色2、插入节点父节点为黑色,则不影响3、插入节点父节点为红色,需要左右旋转调整...

2019-06-24 17:32:12 632

原创 List集合系列

文章目录一、 List集合全貌二、接口三、抽象类四、ArrayList(一)实现接口(二)属性(三)构造函数(四)核心源码(五)迭代方式五、Linkedlist(一)实现接口(二)属性(三)构造函数(四)核心源码(五)迭代方式六、Vector(一)实现接口(二)属性(三)构造函数(四)核心源码(五)迭代方式(六)Stack(封装了Vector的方法)八、对比性能1、ArrayLIst与Linked...

2019-06-21 21:14:02 341

原创 JVM编译过程与后期的优化

文章目录一、JVM编译过程二、即时编译器优化(后期优化)1、编译器与解释器一、JVM编译过程引用自博客:https://blog.csdn.net/fuzhongmin05/article/details/548802571、词法分析:读取源码,找出词法中关键词那些不合法(分辨出这句话哪些是动词、哪些是标点)2、语法分析:检查这些关键词组合在一起是不是符合Java语言规范。如if的后面是...

2019-06-21 10:01:22 289

原创 Java类加载器(双亲委派模型)(综述)

文章目录类加载器一、预定义类型类加载器二、类加载器结构双亲委派模型一、双亲委派模型流程二、双亲委派模型源码自定义类加载器一、类加载器继承关系二、ClassLoader1、构造函数2、核心方法三、自定义类加载器实例四、双亲委托模型的破坏1、第一次破坏2、第二次破坏3、第三次破坏引用类加载器一、预定义类型类加载器1、启动(Bootstrap)类加载器,负责将 <Java_Runtime_H...

2019-06-19 21:52:46 7226

原创 (面试)阐述类加载机制

类加载主要分为7各阶段:加载–验证–准备–解析–初始化–使用–卸载加载1、通过类的全限定名获取此类的二进制字节流2、将二进制字节流代表的静态存储结构转化为运行时数据结构3、内存中生成代表该类的对象,作为方法区中该类的数据访问入口验证既然已经加载到运行时数据结构,需要去验证二进制字节流1、文件格式验证:字节流是否符合Class文件格式的规范2、元数据验证:对字节码描述的信息进行语义分...

2019-06-18 19:54:18 465

原创 内存泄漏与内存溢出汇总

文章目录区别内存泄漏导致原因内存泄漏解决方案内存溢出导致原因内存溢出解决方案内存溢出类型(OOM异常)区别1、内存泄漏:程序在申请内存空间之后,无法释放已经申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。2、内存溢出( out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个...

2019-06-17 15:15:12 285

原创 深入理解JVM--Java垃圾回收机制(4WH原则)

文章目录为什么需要垃圾回收?why垃圾回收那些东西?(where JVM内存模型)什么时候垃圾回收?(when)如果进行垃圾回收?(how)用什么回收垃圾?(what)引用提到这个问题的时候首先需要去考虑三点问题:1、为什么需要垃圾回收?(why)2、垃圾回收那些东西?(where)3、什么时候垃圾回收?(when)4、如果进行垃圾回收?(how)5、用什么回收垃圾?(what)为什...

2019-06-16 17:48:18 667

原创 记第一次部署springMVC

新建javaweb编写applicationContext.xml与web.xmlapplicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o...

2019-06-13 16:22:34 215

原创 Executors全面解析

文章目录类结构图![在这里插入图片描述](https://img-blog.csdnimg.cn/20190604212428631.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyNjc5ODM1,size_16,color_...

2019-06-04 21:25:06 3498

原创 Future接口与FutureTask子类

文章目录Future简介例子FutureTask类图属性内部静态类构造函数任务运行任务取消结果获取参考Future简介为什么需要future模式?      正常客户访问服务器的时候会打开一个线程,该线程按顺序运行任务,也就是客户端首先获取反馈,只有反馈之后客户端才能进行后序的执行,但是如果有时候是获取比较大的资源呢?用户由于必须...

2019-06-02 21:32:54 761

原创 CyclicBarrier实例

1、栅栏的作用就是设定一个阈值,当到达的线程数达到阈值的时候,此时就会放开栅栏,之后执行下一轮循环2、栅栏除了设定阈值,还可以设定打开栅栏后执行的新任务public CyclicBarrier(int parties, Runnable barrierAction) { if (parties <= 0) throw new IllegalArgumentExcept...

2019-06-01 11:43:32 630

转载 Forkjoin框架原理解析

声明:本篇博客是在阅读了引用博客的两篇文章后做了简短的概括与归纳,只作为自己笔记文章目录一、思想二、工作窃取算法三、demo用例四、关键组件ForkJoinPoolForkJoinTaskForkJoinWorkerThreadWorkQueue五、Fork/Join运行流程图任务提交创建线程signalWork方法任务执行六、引用博客一、思想Fork/Join是Java7提供的并行执行...

2019-05-31 21:15:58 4246

原创 摇骰子所有可能的值(java)

解题思路:第一步,确定问题解的表达式。可将f(n, s) 表示n个骰子点数的和为s的排列情况总数。第二步,确定状态转移方程。n个骰子点数和为s的种类数只与n-1个骰子的和有关。因为一个骰子有六个点数,那么第n个骰子可能出现1到6的点数。所以第n个骰子点数为1的话,f(n,s)=f(n-1,s-1),当第n个骰子点数为2的话,f(n,s)=f(n-1,s-2),…,依次类推。在n-1个骰子的基础...

2019-05-31 10:17:15 693

原创 ConcurrentHashMap源码分析(JAVA 8)(综述)

文章目录一、ConcurrentHashMap缘起二、ConcurrentHashMap 的升级打怪                         ...

2019-05-26 16:52:31 149

原创 HashMap全面解析(综述)

一、常用Map结构图1、HashTable:遗留类,继承自DIctionary,键值都不能为null,但是通过synchronized关键字保证线程安全,并发性不如concurrentHashMap2、TreeMap:能够将保存的记录通过键值排序,当然也可以通过实现Comparator接口的compare方法或者Comparable的compareTo方法实现比较器。3、Concurren...

2019-05-22 20:13:01 347

原创 数据库连接池的实现

一、设计数据库连接池将数据库连接池可以作为一个容器,在这个容器里边含有Connection(JDBC接口),可以将Connection作为一个管道,每一次线程获取Connection(获取管道)后进行数据库操作。1、Connection的存储结构选择Linkedlist2、线程释放管道:从Linkedlist删除该管道,通过wait-notify唤醒阻塞线程3、线程获取管道:选择两种模式:...

2019-05-17 10:28:23 221

原创 从1到n整数中1出现的次数

给出一个具体数,计算得到从1开始到该数中出现1的次数常规实现1、遍历从1到该数字,计算每一个数字中1出现的次数2、通过对n = n / 10,如果 每一次n%10等于1,则表明包含1,计数器加一,跳出条件为n=03、时间复杂度:O(logn)/** * 遍历数字得到结果,时间复杂度O(nlogn) * * @param n * @return */ public ...

2019-05-16 20:30:28 377

原创 JDBC连接MySQL驱动器jar包全集

一、jar包集合下载:https://mvnrepository.com/artifact/mysql/mysql-connector-java二、三、四、下载后将jar包导入,项目-->Build Path-->AddExternalArchievs五、项目导入jar包后就可以通过JDBC连接MYSQL(包括集成mysql的软件)...

2019-05-15 16:24:41 14117 1

转载 interrupt()方法和InterruptException异常

interrupt()方法和InterruptException异常,是java专门用来处理线程阻塞的。线程阻塞,就表示要等待一段时间。如果需要等待的时间比较长,正常还没结束之前想中断某个线程的阻塞状态怎么办?这就是靠interrupt()方法来解决了。如果因为一些特殊的原因,想提前中断一些阻塞的线程,以让他们提前解除阻塞状态,然后继续执行下去。只需要在其他线程调用指定线程的interrupt()...

2019-05-13 15:57:54 5442

原创 由单例模式引发的一系列思考

一、单例模式饿汉模式饿汉模式:在第一次引用该类便创建对象,而忽略是否使用该对象,最好的方式应当是延迟加载 class csingleton { public csingleton() { } public static csingleton sing = new csingleton(); public csingleton getInstance() {...

2019-05-10 16:22:29 150

转载 as-if-serial和happen-before区别于具体规则

as-if-serial VS happens-beforeas-if-serial语义保证单线程内程序的执行结果不被改变,happens-before关系保证正确同步的多线程程序的执行结果不被改变。as-if-serial语义给编写单线程程序的程序员创造了一个幻境:单线程程序是按程序的顺序来执行的。happens-before关系给编写正确同步的多线程程序的程序员创造了一个幻境:正确同步的...

2019-05-09 21:04:08 1279

原创 数字排列组合

思路参考上一遍博客:https://blog.csdn.net/qq_32679835/article/details/90041784一、数字排列1、数字排列每一次不能将传入的数组直接传入添加到Arraylist中,如果直接添加,在每一次递归添加之后只是通过浅拷贝传入到ArrayList中,就会导致ArrayList中的元素都相同,需要原数组拷贝后传入2、去重手段不能选择HashSe...

2019-05-09 19:32:31 1625

原创 字符串排列组合(去重)

字符串排列组合一、 字符串排列要求字符串:abc产生abc |acb|bac|bca|cab|cba思路:1、固定一个位置第一个位置,数组中该位置之后的元素与该位置元素交换,2、在1的基础之上,固定第二个位置,数组数组中该位置之后的元素与该位置元素交换3、递归退出条件:当位置指针等于当前数组的长度,返回当前字符串排序4、递归:(1)交换元素(2)递归调用下一位置(3)将数...

2019-05-09 16:49:46 2193

原创 并发中Thread的yield方法

public class volatileNotEnsureAtomic { volatile int i = 0; /** * 由于volatile虽然支持可见性,支持单个变量的读写原子性,但不支持复合操作的原子性 * */ public void method() { i++; } public static void main(String[] args) {...

2019-05-08 21:56:33 319

后台模板代码

后台模板代码

2017-04-30

Yii2.0-权威指南.chm

yii2详细中文文档

2017-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除