- 博客(42)
- 收藏
- 关注
转载 消息中间件ActiveMQ
系统解耦、异步调用、流量削峰的解释:https://www.jianshu.com/p/18c45f23f859一下内容转载自:https://www.cnblogs.com/AndyAo/p/8629840.htmlActiveMQ服务器宕机怎么办?这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件...
2019-08-05 13:54:01
247
转载 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
181
转载 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
250
转载 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
205
原创 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
355
转载 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
246
原创 Spring常见面试题
转载:https://blog.youkuaiyun.com/a745233700/article/details/809597161、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由...
2019-07-29 21:29:57
188
转载 MyBatis常见面试题总结
转载:https://blog.youkuaiyun.com/a745233700/article/details/809771331、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵...
2019-07-29 17:41:16
107
转载 SpringMVC工作原理
原文转载自:https://github.com/Snailclimb/JavaGuide/blob/master/docs/system-design/framework/spring/SpringMVC-Principle.md简单来说:客户端发送请求-> 前端控制器 DispatcherServlet 接受客户端请求 -> 找到处理器映射 HandlerMapping 解...
2019-07-29 15:46:10
166
原创 详说单例模式
懒汉式:public class Singleton { private static Singleton instance; private Singleton (){} //不让外部new public static synchronized Singleton getInstance (){ //去掉synchronized是线程不安全的 i...
2019-07-29 15:28:22
108
转载 jdk 1.8 之后的ConcurrentHashMap
HashMap不是线程安全的。在并发插入元素的时候,有可能出现带环链表,让下一次读操作出现死循环。想要避免HashMap的线程安全问题有很多办法,比如改用HashTable或者Collections.synchronizedMap,但是这两者有着共同的问题:性能。无论读操作还是写操作,它们都会给整个集合加锁,导致同一时间的其他操作为之阻塞SegmentSegement本身就相当于一个Ha...
2019-07-29 10:42:42
1101
转载 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
167
转载 分布式事务
一下内容来源:公众号 程序员小灰事务就是作为单个逻辑单元执行的一组操作,要么全成功,要么全失败,共包含4个特性:原子性、一致性、隔离性、持久性假如没有分布式事务:在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子:上图中包含了库存和订单两个独立的微服务,每个微服务维护了自己的数据库。在交易系统的业务逻辑中,一个商品在下单之前需要先调...
2019-07-26 20:09:33
140
转载 Dubbo总结
转自:https://github.com/Snailclimb/JavaGuide/blob/master/docs/system-design/data-communication/dubbo.mdDubbo是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。简单来说 Dubbo 是一个分布式服务框架...
2019-07-26 15:32:00
122
原创 分布式ID生成解决方案——推特雪花算法
对于某些应用,MySQL里的某个表可能会占用很大的存储空间,甚至让服务器硬盘满了,这时候就会涉及到数据库的分片,把一个数据库进行拆分,通过数据库中间件(MyCat)进行连接。假设现在我们有三台服务器A B C,他们都含有一张表,然后应用通过数据库中间件进行连接,如果这个表某个字段使用数据自增,可能产生重复的ID。采用分布式ID生成的解决方案:UUID (缺点:长度太长;没办法排序) ...
2019-07-25 21:11:13
306
转载 布隆算法的介绍及应用场景
需求背景:不安全的网页黑名单包含100亿个黑名单网页,每个网页的URL最多占用64B,现在想要实现一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上,请设计该系统。一般可能会首先想到利用HashSet的不可重复性,但是URL上亿的话所占内存空间会非常大。另外一种,就是采用BitMap这种数据结构。具体做法就是获取每一个URL的HashCode,然后根据它来插入到Btimap的对应位...
2019-07-25 20:38:27
1469
转载 对于MySql的一些梳理之架构篇
MySQL的主从同步(复制)复制是将主数据库的 DDL 和 DML 操作通过二进制日志传到复制服务器 (也叫从库上),然后在从库上对这些日志重新执行 (也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库,实现链状的复制MySQL 复制的优点主要包括以下三个方面:如果主库出现问题,可以快速切换到从库提供服务 (提...
2019-07-25 16:32:25
123
原创 各种排序和查找算法的实现与比较
排序 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
652
转载 LRU和LFU算法的实现
LRU 是一种内存管理算法,也就是最近最少使用,长期不被使用的数据,在未来被用到的几率也不大,因此,当数据所占内存达到一定阈值时,要移除最近最少被使用的数据。可是怎么知道哈希表中哪些key-value最近被访问过,哪些没被访问过,总不能给每一个 Value 加上时间戳,然后遍历整个哈希表。这就涉及到LRU算法的精妙所在,在LRU算法中,使用了一种有趣的数据结构,这汇总数据结构叫做哈希链表。我们...
2019-07-24 10:50:29
1494
转载 计算机网络知识总结
OSI与TCP/IP各层的结构与功能,都有哪些协议?应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议等等。我们把应用...
2019-07-23 17:18:45
161
原创 对于MySql的一些梳理之优化篇
MySQL调优三步慢查询 (分析出现出问题的sql) Explain (显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句) Profile(查询到 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 Systemlock, Table lock 花多少时间等等.)慢查询日志(定位执行效率较低的SQL语句)...
2019-07-22 15:33:03
148
原创 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
118
转载 Nginx的安装与部署
Nginx简介Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。Nginx 应用场景:1、http 服务器。Nginx 是一个 http 服务可以独立提供 http...
2019-07-17 19:42:11
190
转载 初识开源数据库中间件-MyCat
开源数据中间件——MyCat如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝...
2019-07-17 14:29:15
169
转载 RedisCluster集群部署
什么是Redis-Cluster为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。Redis集群搭建的方式有多种,例如使用客...
2019-07-17 09:43:06
1301
原创 Zookeeper集群部署
Zookeeper的选举机制假设有五台服务器组成的zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的.假设这些服务器依序启动。服务器1启动,但没过半数, 服务器2启动,它与最开始启动的服务器1进行通信,互相交换自己的选举结果,由于两者都没有历史数据,所以id值较大的服务器2胜出,但是由于没有达到超过半数以上的服务器都同...
2019-07-16 16:24:24
218
转载 Java商城秒杀系统解决方案
秒杀频道首页,显示正在秒杀的商品(已经开始,未结束的商品)从redis中获取商品如果存在,则直接返回秒杀商品列表如果不存在,从数据库中获取,筛选条件是审核通过、剩余库存大于0、开始时间小于等于当前时间、结束时间大于当前时间,然后将查询到的秒杀商品存入redis中修改pinyougou-seckill-service的SeckillGoodsServiceImpl.java@Aut...
2019-07-16 15:15:26
388
转载 商城购物车设计
破晓——我思故我在这是淘宝商城的购物车,可以看出它里面含有不同的商家,相应的商家对应自己的商品条目来源:网络当用户在未登录的情况下,将此购物车存入cookies,在用户登录的情况下,将购物车数据存入redis。如果用户登录时,cookies中存在购物车,需要将cookies的购物车合并到redis中存储。//购物车实体类public class Cart implements Se...
2019-07-15 16:47:07
726
原创 多线程——变量的原子性和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
397
原创 多线程——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
153
原创 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
5158
3
原创 初识Dubbox框架
简介Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为DubboxDubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实...
2019-06-27 10:52:30
125
原创 关于链表和树的常见算法解答
关于链表的操作public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}输入一个链表,按链表值从尾到头的顺序返回一个ArrayList // 利用递归public class Solution { ...
2019-06-26 22:24:51
226
转载 Spring系列
分享Iteye的开涛对Ioc的精彩讲解IOC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:...
2019-06-26 16:25:57
140
原创 趣说设计模式
设计模式的重要性不必多说,jdk和spring框架等均有大量涉及,本篇博文总结了常见的设计模式,网上的文章质量参差不齐,故挑选出讲解得当的供大家阅读。单例模式来源:单例模式用来确保类只有一个实例。有七种创建方式,Spring中的bean默认都是单例的,java.lang.RunTime类,每一个运行的java应用都会有一个唯一的RunTime类的实例,这个实例使得应用程序在运行期间能够受...
2019-06-21 20:54:51
271
1
原创 Java多线程知识点回顾
毋庸置疑,多线程是一个程序员必备的技能项,但是想要去深入理解它的难度也很大,本篇对多线程的重点内容进行回顾,希望能帮助到一些同学对于多线程的理解。解答的内容经过本人筛选,从网上大量的信息挑选出最适宜的解答。进程和线程的区别及关系http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html这篇博文总结的非常好,简单明了。...
2019-06-21 20:38:00
244
原创 JVM总结及常见问题解决方案
这篇博文总结的很好,可作为参考JVM总结常见问题及解决可见JVM调优总结JVM内存为什么要分成新生代、老年代其实不分代也可以,但是分代是为了优化GC性能。如果不分代,所有对象都放在一块,那么GC的时候就要对堆的所有区域进行扫描,效率低下,因为很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出很大的空...
2019-06-21 13:17:46
279
转载 对于MySql的一些梳理之开发篇
视图视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。优势:简单(用户不需要关心后面对应的表结构等,对用户来说已经是过滤好的复合条件的结果集)、安全(使用视图的用户只能访问他们被允许查询的结果集)、数据独立(一旦视图的结构确定,可以屏蔽表结构变化对用户的影响)create or re...
2019-06-20 19:23:42
119
转载 对于MySql的一些梳理之基础篇
使用了MySql有一段时间了,一直还没有对它进行一个全面的总结,有时候会忘记一些知识又要重新去查阅非常麻烦,现对此做一个梳理,方便日后复习。主要参考深入浅出MySQL数据库开发、优化与管理维护人民邮电出版社。DDL语句(对数据库内部的对象进行创建、删除、修改等操作):create database test1; show databases; use test1; show tabl...
2019-06-20 14:57:09
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人