- 博客(47)
- 资源 (13)
- 收藏
- 关注
原创 springboot项目推荐------秒杀基础项目
项目名称这里再写一句骚气又精准的话描述你的项目吧。上手指南写几句这样的话概括接下来的内容:以下指南将帮助你在本地机器上安装和运行该项目,进行开发和测试。关于如何将该项目部署到在线环境,请参考部署小节。安装要求列出运行该项目必须要具备的条件以及必须要安装的软件,最好给出具体的安装步骤。必须安装我我也必须安装安装我也是必须的安装步骤一步一步地说明怎么去搭建环境,怎么让项目跑起来。...
2019-07-24 15:53:15 273
转载 算法(一)
1.怎么判断一个链表有环(1)穷举遍历:首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头节点重新遍历新节点之前的所有节点,用新节点ID和此节点之前所有节点ID依次作比较。如果发现新节点之前的所有节点当中存在相同节点ID,则说明该节点被遍历过两次,链表有环;如果之前的所有节点当中不存在相同的节点,就继续遍历下一个新节点,继续重复刚才的操作。(2)哈希表缓存:首先创建一个...
2019-04-03 17:55:14 151
转载 Linux(一)
1.目录结构/bin:存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里; /etc:存放系统管理和配置文件; /home:存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示; /usr :用于存放系统应用程序; /opt:额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把t...
2019-04-03 17:35:40 143
转载 Spring(四)MVC
一 概念MVC是Modal View Controler的缩写,原业是用于桌面程序设计中的概念,由以下三个主要部分构成,三部分各司其职。Model :模型层(用于数据库打交道) View :视图层(用于展示内容给用户看) Controller :控制层(控制业务逻辑) 二 工作流程图 ...
2019-04-03 17:25:04 102
转载 Redis
1.Redis有哪些数据结构?String、List、Set、Sorted Set、hashes2.redis为什么是单线程? https://www.cnblogs.com/yuyutianxia/p/6346723.html3.什么是redis?Redis是一个基于内存的高性能key-value数据库。4.使用Redis的优缺点优点:速度快,因为数据存在内存中,类...
2019-04-03 16:59:19 97
转载 JAVA基础(三)
1.对象都在堆里吗?不,由于TLAB和逃逸技术的发展,或者在jvm开启在栈上分配时某些特殊的对象可以存放在栈上2.什么对象可以作为根节点?虚拟机栈中引用的对象 方法区中静态属性引用的对象 方法区中常量引用的对象 本地方法栈中JNI引用的对象3.异常try-catch-finally中,try和finally中都有return,怎么返回?结论:1、不管有木有出现异常,fin...
2019-04-02 09:49:38 79
转载 Spring(三)补充
一 依赖注入的3种方式1.set注入 class UserService { private UserDao userDao; public void setUserDao(UserDao userDao){ this.userDao = userDao; } }...
2019-04-01 21:52:39 66
转载 Spring(二)Aop
一 相关概念什么是AOP(面向切面编程)如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向方面编程的方法,就仿佛一把利刃,将这些空心圆柱体剖开,对其内部的方法进行增强,然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹。方面(Aspect):程序运行过程中的某个的步骤或者阶段连接点(Joinpoint): 程序执行过程中的某一行为,如方法的调用或特定的异常被...
2019-04-01 21:23:36 75
转载 Spring(一) bean
转载:https://blog.csdn.net/a327369238/article/details/52193822(推荐) http://www.cnblogs.com/kenshinobiy/p/4652008.html一 bean生命周期 Bean具体生命周期1.postProcessBeanFactory(ConfigurableListableBea...
2019-04-01 19:49:21 305
转载 sql优化
转载:https://www.cnblogs.com/but009/archive/2018/06/08/9155634.htmlhttp://database.51cto.com/art/200904/118526.htmhttp://www.cnblogs.com/rootq/archive/2008/11/17/1334727.html1.对查询进行优化,应尽量避免全...
2019-03-31 17:04:15 61
转载 排序算法
推荐:https://blog.csdn.net/xiazdong/article/details/8462393一 冒泡排序冒泡排序的名字很形象,实际实现是相邻两节点进行比较,大的向后移一个,经过第一轮两两比较和移动,最大的元素移动到了最后,第二轮次大的位于倒数第二个,依次进行。 void bubble_sort (int a[], int n) {...
2019-03-31 11:30:16 88
转载 happen-before原则
一 作用我们无法就所有场景来规定某个线程修改的变量何时对其他线程可见,但是我们可以指定某些规则,这规则就是happens-before (简要的说就是,如果A线程满足happen-before B线程,那么A线程对变量的操作,都能被B线程观察到。)1. 如果一个操作happens-before另一个操作,那么第一个操作的执行结果将对第二个操作可见,而且第一个操作的执行顺序排在第二个操作之前...
2019-03-14 19:48:37 194
转载 原子类的实现(JDK1.8)
Java提供的原子类是靠CAS+volatile 实现的,CAS 是一种乐观锁。源码分析(以AtomicInteger为例) private volatile int value;//递增加detla public final int getAndAdd(int delta) { //三个参数,1、当前的实例 2、value实例变量的偏移量 3、当前...
2019-03-14 11:18:41 311
转载 HashTable/Set
一 HashMap 和 Hashtable 的区别线程是否安全:HashMap 是非线程安全的,HashTable 是线程安全的;HashTable 内部的方法基本都经过 synchronized修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap 吧!); 效率:因为线程安全的问题,HashMap 要比 HashTable 效率高一点。另外,HashTable ...
2019-03-14 08:41:09 245
转载 线程间通信Demo
一 实现生产者/消费者两个线程交替执行我们以生产面包线程 和 消费面包线程做例子面包类public class Bread { //面包个数 private int num; //面包id private int id; //生产面包 public synchronized void creat(){ //面包不...
2019-03-13 21:56:20 82
转载 自动装箱与自动拆箱
一 定义装箱:将基本类型转换成包装类对象int i=10;Integer x=new Integer(i);手动装箱Integer y=10;自动装箱拆箱:将包装类对象转换成基本类型的值Integer j=new Integer(8);int m=j.intValue();//手动拆箱int n=j;//自动拆箱实现:javac编译器的语法糖二 原因一个基本类型...
2019-03-13 19:14:03 147
转载 完全二叉树 堆 红黑树
一 完全二叉树完全二叉树:对于一个树高为h的二叉树,如果其第0层至第h-1层的节点都满。如果最下面一层节点不满,则所有的节点在左边的连续排列,空位都在右边。这样的二叉树就是一棵完全二叉树。二 堆定义:堆树是一颗完全二叉树; 堆树中某个节点的值总是不大于或不小于其孩子节点的值; 堆树中每个节点的子树都是堆树。当父节点的键值总是大于或等于任何一个子节点的键...
2019-03-12 11:35:49 1565
转载 反射
一 定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。二 实现方式Object ——> getClass...
2019-03-12 11:06:56 136
转载 乐观锁 悲观锁 CAS
原文:https://blog.csdn.net/qq_34337272/article/details/81072874一 乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_co...
2019-03-10 19:47:30 168
转载 B+Tree 与 B-Tree
一 B-Tree 1. d为大于1的一个正整数,称为B-Tree的度。(即一个节点内包含的关键字个数,如图是15 56 77 三个)2. h为一个正整数,称为B-Tree的高度。(与树的定义相同)3 .M是节点的孩子个数,称为b树的阶特性B树中每个节点包含了键值和数据对象, 任何一个关键字出现且只出现在一个结点中;(15 56 77 等就是关...
2019-03-10 10:13:43 233
转载 JAVA基础(二)
1..sleep和wait的区别:对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,...
2019-03-09 20:16:29 101
原创 设计模式-------职责链模式
一 简介定义:将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递。从而避免请求的发送者和接受者之间的耦合关系。链上的对象逐个判断是否有能力处理该请求,如果能则就处理,如果不能,则传给链上的下一个对象。直到有一个对象处理它为止。使用场景:Java的异常机制就是一个责任链模式 打牌时,轮流出牌 接力赛跑 请假审批 公文审批包括以下角色:抽...
2019-03-05 10:58:46 109
原创 设计模式-----策略模式
一 简介定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化(实质就是算法的选择)。使用场景: 当一个系统中有许多类,它们之间的区别仅在于它们的行为,希望动态地让一个对象在许多行为中选择一种行为时; 当一个系统需要动态地在几种算法中选择一种时; 当一个对象有很多的行为,不想使用多重的条件选择语...
2019-03-05 10:11:14 91
原创 设计模式---------观察者模式
一 简介定义:其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。使用场景:微信公众号服务,不定时发布一些消息,关注公众号就可以收到推送消息,取消关注就收不到推送消息。包括以下四种角色:Subject:主题类,将所有的观察者对象保存在一个List集合中,并提供增、删的方法,以及状态变化后的通知方法。 Observer:观察者的抽象接口,...
2019-03-05 09:44:03 98
转载 设计模式------适配器模式
一 简介功能:将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适用环境:系统需要使用一些现有的类,而这些类的接口不符合系统的需要,甚至没有这些类的源代码 创建一个可以重复使用的类,用于和一些彼此之间没有太大关联的类,包括一些可能在将来引进的类一起工作 Target(目标抽象类):目标抽象类定义客户所...
2019-03-04 21:52:29 140
原创 设计模式-------- 装饰者模式
一 简介用途:动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。该模式以对客户端透明的方式扩展对象的功能。抽象构件(Component)角色:给出一个抽象接口,指定了被装饰的组件都有哪些功能。具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类,完成了基本的功能实现。装饰(Decorator)角色:持有一...
2019-03-04 21:05:06 79
原创 设计模式------------工厂模式
一 简介工厂模式的分类:(1)简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method Pattern)。(2)工厂方法(Factory Method)模式,又称多态性工厂(Polymorphic Factory)模式或虚拟构造子(Virtual Constructor)模式;(3)抽象工厂(Abstract Factory)模...
2019-03-04 19:40:51 89
原创 设计模式-----建造者模式
一 建造者模式介绍建造者模式使用的场景,产品类非常的复杂,或者产品类中的调用顺序不同产生了不同的效能,建造者模式最主要功能是基本方法的调用顺序安排,也就是这些基本方法已经实现了;而工厂方法则重点是创建,你要什么对象我创造一个对象出来,组装顺序则不是他关心的。抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:具有不同分类维度的产品组合,采用抽象工厂模式不需要关心构建过程...
2019-03-04 10:06:28 82
原创 LinkedList 与 ArrayList
LinkedList LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当作链表来操作外,它还可以当作栈,队列和双端队列来使用。LinkedList同样是非线程安全的,只在单线程下适合使用。LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。总结1、从源码中很明...
2019-03-03 21:11:00 102
转载 浅析 NIO
https://blog.csdn.net/u013068377/article/details/70312551(BIO NIO AIO 区别)一 NIO和IO的区别1.IO是面向流的,NIO是面向缓冲区的。2 NIO的通道是可以双向的,但是IO中的流只能是单向的。3.IO的各种流是阻塞的。NIO是非阻塞的。二 NIO简介NIO的三大组件 Channel Bu...
2019-03-03 20:22:05 109
转载 JAVA基础(一)
1.JDK JRE JVM 三者之间的联系与区别JDK: 顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。JRE: 普通用户而只需要安装 JRE(Java Runtime Environment)来运行 Java 程序。而程序开发者必须安装JDK来...
2019-03-03 10:45:24 110
转载 TCP/IP
引用:https://github.com/Snailclimb/JavaGuide一 七层网络体系二 TCP/IP网络协议栈TCP/IP网络协议栈分为四层, 从下至上依次是: 链路层 .网络层 传输层 应用层 这四层协议对应的数据包封装如下图: 三...
2019-03-02 11:22:01 125
转载 类加载机制
一 简介 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Clas...
2019-02-27 21:49:00 99
转载 垃圾收集器
一 判断对象是否死亡1.引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减 1;任何时刻计数器都为0的对象就是不可能再被使用的。 缺陷:无法解决对象相互循环引用的问题2.可达性分析算法:这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Refere...
2019-02-27 20:09:36 162
转载 java内存划分与对象的创建
一 基本概念 如图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类 的字节码文件,加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间 一般被称作为Run...
2019-02-26 11:21:06 179
原创 IDEA +Maven+JRebel 实现tomcat热部署
前提:1.你的IDEA已经安装了JRebal,并且激活了 2 IDEA已经绑定了你电脑的tomcat,不是Maven的tomcat首先:在pom.xml中引入JRebel插件。<plugin> <groupId>org.zeroturnaround</groupId> <artifactId>jreb...
2019-01-27 17:44:29 684
转载 事务与MVCC
一 事务事务是一组原子性的SQL查询,事务里的语句,要么全部执行成功,要么全部执行失败。例: 银行从小明的余额(save)中减去200元,作为其水电费支出,记作支出(out)。步骤:1. 查询银行余额大于200 2.余额减去200 3.支出增加200START TRANSACTION ...
2019-01-01 21:45:43 148
转载 高性能的索引策略
一 建立索引的原则1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。2.为经常需要排序、分组和联合操作的字段建立索引经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作...
2019-01-01 11:30:21 121
转载 Mysql 存储引擎
推荐:http://blog.jobbole.com/24006/一 存储引擎(建表时默认使用InnoDB)1. MyISAM (数据与索引分离)(非聚集索引)使用B+Tree索引。B+Tree叶节点的data域存放的是数据记录的地址。在索引检索的时候,首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其 data 域的值,然后以 data 域的值...
2018-12-31 17:50:53 99
转载 HashMap总结
一 Java7/8 中的 HashMap 和 ConcurrentHashMap 源码分析http://www.importnew.com/28263.html?replytocom=643805#respond (强烈推荐 )Java7 HashMapHashMap 里面是一个数组,然后数组中每个元素是一个单向链表。链表中存储的是Entry,Entry 包含四个属性:key...
2018-12-30 17:36:19 102
宜立方商城(淘淘商城) 包含 ActiveMQ dubbo SQL文件
2019-03-25
宜立方商城(淘淘商城) 包含 FasrDFS freemarker用到的
2019-03-25
宜立方商城(淘淘商城) 工具类
2019-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人