- 博客(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关注的人