自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dandyjiew

破晓

  • 博客(42)
  • 收藏
  • 关注

转载 消息中间件ActiveMQ

系统解耦、异步调用、流量削峰的解释:https://www.jianshu.com/p/18c45f23f859一下内容转载自:https://www.cnblogs.com/AndyAo/p/8629840.htmlActiveMQ服务器宕机怎么办?这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件...

2019-08-05 13:54:01 195

转载 Java集合

转载自:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/collection/List,Set,Map三者的区别?List(对付顺序的好帮手): List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象 Set(注重独一无二的性质): 不允许重复的集合。不会有多个元素引用相同的对象。 Map(用Ke...

2019-08-03 11:03:12 147

转载 JAVA EE总结

Servlet总结(转载自:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/J2EE%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md)在Java Web程序中,Servlet主要负责接收用户请求 HttpServletRequest,在doGet(),doPost()中做相应的处理,并将回...

2019-08-03 09:03:26 220

转载 JAVA SE总结

内容转载自:https://github.com/Snailclimb/JavaGuide/ 及https://github.com/Snailclimb/JavaGuide/JAVA SE关于 JVM JDK 和 JRE 最详细通俗的解答JVM:Java虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),...

2019-08-02 20:01:00 161

原创 Map中报错Exception in thread "main" java.util.ConcurrentModificationException的问题

public static void main(String[] args) { Map<Integer, Integer> map = new HashMap<>(); map.put(1,10); map.put(2,20); map.put(3,30); for (Integer i:...

2019-07-31 15:03:08 311

转载 MySQL中的锁机制

转载自:http://benjaminwhx.com/2018/04/27/%E8%B0%88%E8%B0%88MySQL%E7%9A%84%E9%94%81/1、MySQL中的锁MySQL中有着Lock和Latch的概念,在数据库中,这两者都可以被称为“锁”,但是两者有着截然不同的含义。Latch一般称为闩锁(轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能...

2019-07-30 19:31:50 222

原创 Spring常见面试题

转载:https://blog.csdn.net/a745233700/article/details/809597161、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由...

2019-07-29 21:29:57 167

转载 MyBatis常见面试题总结

转载:https://blog.csdn.net/a745233700/article/details/809771331、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵...

2019-07-29 17:41:16 86

转载 SpringMVC工作原理

原文转载自:https://github.com/Snailclimb/JavaGuide/blob/master/docs/system-design/framework/spring/SpringMVC-Principle.md简单来说:客户端发送请求-> 前端控制器 DispatcherServlet 接受客户端请求 -> 找到处理器映射 HandlerMapping 解...

2019-07-29 15:46:10 137

原创 详说单例模式

懒汉式:public class Singleton { private static Singleton instance; private Singleton (){} //不让外部new public static synchronized Singleton getInstance (){ //去掉synchronized是线程不安全的 i...

2019-07-29 15:28:22 94

转载 jdk 1.8 之后的ConcurrentHashMap

HashMap不是线程安全的。在并发插入元素的时候,有可能出现带环链表,让下一次读操作出现死循环。想要避免HashMap的线程安全问题有很多办法,比如改用HashTable或者Collections.synchronizedMap,但是这两者有着共同的问题:性能。无论读操作还是写操作,它们都会给整个集合加锁,导致同一时间的其他操作为之阻塞SegmentSegement本身就相当于一个Ha...

2019-07-29 10:42:42 1017

转载 JAVA 集合源码解读之HashMap

jdk 1.8以后 HashMap 的变化原文链接:https://www.cnblogs.com/xiaoxi/p/7233201.html在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用数组+链表...

2019-07-27 14:33:37 132

转载 分布式事务

一下内容来源:公众号 程序员小灰事务就是作为单个逻辑单元执行的一组操作,要么全成功,要么全失败,共包含4个特性:原子性、一致性、隔离性、持久性假如没有分布式事务:在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子:上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。在交易系统的业务逻辑中,一个商品在下单之前需要先调...

2019-07-26 20:09:33 117

转载 Dubbo总结

转自:https://github.com/Snailclimb/JavaGuide/blob/master/docs/system-design/data-communication/dubbo.mdDubbo是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。简单来说 Dubbo 是一个分布式服务框架...

2019-07-26 15:32:00 100

原创 分布式ID生成解决方案——推特雪花算法

对于某些应用,MySQL里的某个表可能会占用很大的存储空间,甚至让服务器硬盘满了,这时候就会涉及到数据库的分片,把一个数据库进行拆分,通过数据库中间件(MyCat)进行连接。假设现在我们有三台服务器A B C,他们都含有一张表,然后应用通过数据库中间件进行连接,如果这个表某个字段使用数据自增,可能产生重复的ID。采用分布式ID生成的解决方案:UUID (缺点:长度太长;没办法排序) ...

2019-07-25 21:11:13 270

转载 布隆算法的介绍及应用场景

需求背景:不安全的网页黑名单包含100亿个黑名单网页,每个网页的URL最多占用64B,现在想要实现一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上,请设计该系统。一般可能会首先想到利用HashSet的不可重复性,但是URL上亿的话所占内存空间会非常大。另外一种,就是采用BitMap这种数据结构。具体做法就是获取每一个URL的HashCode,然后根据它来插入到Btimap的对应位...

2019-07-25 20:38:27 1401

转载 对于MySql的一些梳理之架构篇

MySQL的主从同步(复制)复制是将主数据库的 DDL 和 DML 操作通过二进制日志传到复制服务器 (也叫从库上),然后在从库上对这些日志重新执行 (也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库,实现链状的复制MySQL 复制的优点主要包括以下三个方面:如果主库出现问题,可以快速切换到从库提供服务 (提...

2019-07-25 16:32:25 98

原创 各种排序和查找算法的实现与比较

排序 int[] a = new int[]{1,4,6,4,3,2,8,1}; // 冒泡排序 int temp; for (int i = 0; i < a.length; i++){ for (int j = 0; j < a.length-1-i; j++){ if...

2019-07-24 21:59:26 621

转载 LRU和LFU算法的实现

LRU 是一种内存管理算法,也就是最近最少使用,长期不被使用的数据,在未来被用到的几率也不大,因此,当数据所占内存达到一定阈值时,要移除最近最少被使用的数据。可是怎么知道哈希表中哪些key-value最近被访问过,哪些没被访问过,总不能给每一个 Value 加上时间戳,然后遍历整个哈希表。这就涉及到LRU算法的精妙所在,在LRU算法中,使用了一种有趣的数据结构,这汇总数据结构叫做哈希链表。我们...

2019-07-24 10:50:29 1418

转载 计算机网络知识总结

OSI与TCP/IP各层的结构与功能,都有哪些协议?应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。我们把应用...

2019-07-23 17:18:45 140

原创 对于MySql的一些梳理之优化篇

MySQL调优三步慢查询 (分析出现出问题的sql) Explain (显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句) Profile(查询到 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 Systemlock, Table lock 花多少时间等等.)慢查询日志(定位执行效率较低的SQL语句)...

2019-07-22 15:33:03 108

原创 Comparable 和 Comparator 的使用

首先看 Comparable 的使用public class code { static class B implements Comparable<B> { int m; int n; B(int m, int n){ this.m = m; this.n = n; ...

2019-07-19 11:33:29 90

转载 Nginx的安装与部署

Nginx简介Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。Nginx 应用场景:1、http 服务器。Nginx 是一个 http 服务可以独立提供 http...

2019-07-17 19:42:11 134

转载 初识开源数据库中间件-MyCat

开源数据中间件——MyCat如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝...

2019-07-17 14:29:15 137

转载 RedisCluster集群部署

什么是Redis-Cluster为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。Redis集群搭建的方式有多种,例如使用客...

2019-07-17 09:43:06 1023

原创 Zookeeper集群部署

Zookeeper的选举机制假设有五台服务器组成的zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的.假设这些服务器依序启动。服务器1启动,但没过半数, 服务器2启动,它与最开始启动的服务器1进行通信,互相交换自己的选举结果,由于两者都没有历史数据,所以id值较大的服务器2胜出,但是由于没有达到超过半数以上的服务器都同...

2019-07-16 16:24:24 159

转载 Java商城秒杀系统解决方案

秒杀频道首页,显示正在秒杀的商品(已经开始,未结束的商品)从redis中获取商品如果存在,则直接返回秒杀商品列表如果不存在,从数据库中获取,筛选条件是审核通过、剩余库存大于0、开始时间小于等于当前时间、结束时间大于当前时间,然后将查询到的秒杀商品存入redis中修改pinyougou-seckill-service的SeckillGoodsServiceImpl.java@Aut...

2019-07-16 15:15:26 325

转载 商城购物车设计

破晓——我思故我在这是淘宝商城的购物车,可以看出它里面含有不同的商家,相应的商家对应自己的商品条目来源:网络当用户在未登录的情况下,将此购物车存入cookies,在用户登录的情况下,将购物车数据存入redis。如果用户登录时,cookies中存在购物车,需要将cookies的购物车合并到redis中存储。//购物车实体类public class Cart implements Se...

2019-07-15 16:47:07 681

原创 多线程——变量的原子性和CAS算法

输出是10,不是11。涉及到 i++ 的原子性问题,i++ 的操作实际上为先是将i的值从内存中拿出来 将i的值加1 把i写回到内存中涉及到读改写三个操作;public class code { public static void main(String[] args) { AtomicDemo ad = new AtomicDemo(); ...

2019-07-15 09:52:01 368

原创 多线程——volatile关键字与内存可见性

内存可见性问题就是:当多个线程操作共享数据时,彼此不可见public class code { public static void main(String[] args) { ThreadDemo td = new ThreadDemo(); new Thread(td).start(); while (true){ ...

2019-07-09 11:26:57 132

原创 IDEA Maven 无法依赖 dubbo的问题,提示Unresolved dependency:'com.alibaba:dubbo:jar:2.8.4'

在pom文件中已经引入了dubbo的依赖但是在写service的时候发现无法找到dubbo下的@Service注解发现External Libraries没有dubbo发现本地仓库里根本没有dubbo的jar包查阅了网上的答案,说是云仓库没有,说是2.5以后阿里没有维护,之后是当当网维护dubbox,但是云仓库上没有只好自己下了dubbo 2.8.4的jar包,添加到了自己的本地...

2019-06-27 22:04:39 4900 3

原创 初识Dubbox框架

简介Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为DubboxDubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实...

2019-06-27 10:52:30 93

原创 关于链表和树的常见算法解答

关于链表的操作public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}输入一个链表,按链表值从尾到头的顺序返回一个ArrayList // 利用递归public class Solution { ...

2019-06-26 22:24:51 192

转载 Spring系列

分享Iteye的开涛对Ioc的精彩讲解IOC是什么  Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:...

2019-06-26 16:25:57 111

原创 趣说设计模式

设计模式的重要性不必多说,jdk和spring框架等均有大量涉及,本篇博文总结了常见的设计模式,网上的文章质量参差不齐,故挑选出讲解得当的供大家阅读。单例模式来源:单例模式用来确保类只有一个实例。有七种创建方式,Spring中的bean默认都是单例的,java.lang.RunTime类,每一个运行的java应用都会有一个唯一的RunTime类的实例,这个实例使得应用程序在运行期间能够受...

2019-06-21 20:54:51 230 1

原创 Java多线程知识点回顾

毋庸置疑,多线程是一个程序员必备的技能项,但是想要去深入理解它的难度也很大,本篇对多线程的重点内容进行回顾,希望能帮助到一些同学对于多线程的理解。解答的内容经过本人筛选,从网上大量的信息挑选出最适宜的解答。进程和线程的区别及关系http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html这篇博文总结的非常好,简单明了。...

2019-06-21 20:38:00 203

原创 JVM总结及常见问题解决方案

这篇博文总结的很好,可作为参考JVM总结常见问题及解决可见JVM调优总结JVM内存为什么要分成新生代、老年代其实不分代也可以,但是分代是为了优化GC性能。如果不分代,所有对象都放在一块,那么GC的时候就要对堆的所有区域进行扫描,效率低下,因为很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出很大的空...

2019-06-21 13:17:46 227

转载 对于MySql的一些梳理之开发篇

视图视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。优势:简单(用户不需要关心后面对应的表结构等,对用户来说已经是过滤好的复合条件的结果集)、安全(使用视图的用户只能访问他们被允许查询的结果集)、数据独立(一旦视图的结构确定,可以屏蔽表结构变化对用户的影响)create or re...

2019-06-20 19:23:42 103

原创 虚拟机安装Center OS无法正常访问网络问题

将原来的no改为yes,之后重启

2019-06-20 16:03:21 1279

转载 对于MySql的一些梳理之基础篇

使用了MySql有一段时间了,一直还没有对它进行一个全面的总结,有时候会忘记一些知识又要重新去查阅非常麻烦,现对此做一个梳理,方便日后复习。主要参考深入浅出MySQL数据库开发、优化与管理维护人民邮电出版社。DDL语句(对数据库内部的对象进行创建、删除、修改等操作):create database test1; show databases; use test1; show tabl...

2019-06-20 14:57:09 115

空空如也

空空如也

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

TA关注的人

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