自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (3)
  • 收藏
  • 关注

原创 几种集合的实现起来用的数据结构

哈希表:  哈希表底层,使用的也是数组机制数组中也存放对象,而这些对象往数组中存放时的位置比较特殊,当需要把这些对象给数组中存放时,那么会根据这些对象的特有数据结合相应的算法,计算出这个对象在数组中的位置,然后把这个对象存放在数组中。而这样的数组就称为哈希数组,即就是哈希表。HashMap就是一个插入慢、查询快的数据结构。HashMap:数组+链表HashSet:底层就是hashMap,实际也是:数组+链表TreeMap:红黑树TreeSet:底层就是 TreeMap,实际也是:红.

2021-07-12 23:05:59 268

转载 【转】拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别

https://blog.csdn.net/zxd1435513775/article/details/80556034

2019-03-26 22:08:35 243

原创 什么情况下发发生full gc

Minor GC后存活的对象晋升到老年代时由于悲观策略的原因,有两种情况会触发Full GC,1、是之前每次晋升的对象的平均大小 > 老年代剩余空间2、是Minor GC后存活的对象超过了老年代剩余空间。这两种情况都是因为老年代会为新生代对象的晋升提供担保,而每次晋升的对象的大小是无法预测的,所以只能基于统计,1个是基于历史平均水平,一个是基于下一次可能要晋升的最大水平。这两种情况都...

2019-03-25 19:45:00 1010 1

原创 设计模式(建造者模式)

建造者模式 建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节.使用场景 建造者模式的使用场合是当创建复杂对象时,把创建对象成员和装配方法分离出来,放在建造者类中去实现,用户使用该复杂对象时,不用理会它的创建和装配过程,只关心它的表示形式优点: 1. 将一个复杂对象的创建...

2019-03-23 16:07:49 151

原创 设计模式(六大原则)

1、单一职责原则 一个类只负责一个功能领域中的相应职责,或者可以定义为,就一个类而言,应该只有一个引起它变化的原因。2、开闭原则一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。3、里氏替换原则 所有引用基类(父类)的地方必须能透明地使用其子类的对象。4、依赖倒置原则 抽象不应该依赖于细节,细节应当依赖于抽象...

2019-03-23 15:37:02 126

原创 设计模式(模板模式)

模板设计模式 定义:模板设计模式就是把某些类似算法或者业务提供一个统一的执行框架,把这些业务种共同的部门抽取出来进行具体实现,而某些业务中特定的部分推迟到子类中进行重写实现。 使用场景: 当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为会在子类中重复出现,我们可以通过模板方法把这些行为搬移到单一的地方(方法)中,这样就帮助子类摆脱重复的不变行为的...

2019-03-23 15:01:54 104

原创 【转】深入理解B树和B+树(二)B+树的优点

有了B树,为什么还需要B+树呢?那就要先说下B树的缺点了,人类对于性能的追求是无止境的,B树相比二叉树虽好,但还是存在以下问题:1.每个节点中既要存索引信息,又要存其对应的数据,如果数据很大,那么当树的体量很大时,每次读到内存中的树的信息就会不太够。2.B树遍历整个树的过程和二叉树本质上是一样的,B树相对二叉树虽然提高了磁盘IO性能,但并没有解决遍历元素效率低下...

2019-03-09 15:50:16 854

原创 【转】Java中的OutOfMemoryError的各种情况及解决和JVM内存结构

在JVM中内存一共有3种:Heap(堆内存),Non-Heap(非堆内存)[3]和Native(本地内存)。[1]堆内存是运行时分配所有类实例和数组的一块内存区域。非堆内存包含方法区和JVM内部处理或优化所需的内存,存放有类结构(如运行时常量池、字段及方法结构,以及方法和构造函数代码)。本地内存是由操作系统管理的虚拟内存。当一个应用内存不足时就会抛出java.lang.OutOfMemor...

2019-03-09 12:36:50 168

原创 【转】Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

ava.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 代码中存在死循环或循环产生过多重复的...

2019-03-09 10:07:49 135

原创 Kafka很早笔记

