自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM性能调优监控工具

原创转载请注明出处:http://agilestyle.iteye.com/blog/2371409 jpsjsp命令用来输出JVM虚拟机进程的一些信息,可以列出虚拟机当前正在执行的进程,并显示其主类(即main函数所在的class)和进程的ID。jps可以方便地找到进程主类对应的进程ID jstatjstat是一个可以用来对虚拟机各种运行状态进行监控的工具,通过它可以...

2017-04-26 22:13:29 357

原创 HTTPS 协议

原创转载请注明出处:http://agilestyle.iteye.com/blog/2371306 HTTPSHTTPS —— Hypertext Transfer Protocol over Secure Socket Layer,即基于SSL的HTTP协议,简单地说就是HTTP的安全版 依托SSL协议,HTTPS协议能够确保整个通信过程都是经过加密的,密钥随机产生,并...

2017-04-26 13:53:32 422

原创 负载均衡算法

原创转载请注明出处:http://agilestyle.iteye.com/blog/2371213 负载均衡算法轮询随机源地址哈希加权轮询加权随机最小连接数

2017-04-25 21:54:25 328

原创 分布式系统基础设施常用术语

原创转载请注明出处:http://agilestyle.iteye.com/blog/2371211 分布式缓存主要作用用于在高并发环境下,减轻数据库的压力,提高系统的响应速度和并发吞吐。当大量的读写请求涌向数据库时,磁盘的处理速度与内存显然不在一个量级,因此,在数据库之前加一层缓存,能够显著提高系统的响应速度,并降低数据库的压力。 持久化存储MySQL作为传统的关系型...

2017-04-25 21:30:35 449

原创 JS Typical Questions

原创转载请注明出处:http://agilestyle.iteye.com/blog/2370610 Scope(function() { var a = b = 5;})();console.log(a);console.log(b);ReferenceError: a is not defined5Note:a 被关键字var声明,说明 ...

2017-04-21 10:56:45 239

原创 NodeJS常见术语、操作、区别

原创转载请注明出处: http://agilestyle.iteye.com/blog/2370379 Node.js 通过 libuv 来处理与操作系统的交互,并且因此具备了异步、非阻塞、事件驱动的能力。Node.js 实际上是 Javascript 执行线程的单线程,真正的的 I/O 操作,底层 API 调用都是通过多线程执行的。CPU 密集型的任务是 Node.js 的软...

2017-04-20 12:36:05 240

原创 表级锁、行级锁、页面锁

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369740 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 Re...

2017-04-17 21:30:42 278

原创 分布式事务

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369545 涉及分布式数据库,则要考虑使用分布式事务,最常见的如两阶段提交、三阶段提交协议,这种方式实现事务回滚难度较低,但是对性能影响比较大,因为在大多数场景中需要的是最终一致性,而不是强一致性。因此,可以考虑事务表、消息队列、补偿机制(执行/回滚)、TCC模式(预占/确认/取消)、Sagas模...

2017-04-16 23:45:38 140

原创 Java缓存类型

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369544 Java缓存类型堆缓存使用Java堆内存来存储缓存对象。使用堆缓存的好处是没有序列化/反序列化,是最快的缓存。缺点也很没明显,当缓存的数据量很大时,GC暂时时间会变长,存储容量受限于堆空间大小。一般通过软引用/弱引用来存储缓存对象,即当堆内存不足时,可以强制回收这部分内存释放堆...

2017-04-16 23:37:12 204

原创 Java类加载器类型

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369539 JVM自带的加载器根类加载器(Bootstrap)(C++编写)扩展类加载器(Extension)(Java编写)系统类加载器System)(也被称为应用类加载器,Java编写)用户自定义的类加载器java.lang.ClassLoader的子类用户可以定...

2017-04-16 23:17:44 173

原创 JVM heap and stack

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369538 heap 和stack 有什么区别栈是运行时的单位,地址是由高到低减少的。堆是存储的单位,地址是由低到高增长的。栈中存的是基本数据类型和堆中对象的引用;堆中存的是对象。 ...

2017-04-16 23:05:25 167

原创 Spring MVC processing flow

原创转载请注明出处:http://agilestyle.iteye.com/blog/2369016DispatcherServlet receives the request.DispatcherServlet dispatches the task of selecting an appropriate controller to HandlerMapping. Handle...

2017-04-13 19:36:20 239

原创 高可用高并发设计原则

原创转载请注明出处:http://agilestyle.iteye.com/blog/2368282 高并发原则无状态拆分服务化消息队列数据异构缓存银弹并发化 高可用原则网站高可用的主要手段是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份,任何一台服务器宕机不影响应用的整体可用,也不会导致数据丢失。对于应用服务器...

