自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

转载 Eclipse上Maven环境配置使用 (全)

1. 安装配置Maven:  1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven。    Maven下载地址: http://maven.apache.org/download.cgi  1.2 配置 Maven 的conf文件夹中配置文件settings.xml。 按 Ctrl+C 复制代码 按 Ctrl+C 复...

2018-11-29 19:20:44 130

转载 storm消息可靠机制(ack)的原理和使用

关于storm的基础,参照我这篇文章:流式计算storm 关于并发和并行,参照我这篇文章:并发和并行 关于storm的并行度解释,参照我这篇文章:storm的并行度解释 关于storm的流分组策略,参照我这篇文章:storm的流分组策略 关于storm的消息可靠机制,参照我这篇文章:storm的消息可靠机制--------------------- 作者:zhangSir134 来源...

2018-11-29 15:58:10 142

转载 (转载)session和cookie 区别

session原理:1、session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大 2、浏览器第一次访问服务器时会创建一个session对象并返回一个JSESSIONID=ID的值,   创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器 3、浏览器在第二次访问服务器的时候携带Cookie信息JSESSIONID=...

2018-10-22 14:59:12 152

原创 关于拦截器与过滤器使用场景、拦截器与过滤器的区别整理

拦截器与过滤器的区别总结:  过滤器在web.xml中配置:(1)因为一开始在过滤器中映射的url-pattern填写路径是*.action。所有的action要经过它的过滤。<url-pattern>*.action</url-pattern>(2)因为在web.xml中配置了过滤器,所以,执行过程所有程序都经过struts2过滤器(路径是:/*),首...

2018-10-08 15:31:33 4799

原创 Redis学习笔记--Redis数据过期策略详解

本文对Redis的过期机制简单的讲解一下  讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了Redis会自己回收清理不用的数据吗? 如果能,那如何配置? 如果不能,如何防止数据累加后大量占用存储空间的问题?  之前一直...

2018-10-04 13:21:55 128

原创 Java NIO 详解(二)

在我的上一篇文章JavaNIO详解(一)中介绍了关于标准输入输出NIO相关知识, 本篇将重点介绍基于网络编程NIO(异步IO)。异步IO异步 I/O 是一种没有阻塞地读写数据的方法。通常,在代码进行 read() 调用时,代码会阻塞直至有可供读取的数据。同样, write()调用将会阻塞直至数据能够写入,关于同步的IO请参考另一篇文章Java IO。另一方面,异步 I/O 调用不但不会...

2018-10-04 10:40:35 168 1

原创 Java NIO 详解(一)

一、基本概念描述1.1 I/O简介I/O即输入输出,是计算机与外界世界的一个借口。IO操作的实际主题是操作系统。在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象转换为字节,然后再转换为对象。关于Java IO相关知识请参考我的另一篇文章:Java IO 详解1.2 什么是NIONIO即New...

2018-10-04 10:26:25 78

原创 Java并发编程:线程池的使用

Java并发编程:线程池的使用  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?  ...

2018-10-03 21:44:58 79

转载 深入理解Java并发之synchronized实现原理

关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotation)深入理解Java类加载器(ClassLoader)深入理解Java并发之synchronized实现原理Java并发编程-无锁CAS与Unsafe类及其并发包Atomic深入理解Java内存模型(JMM)及volatile关...

2018-10-03 16:57:16 87

转载 JVM调优总结

目录数据类型堆与栈Java对象的大小引用类型按照基本回收策略分按分区对待的方式分按系统线程分如何区分垃圾如何处理碎片如何解决同时存在的对象创建和对象回收问题为什么要分代如何分代什么情况下触发垃圾回收分代垃圾回收流程示意选择合适的垃圾收集算法小结回收器选择辅助信息常见配置汇总调优总结垃圾回收的瓶颈增量收集的演进Garbage Firest(G1)展望JVM调优工具如何调优线程监控内存泄漏检查垃圾...

2018-09-26 21:51:01 99

原创 jstat命令使用

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意:使用的jdk版本是jdk8.类加载统计:C:\Users\Administrator>jstat -class 2060Loaded Bytes Unloaded Bytes Time 15756 1...

2018-09-26 21:48:14 94

转载 JVM垃圾回收与性能调优总结

 JVM垃圾回收与性能调优总结JVM调优的几种策略  一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代) Tenured(年老代) 永久代(Perm)  其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermS...

2018-09-26 21:42:08 500 1

转载 Java动态代理之JDK实现和CGlib实现(简单易懂)

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html      一:代理模式(静态代理)          代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。          静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责...

2018-09-26 10:02:34 93

转载 Linux常用操作指令(面试专用)

Linux:免费开源,多用户多任务,衍生出很多附属版本,例如常用的RedHat。。。 常用指令ls          显示文件或目录     -l           列出文件详细信息l(list)     -a          列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir         创建目录     -p           创建目录,若无父...

2018-09-06 15:29:21 124

翻译 50个最常用的Unix/Linux命令

v这篇文章翻译自http://www.thegeekstuff.com/2010/11/50-linux-commands/这些都是一些很常用的命令,这篇文章中每个命令都有一些简单的示例说明它的用法,对于想学习Unix/Linux的人,这些命令基本上都是需要掌握的:tar grep find ssh sed awk vim diff so...

2018-09-06 15:10:02 109

原创 理解zookeeper选举机制

zookeeper集群配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服务器都是平等的。这篇主要分析leader的选择机制,zookeeper提供了三种方式:LeaderElection AuthFastLeaderElection FastLeader...

2018-09-05 10:49:40 99

转载 如何设计一个秒杀系统

什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增。 秒杀一般是访问请求数量远远大于库存数量,只有少部分...

2018-09-05 09:39:01 75

原创 常见面试题整理--计算机网络篇

计算机网络相关的知识点是在面试过程中开发者经常被问到。当然可能这一块知识点与前面的操作系统、数据库相比较比重可能没那么高。但是优秀的你,一定是想做好充分的准备吧!欢迎点击去往常见面试题整理的前两篇:常见面试题整理--操作系统篇常见面试题整理--数据库篇  (一)请简述TCP\UDP的区别 TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则...

2018-09-03 15:46:17 3411

原创 HTTP与HTTPS的区别

  超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输...

2018-09-03 15:38:52 138

转载 Tomcat整体架构浅析

整体结构 1各组件解释 组件包含关系 其它组件 2组件的生命线Lifecycle 启动流程 pipeline valve机制 1名词解释 2总体分析 3接口及默认实现 pipeline Valve Value继承体系类图 自定义Valve Tomcat中的设计模式 1模板方法模式 2责任链模式 3观察者模式  ...

2018-09-01 17:11:56 99

原创 Redis和MySQL的区别

 MySQL是关系型数据库,是持久化存储的,查询检索的话,会涉及到磁盘IO操作,为了提高性能,可以使用缓存技术,而memcached就是内存数据库,数据存储在内存中(当然也可以进行持久化存储),可以用作缓存数据库。用户首先去memcached查询数据,如果未查询到(即缓存未命中),才去MySQL中查询数据,查询到的数据会更新到缓存数据库中,提供给下次可能进行的查询。提高了数据查询方面的性能。 ...

2018-09-01 16:46:40 1038

转载 HashMap 在 JDK 1.8 后新增的红黑树结构

读完本文你将了解到:  点击查看 Java 集合框架深入理解 系列 - - 乾杯 传统 HashMap 的缺点 HashMap 在 JDK 18 中新增的数据结构 红黑树 HashMap 中关于红黑树的三个关键参数 HashMap 在 JDK 18 中新增的操作桶的树形化 treeifyBin HashMap 在 JDK 18 中新增的操作 红黑树中添加元素 putT...

2018-09-01 14:35:26 274

转载 分布式锁简单入门以及三种实现方式介绍

很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车!学过Java多线程的应该都知道什么是锁,没学过的也不用担心,Java中的锁可以简单的理解为多线程情况下访问临界资源的一种线程同步机制。...

2018-08-30 23:48:52 79

转载 微服务架构下分布式事务解决方案——阿里GTS

1 微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,...

2018-08-30 23:47:15 128

转载 分布式系统之CAP理论

分布式系统之CAP理论  任老师第一节主要讲了分布式系统实现时候面临的八个问题,布置的作业就是这个,查询CAP理论。  笔者初次接触分布式,所以本文主要是一个汇总。一.CAP起源  CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency)、可用性(Availability)、...

2018-08-30 23:46:09 165

转载 分布式面试题(含解答)

分布式事务指事务的每个操作步骤都位于不同的节点上,需要保证事务的 AICD 特性。1. 产生原因数据库分库分表;SOA 架构,比如一个电商网站将订单业务和库存业务分离出来放到不同的节点上。2. 应用场景下单:减少库存同时更新订单状态。库存和订单不在不同一个数据库,因此涉及分布式事务。支付:买家账户扣款同时卖家账户入账。买家和卖家账户信息不在同一个数据库,因此涉及分布式事...

2018-08-30 23:42:55 14529

转载 聊聊分布式事务,再说说解决方案

前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事...

2018-08-30 23:42:05 99

转载 Java集合之HashSet源码分析

阅读目录一、HashSet简介二、HashSet源码分析三、HashSet的应用示例代码回到顶部一、HashSet简介  HashSet是Set接口典型实现,它按照Hash算法来存储集合中的元素,具有很好的存取和查找性能。主要具有以下特点:不保证set的迭代顺序HashSet不是同步的,如果多个线程同时访问一个HashSet,要通过代码来保证其同步集合元素值可以是null ...

2018-08-13 14:43:22 93

转载 JVM的垃圾回收机制 总结(垃圾收集、回收算法、垃圾回收器)

 相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。一、 技术背景你要了解吧 二、 哪些内存需要回收? 2.1 引用计数算法 2.1.1 算法分析 2.1.2 优缺点 2.1.3 是不是很无趣,来段代码压压惊 2.2 可达性分析算...

2018-08-11 10:46:16 156

转载 OSI七层与TCP/IP五层网络架构详解

OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助。今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 TCP/IP协议族应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表示层 数据格式化,代码转换,数据...

2018-08-11 10:09:57 82

转载 HashMap源码

这一章,我们对HashMap进行学习。我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap。内容包括:第1部分 HashMap介绍第2部分 HashMap数据结构第3部分 HashMap源码解析(基于JDK1.6.0_45)    第3.1部分 HashMap的“拉链法”相关内容    第3.2部分 HashMap的构造函数    第3.3部分 Hash...

2018-08-10 16:07:06 94

转载 HashTable源码分析

HashTable是什么HashTable是基于哈希表的Map接口的同步实现 HashTable中元素的key是唯一的,value值可重复 HashTable中元素的key和value不允许为null,如果遇到null,则返回NullPointerException HashTable中的元素是无序的public class Hashtable<K,V> ex...

2018-08-10 16:06:07 73

转载 集合框架AbstractMap

AbstractMap:  AbstractMap          AbstractMap继承了Map,但没有实现entrySet()方法(该方法还是abstract修饰),如果要继承AbstractMap,需要自己实现entrySet()方法。没有真正实现put(K key, V value)方法,这里“没有真正实现”的意思是,该方法在形式上已经实现了,即没有用ab...

2018-08-10 10:31:31 182

转载 Java关键字transient和volatile

1. transient 词义:短暂的首先说说“序列化”,把一个对象的表示转化为字节流的过程称为串行化(也称为序列化,serialization),从字节流中把对象重建出来称为反串行化(也称为为反序列化,deserialization)。transient 为不应被串行化的数据提供了一个语言级的标记数据方法。transient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标...

2018-08-10 10:14:46 86

转载 面试总结之谈谈你对面向对象的理解

对面向对象的理解在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。面向对象有三大特性,封装、继承和多态。封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据的隐秘性的同时,使代码模块化。这样做使...

2018-08-09 10:27:52 291

转载 进程间的五种通信方式介绍

进程间通信(IPC)介绍进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNI...

2018-08-07 09:39:30 151

转载 transient的用途及使用方法

1,用途  我们知道,当一个对象实现了Serilizable接口,这个对象就可以被序列化,我们不关心其内在的原理,只需要了解这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。而在开发过程中,我们可能要求:当对象被序列化时(写入字节序列到目标文件)时,有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见...

2018-08-04 12:06:30 667

转载 ArrayList源码解析

一、对于ArrayList需要掌握的七点内容ArrayList的创建:即构造器 往ArrayList中添加对象:即add(E)方法 获取ArrayList中的单个对象:即get(int index)方法 删除ArrayList中的对象:即remove(E)方法 遍历ArrayList中的对象:即iterator,在实际中更常用的是增强型的for循环去做遍历 判断对象是否存在于Arra...

2018-08-04 12:04:31 97

转载 JDK源码阅读顺序

很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起。以下为小编整理的通常所需阅读的源码范围。 标题为包名,后面序号为优先级1-4,优先级递减 1、java.lang1) Object 12) String 13) AbstractStringBuilder 14) StringBuffer 15) StringBuilder 16) Boolean 27) B...

2018-08-04 11:25:10 420

转载 浅谈AVL树,红黑树,B树,B+树原理及应用

二叉查找树简介二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质:任意节点左子树不为空,则左子树的值均小于根节点的值. 任意节点右子树不为空,则右子树的值均大于于根节点的值. 任意节点的左右子树也分别是二叉查找树. 没有键值相等的节点.局限性及应用一个二叉查找树是由n个节点随机构成,所以,对于某些情况,二叉查找树会退化成一个有n个节点的线性链...

2018-08-04 11:00:26 76

空空如也

空空如也

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

TA关注的人

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