1、kafka是什么 类JMS消息队列,结合JMS中的两种模式,可以有多个消费者主动拉取数据,在JMS中只有点对点模式才有消费者主动拉取数据。 kafka是一个生产-消费模型。 Producer:生产者,只负责数据生产,生产者的代码可以集成到任务系统中。 数据的分发策略由producer决定,默认是defaultPartition Utils...

2019-02-28 09:40:55 121

转载 【转】RabbitMQ和kafka从几个角度简单的对比

业界对于消息的传递有多种方案和产品,本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比,在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。1)在架...

2019-02-28 09:34:33 157

转载 【转】如何防订单重复提交策略方法

原文链接:https://www.cnblogs.com/jett010/articles/9056567.html背景在业务开发中,我们常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统中尤其严重。前台操作的抖动,快速操作,网络通信或者后端响应慢,都会增加后端重复处理的概率。前台操作...

2019-02-27 11:40:05 200

原创 Synchronized和ReentrantLock

Synchronized和ReentrantLock的区别原理弄清楚了,顺便总结了几点Synchronized和ReentrantLock的区别:Synchronized是JVM层次的锁实现,ReentrantLock是JDK层次的锁实现; Synchronized的锁状态是无法在代码中直接判断的,但是ReentrantLock可以通过ReentrantLock#isLocked判断;...

2019-02-14 17:14:52 190

原创 java中final和static的一点理解

1.final:final修饰类:该类不可继承final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数)final修饰字段属性:属性值第一次初始化后不能被修改使用final可以提高程序执行的效率,将一个方法设成final后编译器就可以把对那个方法的所有调用都置入嵌入调用里。static不能修饰构造函数、函数参数、局部成员变量2.static:static修饰成员函数则该函数不...

2019-01-13 17:17:18 155

原创 【转】mysql中explain的type的解释

导语:很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了。这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只要我们小白好好学习,天天向上,还是很靠谱的。当一个sql查询语句被写出来之后,其实你的工作只完成了一小半,接下来更重要的工作是评估你自己写的sql的质量与效率。mysql为我们提供了很有用的辅助...

2019-01-12 19:50:29 160

原创 B-Tree索引 和 hash索引区别

1:索引类型  1.1 B-tree索引  注: 名叫btree索引,大的方面看,都用的平衡树,但具体的实现上, 各引擎稍有不同,比如,严格的说,NDB引擎,使用的是T-tree  Myisam,innodb中,默认用B-tree索引 但抽象一下---B-tree系统,可理解为”排好序的快速查找结构”.  1.2 hash索引     在memory表里,默认是...

2019-01-05 21:02:44 1081 2

原创 表的优化与列类型的选择

表的优化与列类型选择 表的优化:1: 定长与变长分离如 id int, 占4个字节, char(4) 占4个字符长度,也是定长, time即每一单元值占的字节是固定的.核心且常用字段,宜建成定长,放在一张表. 而varchar, text,blob,这种变长字段,适合单放一张表, 用主键与核心表关联起来. 2:常用字段和不常用字段要分离.需要结合网站具体...

2019-01-05 17:35:13 229 3

原创 mysql优化思路

为什么别人问你MySQL优化的知识 总是没有底气, 因为你只是回答一些大而化之的调优原则, 比如:1、”建立合理索引”(什么样的索引合理?)2、“分表分库”(用什么策略分表分库?)3、“主从分离”(用什么中间件?)并没有从细化到定量的层面去分析.如qps提高了%N? 有没有减少文件排序?语句的扫描行数减少了多少?没有大量的数据供测试,一般在学习环境中,只是手工添加几百上万条数据...

2019-01-05 17:17:39 463 1

转载 【转】Java -- 偏向锁、轻量级锁、自旋锁、重量级锁

之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对); 2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并...

2018-12-29 16:02:42 128

原创 员工工资sql

创建表create table bm(id int,mc varchar(50))create table ry(id int,mz varchar(50), gz double ,mcid int)insert into bm values (1,'it')insert into bm (id,mc) values (2,'sales')insert into ry value...

2018-12-26 18:08:56 976

转载 【转】幂等性