2017-04-09 22:34:58 715

原创 网站架构演化历程

原创转载请注明出处:http://agilestyle.iteye.com/blog/2367277 初始阶段的网站架构 应用服务和数据服务分离 使用缓存改善网站性能 使用应用服务器集群改善网站的并发处理能力 数据库读写分离 使用反向代理和CDN加速网站响应 使用分布式文件系统和分布式数据库系统 使用NoSQL和搜索引擎 ...

2017-04-04 14:36:38 153

原创 Cookie和Session

原创转载请注明出处:http://agilestyle.iteye.com/blog/2367166 CookieCookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些Cookie,如果Cookie很多,则无形地增加了客户端与服务端的数据传输量,而Session的出现正是为了解决这个问题。 Session同一个客户每次和服务端交互时,不需要...

2017-04-02 23:37:43 161

原创 Oracle优化常见术语

原创转载请注明出处:http://agilestyle.iteye.com/blog/2367164 Explain Planhttp://www.orafaq.com/wiki/Explain_Plan DBMS STATShttp://www.orafaq.com/wiki/DBMS_STATS Hinthttp://www.orafaq.com/wik...

2017-04-02 23:03:48 181

原创 Oracle分区

原创转载请注明出处:http://agilestyle.iteye.com/blog/2367159 Introductionhttp://www.orafaq.com/wiki/Partitioning Range partitioninghttp://www.orafaq.com/wiki/Range_partitioning List partitioni...

2017-04-02 22:03:28 172

原创 JSON hijacking

原创转载请注明出处:http://agilestyle.iteye.com/blog/2367009 IssueJSON劫持利用一些浏览器的功能,允许脚本覆盖核心语言的对象setter的例程,它允许恶意JavaScript插入逻辑,使其监控服务器返回的JSON消息。 在一个JSON劫持攻击中,攻击者将覆盖的JavaScript数组传递给它的构造函数来窃取信息。攻击者然后嵌入...

2017-04-01 11:42:34 309

原创 Node Fetch

原创转载请注明出处:http://agilestyle.iteye.com/blog/2364959 Client-Side Fetchhttps://github.com/github/fetch Server-Side Fetchhttps://github.com/bitinn/node-fetch  

2017-03-23 10:23:02 515

原创 Find the 'closest' value in a BST with a given value M

原创转载请注明出处:http://agilestyle.iteye.com/blog/2361956 Question:Find the 'closest' value in a BST with a given value M Analysis:1. Traditional Binary Search Tree searching M: O(logN) time to...

2017-03-13 15:27:24 192

原创 Print all possible combinations of coins per change amount

原创转载请注明出处:http://agilestyle.iteye.com/blog/2361927 Question:Given a change amount, print all possible combinations using different sets of coins Solution:核心思想:递归1. Sort coins from larg...

2017-03-13 14:24:43 187

原创 Print all pairs of values a sorted array that sum up to a given value M

原创转载请注明出处:http://agilestyle.iteye.com/blog/2361909 QuestionPrint all pairs of values a sorted array that sum up to a given value M Example Solution1. Scan from both ends, calculate t...

2017-03-13 12:16:34 126

原创 Merge Two Sorted Arrays without additional memory

原创转载请注明出处:http://agilestyle.iteye.com/blog/2361133 QuestionMerge Two Sorted Arrays into the larger array, given the large array has extra storage. Merge without additional memory Requireme...

2017-03-09 13:58:32 166

原创 Use stack (LIFO) to simulate queue (FIFO)

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360962 Solution1. Using 2 stacks1.1. One stack to accept incoming values in FILO manner1.2. The other stack to reverse the values in first stack...

2017-03-08 16:28:12 136

原创 Print all elements at a given level in the binary tree

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360924 method 1 —— 使用两个队列use a queue to store elements and levelskeep dequeing elements until the associated levels equals to the desired levelp...

2017-03-08 15:09:42 121

原创 Verify if a tree is a binary search tree(BST)

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360893 Binary Search Treeany node in left sub-tree < its parentany node in rigth sub-tree > its parent核心思想:递归recursively to check valu...

2017-03-08 12:11:38 159

原创 Print all valid combinations of groups of parenthesis

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360764 Given Three pairs of "((()))"Print "()()(), (())(), ()(()), ((()))" 核心思想:递归package org.fool.java.test;public class ParenthesisPrint...

2017-03-07 16:42:24 110

