- 博客(115)
- 资源 (34)
- 问答 (1)
- 收藏
- 关注
转载 什么样的RPC才是好用的RPC
什么样的RPC才是好用的RPC现在RPC框架很多,但是真正好用的RPC却是少之又少。那么什么是好用的RPC,什么是不好用的RPC呢,有一个评判标准吗?下面是我列举出来的衡量RPC好用与否的几条标准:真的像本地函数一样调用使用简单,用户只需要关注业务即可灵活,RPC调用的序列化方式可以自由定制,比如支持json,支持msgpack等方式下面来分别解释这几条标准。
2016-08-31 23:10:15 572
转载 UML类图中箭头和线条的含义和用法
UML类图中箭头和线条的含义和用法UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条来实现。关系后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。依赖(Dependency)实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于
2016-08-31 22:06:59 1341
转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
本文原文连接: http://blog.csdn.net/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,
2016-08-31 20:02:04 631
转载 分布式事务介绍
事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。事务是为了保障业务数据的完整性和准确性的。分布式事务,常见的两个处理办法:1)两段式提交:典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉大家,一起提交,大家都提交了。2)补偿:
2016-08-31 19:35:12 667
原创 Javac编译器详解
前端编译器:把*.java文件转变成*.class文件 后端运行期编译器(JIT编译器,Just In Time Compiler):把字节码转成机器码 静态提前编译器(AOT编译器,Ahead Of Time Compiler):把*.java编译成本地机器码 前端编译器:Sun的Javac、Eclipse JDT中的增量式编辑器(ECJ) JIT编译器:HotS
2016-08-31 13:38:27 6927 1
转载 Mybatis简介和原理
什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和D
2016-08-31 12:40:06 731
转载 Kafka分布式消息队列框架
是什么 简单的说,Kafka是由Linkedin开发的一个分布式的消息队列系统(Message Queue) 目标Scope(解决什么问题)kafka开发的主要初衷目标是构建一
2016-08-31 11:41:50 530
转载 MapReduce工作原理图文详解
MapReduce工作原理图文详解 MapReduce作业运行流程 流程分析:1.在客户端启动一个作业。2.向JobTracker请求一个Job ID。3.将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客户端计算所得的输入划分信息。这些文件都存放在JobTracker专
2016-08-31 09:36:52 522
转载 Hadoop入门
Hadoop历史 雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计
2016-08-30 22:55:38 377
原创 方正电子公司--部分笔试题
1.下列哪个方法声明是正确的(A)A. public static void final m4()B. public abstract synchronized void m3()C. public abstract native void m2()D. public abstract static void m1()2.JDK1.6中,switch(expr)中exp
2016-08-30 21:33:05 1487
原创 XML文件中不允许出现的字符
一共有五个:所有的特殊字符对应的编码:特殊字符 代替符号 特殊原因& & 每一个代表符号的开头字符> > 标记的结束字符标记的开始字符" &quo
2016-08-30 21:30:33 10871
原创 Java子类构造函数中默认调用父类的空参构造函数
测试代码如下:父类:public class ParentTest { public ParentTest(){ System.out.println(1); } public ParentTest(String name){ System.out.println(2); }}子类:public class ChildTest extends Par
2016-08-30 21:10:51 3383
原创 Java中构造函数、static块、{}块的执行顺序
测试代码如下:父类:public class ParentTest { public ParentTest(){ System.out.println(0); } static{ System.out.println(1); } { System.out.println(2); }}子类:public class ChildTest ext
2016-08-30 20:56:33 611
转载 Oracle字段类型
CHAR 固定长度字符串 最大长度2000 bytes VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes NVARCHAR2
2016-08-30 20:47:17 1411
转载 Servlet生命周期和工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。service():它是S
2016-08-30 20:10:25 4945
转载 JDBC数据库连接池connection关闭后Statement和ResultSet未关闭的问题
本文转自:http://k1121.iteye.com/blog/1279063(1) 主要问题针对关闭connection是否会自动关闭Statement和ResultSet的问题,以及Statement和ResultSet所占用资源是否会自动释放问题,JDBC处理规范或JDK规范中做了如下描述:JDBC处理规范JDBC. 3.0 Speci
2016-08-30 19:28:53 3423
转载 有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally
2016-08-30 19:10:50 568
转载 Struts与Struts2的区别
从Struts2的发展过程来看,Struts2继承了Struts与WebWork的血脉,Struts2取两者之精华,形成新德框架,但是struts2还是更多的继承了struts的设计思想,并加入了WebWork的优点。在了解Struts2体系之前,让我们先看看struts2对struts做了哪些修改。Struts2与struts的不同主要体现在以下几个方面。(1) Action类
2016-08-30 12:04:34 721
转载 悲观锁和乐观锁的区别
锁( locking )业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中,数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “ 锁 ” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。
2016-08-30 11:45:21 666
转载 Redis五种数据类型的使用场景
String[html] view plain copy 1、String 常用命令: 除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符
2016-08-30 11:19:12 697
转载 Mongodb的数据类型
逻辑结构关系对比我们用一张表格来对关系型数据库和MongoDB进行对比MongoDB关系型数据库文档对象(document)行(row)集合(collection)表(table)数据库(database)数据库(database)
2016-08-30 10:57:38 898
转载 Mongodb和Redis的区别
简介MongoDB更类似Mysql,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。内存管理机制Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。MongoDB数据存在内存,由linux系统mmap
2016-08-30 10:40:38 443
转载 Spring Quartz定时器 配置文件详解
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。一、增加所依
2016-08-30 09:46:09 874
原创 实战:OutOfMemoryError和StackOverflowError异常
Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。 -Xms:堆的最小值 -Xmx:堆的最大值 -XX:+HeapDumpOnOutOfMemoryError:可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事
2016-08-25 11:15:43 3987
原创 JVM运行时数据区域
Java虚拟机运行时数据区:程序计数器(Program Counter Register) 它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 由于Java虚拟机的多线程是通过线程轮流切换并分配处
2016-08-25 10:02:27 369
原创 Tomcat正统的类加载器架构
一个功能健全的Web服务器,要解决如下几个问题: 1)部署在同一个服务器上的两个Web应用程序所使用的Java类库可以实现相互隔离。 2)部署在同一个服务器上的两个Web应用程序所使用的Java类库可以相互共享。 3)服务器需要尽可能地保证自身的安全不受部署的Web应用程序影响。 4)支持JSP应用的Web服务器,大多数都需要支持HotSwap功能。“主流”的Web服务器都
2016-08-25 09:08:01 872
原创 JVM垃圾收集器参数总结
垃圾收集相关的常用参数参数描述UseSerialGC 虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收UseParNewGC打开此开关后,使用ParNew+Serial Old的收集器组合进行内存回收UseConcMarkSweepGC打开此开关后,使用Par
2016-08-24 20:13:35 1282
原创 JVM垃圾收集器--G1收集器
G1(Garbage-First)是一款面向服务端应用的垃圾收集器。 与其它GC收集器相比,G1具备如下特点: 1)并行与并发:G1能充分利用多CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短Stop-The-World停顿时间,部分其它收集器原本需要停顿Java线程执行的GC动作,G1收集器仍然可以通过并发的方式让Java程序继续执行。 2)分代收集:
2016-08-24 19:05:38 952
原创 JVM垃圾收集器
这里讨论的收集器基于JDK1.7 Update 14之后的HotSpot虚拟机(在这个版本正式提供了商用的G1收集器,之前G1仍处于试验状态),这个虚拟机包含的所有收集器如下:HotSpot虚拟机的垃圾收集器 上图中:如果两个收集器之间存在连线,就说明它们可以搭配使用。1.Serial收集器 这个收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅说明它只
2016-08-24 09:05:28 393
原创 HotSpot的算法实现
1.枚举根节点 从可达性分析中从GC Roots节点找引用链这个操作为例,可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如帧栈中的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用,那么必然会消耗很多时间。 另外,可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保一致性的快照中进行--这里“一
2016-08-23 13:48:07 431
原创 JVM对象已死吗
1.引用计数器(Reference Counting) 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的对象就是不可能再被使用的。 使用引用计数器算法进行内存管理的应用: 1)微软的COM(Component Object Model)技术 2)使用ActionScript3的FlashPlayer
2016-08-23 10:11:00 651
原创 JVM垃圾收集器--概述
垃圾收集(Garbage Collection,GC),人们就在思考GC需要完成的3件事情: 1)哪些内存需要回收? 2)什么时候回收? 3)如何回收? 为什么我们要去了解GC和内存分配呢?答案很简单:当需要排查各种内存溢出、内存泄露时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 Java内存运行时区域的各
2016-08-23 10:09:52 401
原创 JVM垃圾收集算法
1.标记-清除算法(Mark-Sweep) 算法分为:“标记”和“清除”两个阶段。 主要不足: 1)效率问题:标记和清除两个过程的效率都不高 2)空间问题:标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。2.复制算法(Copying) 它将可用内存按
2016-08-23 09:42:29 368
转载 TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手整个过程如下图所示:TCP连接状态说明CLOSED表示初始状态。LISTEN表示服务器端的某个SOCKET处于监听状态,可以接受连接。SYN_SENT在服务器监听后,客户端SOCKET执行CONNECTION连接时,客户端发送SYN报文,此时客户端就进入了SYN_SENT状态
2016-08-22 10:36:58 486
原创 注入攻击--SQL注入
注入攻击的本质是把用户输入的数据当做代码执行。这里有两个关键条件: 1)用户能够控制输入 2)原本程序要执行的代码,拼接了用户输入的数据SQL注入的典型例子var ShipCity;ShipCity = Request.form("ShipCity");var sql = "select * from OrdersTable where ShipCity='"+Sh
2016-08-22 09:20:42 1540
原创 应用层拒绝服务攻击--DDOS简介
DDOS(Distributed Denial of Service)又称为分布式拒绝服务。DDOS本是利用合理的请求造成资源过载,导致服务不可用。 分布式拒绝服务攻击,将正常请求放大了若干倍,通过若干个网络节点同时发起攻击,以达成规模效应。这些网络节点往往是黑客们所控制的“肉鸡”,数量达到了一定规模后,就形成了一个“僵尸网络”。大型的僵尸网络,甚至达到了数万,数十万台的规模。如此规模的僵尸网
2016-08-21 22:16:38 1974
原创 跨站点请求伪造(CSRF)--简介
全名(Cross Site Request Forgery)。 攻击者首先在自己的域构造一个页面:http://www.a.com/csrf.html 其内容为: 攻击者诱使目标用户访问这个页面。 该用户看到了一张无法显示的图片,再回过头看看搜狐博客,发现id=123456789的博客已经被删除了。 原来刚才访问http://www.a.com/csrf.html时,图片标
2016-08-21 22:06:26 749
原创 跨站脚本攻击(XSS)--简介
英文全称(Cross Site Script),简称“XSS”。 XSS攻击,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。 XSS根据效果不同分为: 1.反射型XSS例如:${input}正常URL请求假设是这样:http://www.a.com/test.htm?param=这是一个测试!传递给变量i
2016-08-21 20:48:47 633
原创 JVM关闭
正常关闭: 1.当最后一个“正常(非守护)”线程结束时 2.当调用System.exit时 3.通过其它特定于平台的方法关闭(例如发送了SIGINT信号或键入Ctrl+C) 强行关闭: 1.调用Runtime.halt 2.在操作系统中“杀死”JVM进程(例如发送SIGKILL)1.关闭钩子(Shutdown Hook) 关闭钩子指通过Runtime.add
2016-08-21 15:34:11 2364
原创 Java并发编程--线程封闭(Ad-hoc、栈、ThreadLocal)
线程封闭(Thread Confinement):仅在单线程内访问数据,不需要同步。常见应用是:JDBC(Java Database Connectivity)的Connection对象。1.Ad-hoc线程封闭 指维护线程封闭性的职责完全由程序实现来承担。Ad-hoc线程封闭是非常脆弱的,因为没有任何一种语言特性,例如可见性修饰符或局部变量,能将对象封闭到目标线程上。 当决定使用
2016-08-21 10:51:38 4771
iterm2.zip
2016-09-28
btrace-bin.zip
2016-09-01
org.eclipse.jdt.astview_1.1.9.201406161921.jar
2016-08-31
emoji表情web处理
2017-09-21
中国省市县三级json数据
2017-09-02
CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
2017-08-01
Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例
2017-07-24
dubbo-monitor-simple-2.5.3-assembly.tar.gz
2017-06-14
dubbo-montor-sample-2.5.4.tar.gz
2017-06-14
阿里巴巴的dubbo 解压后直接放到tomcat/webapps下即可
2017-06-02
URL后面多了&yyue=a21bo.50862.201879,有知道怎么解决的大神吗
2018-09-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人