幂等操作:是其任意多次执行所产生的影响均与一次执行的影响相同(不用担心重复执行会对系统造成改变)业务场景:1.绑定银行卡发送短信接口。如果APP重复点击调用后台接口,后台重复调用第三方接口,造成用户收到多条短信,一般情况下控制在60s内再重发短信,如果不做控制,每一次调用第三方接口都会收费。2.创建订单接口。如果APP端因网络问题用户重复点击多次,会生成多个订单号,会造成系统业务问题。...

2018-11-23 11:00:35 103

转载 【转】进程间通信的方式(8种)

进程间通信的方式——信号、管道、消息队列、共享内存多进程:首先,先来讲一下fork之后,发生了什么事情。由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所...

2018-11-01 14:45:36 232

转载 【转】集群、分布式、微服务概念区别

概念:集群是个物理形态,分布式是个工作方式。分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器...

2018-11-01 11:30:54 208

转载 【转】SOA和微服务的区别

目录 1、什么是SOA  2. 什么是微服务3. 微服务由来4. 为什么需要微服务?4.1 最期的单体架构带来的问题4.2 微服务与单体架构区别4.3 微服务与SOA区别5. 微服务本质6.什么样的项目适合微服务微服务优势与缺点7.1 特性7.2 特点7.3 缺点8. 微服务开发框架9. Sprint cloud 和 Sprint b...

2018-11-01 11:20:20 968

转载 转:jvm中oom的几种情况

对于JVM的内存写过的文章已经有点多了,而且有点烂了,不过说那么多大多数在解决OOM的情况,于此,本文就只阐述这个内容,携带一些分析和理解和部分扩展内容,也就是JVM宕机中的一些问题,OK,下面说下OOM的常见情况:第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出:那什么样的情况就是堆栈溢出呢?当你看到下面的关键字的时候它就是堆栈溢出了:java.lang.Ou...

2018-10-23 11:08:43 222

原创 红黑树的左旋和又旋

今天先来用java实现红黑色左旋和右旋。后边再把添加、删除给补充上。什么是红黑树?红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一陪。具体来说,红黑树是满足如下条件的二叉查找树(binary search tree):每个节点要么是红色,要么是黑色。 根节点必须是黑色 红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。...

2018-10-20 19:31:10 737

原创 ZooKeeper集群选举机制和集群搭建

简介:Zookeeperr是一个 开源 的分布式应用程序协调服务器是Hadoop的重要组件ZooKeeper是一个 分布式的开放源码分布式应用程序协调服务器,它是一个为分布式应用提供一致性服务的软件,提供功能包括:配置维护、域名服务、分布式同步、集群管理等。功能:     分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集...

2018-10-19 17:43:23 465

原创 Jvm笔记---李兴华老师讲jvm

Eden区 中文叫 伊甸园区。年轻代:Eden区+存活区,存活区包括(S0+S1)。jdk1.8之后取消了永久代,而是变成了元空间(不在堆内存里保存,而是直接利用物理内存保存)。伸缩区有这么大的处理范围,所以在进行堆内存分配的过程时当用户访问量增大的时候就一定会导致不断的判断空间是否充足,不断的进行空间的增长,不断的进行内存空间的收缩和释放。也会影响效率!!参数说明:-Xms:...

2018-10-18 19:03:14 1095

原创 Java二叉树的前序、中序、后序遍历