原创 Reverse a linked list

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360694 Recursive IdeaReverse(Head -> Remaining List)=>Reverse(Remaining List) -> Head Example:Reverse(1->2->3->4->5)...

2017-03-07 13:08:01 170

原创 Get all subset of a set

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360659 找出一个Set集合中的所有子集比如全集为 {1, 2, 3}子集则有{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3} 此算法的核心思想:递归package org.fool.java.collections;import ja...

2017-03-07 10:14:24 204

原创 内存映射缓存区

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360214 MappedByteBufferMappedByteBuffer是java nio引入的文件内存映射方案,读写性能极高。NIO最主要的就是实现了对异步操作的支持。其中一种通过把一个套接字通道(SocketChannel)注册到一个选择器(Selector)中,不时调用后者的选择(s...

2017-03-03 21:45:46 2886

原创 直接缓冲区

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360210 直接缓冲区( ByteBuffer.allocateDirect() )(1)通道只接收  ByteBuffer 作为参数(2) 操作系统的在内存区域中进行 I/O 操作。就操作系统方面而言, 这些内存区域是相连的字节序列 。于是, 只有字节缓冲区有资格参与I/O 操作 。操作...

2017-03-03 21:28:08 294

原创 TCP和UDP区别

原创转载请注明出处:http://agilestyle.iteye.com/admin/blogs/2360162 TCPTCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。 UDPUDP 是User Datagram Protocol的简称, 中文名是用...

2017-03-03 17:08:41 158

原创 Spring常见术语、操作、区别

原创转载请注明出处:http://agilestyle.iteye.com/blog/2360084 什么是Spring?Spring框架中的核心组件只有3个:Core、Context、Bean。Bean:演出中的演员Context:演出的舞台背景Core:演出的道具它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等上层的特性功能。S...

2017-03-03 13:34:43 262

原创 Java中volatile如何保证long和double的原子性操作

原创转载请注明出处:http://agilestyle.iteye.com/blog/2359969 关键字volatile的主要作用是使变量在多个线程间可见,但无法保证原子性,对于多个线程访问同一个实例变量需要加锁进行同步。package org.fool.java.concurrent.volatiletest;import java.util.concurrent.E...

2017-03-02 23:05:08 4622 2

原创 a=a+b和a+=b的区别

原创转载请注明出处:http://agilestyle.iteye.com/blog/2359966 a=a+b和a+=b的区别对于同样类型的a和b,实际上没有任何区别对于不同类型的a和b,需要注意的是强制类型转换package org.fool.test;public class Demo { public static void main(String[...

2017-03-02 22:47:12 302

原创 Hibernate常见术语、操作、区别

原创转载请注明出处:http://agilestyle.iteye.com/blog/2359961 Hibernate核心接口ConfigurationSessionFactorySessionQueryCriteriaTransaction Hibernate工作原理配置Configuration对象,读取并解析配置文件读取并解析映射信息,创...

2017-03-02 22:08:12 129

原创 interrupted()和isInterrupted()的区别

原创转载请注明出处:http://agilestyle.iteye.com/blog/2359893 Method in Java Doc 调用interrupt()方法仅仅是在当前线程中打了一个停止的标记,并不是真正的停止线程package org.fool.java.concurrent.interrupt;public class InterruptTest1...

2017-03-02 16:29:16 165

原创 Java多线程状态切换

原创转载请注明出处:http://agilestyle.iteye.com/blog/2359863 线程状态新建(New)当线程被创建时,它只会短暂地处于这个状态。此时它已经分配了必须的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间了,之后调度器将把这个线程转变为可运行状态或阻塞状态。就绪(Runnable)在这种状态下,只要调度器把时间片分配给线程,线程...

2017-03-02 14:58:59 148

原创 Java解决hash冲突的办法

原创转载请注明出处:http://agilestyle.iteye.com/blog/2359703 Hash冲突 解决办法开放定址法(线性探测再散列,二次探测再散列,伪随机探测再散列)再哈希法链地址法建立一个公共溢出区Note:Java中HashMap采用的是 链地址法 Referencehttps://en.wikipedia.org...

2017-03-01 16:11:58 603

原创 MySQL分区

原创转载请注明出处:http://agilestyle.iteye.com/blog/2358878 分区分区是一种表的设计模式。正确的分区可以极大地提升数据库的查询效率,完成更高质量的SQL编程。但是如果错误的使用分区,或者过于迷信分区,那么分区可能带来毁灭性的结果。 MySQL数据库在5.1版本时添加了对分区的支持。分区的过程是将一个表或者索引分解为多个更小、更可管理的...

2017-02-24 14:11:17 107

空空如也

空空如也

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

TA关注的人

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