相信一直关注平时业务代码的同学都很少关注二叉树、堆、栈等数据结构的访问和遍历。今天我们就说说二叉树的遍历什么是前序遍历?什么是中序遍历?什么是后序遍历?这个不懂的先自行百度一下吧。二叉树和链表的区别是,链表只有后序节点,二叉树虽然没有next节点,但是有左节点和右节点。所以我们先定义二叉树的节点。代码如下:public class NodeWD<T> { ...

2018-10-18 11:36:28 451

原创 Java用链表实现栈

上一篇实现了队列,这一篇我们实现栈。栈是后入先出的数据结构。链表中插入数据有头插法和尾插法,本篇我们使用头插法。不多说直接上代码链表的节点定义和上一篇使用的是同一个,可以参考上一篇。public class StackImpl<T> { private Element<T> top=null; public boolean push(...

2018-10-17 22:23:29 1401

原创 Java用链表实现队列

队列--先入先出栈---后入先出链表实现队列和栈。首先我们需要构建一个链表。链表有哪几要素?  1、链表本身的value2、链表的next指针,next指针指的还是同样类型的值。下边看代码public class Element<T> { private T value;//链表值 private Element<T> next;...

2018-10-17 21:14:56 1319

原创 英文字符顺序翻转

面试必备 字符串翻转题目: 原字符串 www.taobao.com.cn,翻转后顺序为cn.com.taobao.www手撕代码,哈哈哈哈  传说中的最优解,两个指针变量 搞定?  public static void main(String[] args) { // StringBuilder ss=new StringBuilder("www.toutiao....

2018-10-17 17:46:05 225

转载 【转】java中堆的排序

Java实现堆排序(大根堆)  堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素。1. 若array[0,...,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩子结点指针之间的内在关系如下:  任意一节...

2018-10-16 22:46:50 88

转载 【转】Http请求头有哪些

每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在发送XHR请求的同时,还会发送下列头部信息:Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 Accept-Encoding:浏览器能够处理的压缩编码 Accept-Language:浏览器当前设置的语言 Connection:浏览器与服务器之间连接的类型 Cookie:当前页面设...

2018-10-16 17:50:36 1059

原创 Java单例模式(双重检查)

今天又想起了单例模式,看了网上好多文章,加锁和可见性。自己也写了一遍单例模式。public class SingleTon { private SingleTon(){ } private static volatile SingleTon singleTon=null; public static SingleTon getInstance(){ ...

2018-10-14 17:43:08 995

原创 数据结构(排序算法和查找算法的时间复杂度和空间复杂度)

这是从大神给的网站上找到的算法的时间复杂度趋势和各个常用结构的复杂度截图。  算法的时间复杂度,用来度量算法的运行时间,记作: T(n) = O(f(n))。它表示随着 输入大小n 的增大,算法执行需要的时间的增长速度可以用 f(n) 来描述。          常用查找算法的时间复杂度和空间复杂度 二叉树的查找 O(...

2018-10-13 20:05:01 6069 1

转载 【转】Java集合框架的讲解

下面要开始java中相关集合框架的学习啦。  Are you ready?Let's go~~  今天要讲解的Java中的集合框架。  1) 首先查看jdk中Collection类的源码后会发现如下内容:     1 2 3 4 5 6 ... * @see     AbstractCollection ...

2018-09-05 15:46:40 114

原创 SQL语句索引使用注意事项

1、避免在where子句中使用 is null 或 not null2、避免在where子句中使用!=或<>操作符3、避免在where子句中使用or4、少用 in 或not in5、like通配符的使用 不要“%11%” 要“11%”              例如LIKE“%name”或者LIKE“%name%”,这种查询会导致索引失效而进行全表扫描。但是可以使用...

2018-09-03 18:55:14 1295

原创 Nginx 使用gizp压缩提高网站的传输速度

网站的css,js ,xml,html 在传输的时候可以使用gzip压缩,提高访问速度,网站上的图片,视频等其它多媒体文件,因为压缩效果不好,所以对于图片没有必要支压缩,如果想要优化,可以图片的生命周期设置长一点,让客户端来缓存在nginx.conf中,gzip的配置可以写在http段,server段中的任何地方格式如下 gzip on;              //开启...

2018-09-03 17:12:59 180

原创 Tomcat : maxThreads 、maxConnections、acceptCount区别

1、maxThreads:是线程池的最大线程数。          tomcat工作线程池最大线程数,tomcat7.0.55源码可知,默认为2002、maxConnections:与tomcat建立的最大socket连接数,默认10000(很多网上说200,实际上通过tomcat7.0.55源码查看可以知道是10000)               我们知道http请求底层实现实际是...

2018-09-03 16:07:27 1821 6

动软代码生成工具

动软代码生成工具,可以根据数据库表结构生成访问数据库的代码,存储过程、增删改都有。

2015-11-12

序列号 nero8中文破解版

nero8中文破解版序列号,绝对可以用,已经试过。

2015-11-12

图标 arcgis engine for c#开发下的一套图标

图标 arcgis engine for c#开发下的一套图标,比较实用

2015-11-12

空空如也

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

TA关注的人

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