自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 如何高效的学习一门技术

高效学习高效的学习技术这个技术出现的背景,初衷和要达到什么样的目标或者要解决什么样的问题。学习一个技术,知道这个技术的成因和目标,也就是这个技术的灵魂。这个技术的优势和劣势分别是什么,这个技术的trade-off是什么。任何一个技术都有其好坏,解决一个问题的时候会带来另一个问题,所以要清楚这个技术的优势和劣势,带来的挑战。这个技术的试用场景。学习一个技术不但知道...

2019-02-20 21:13:00 402

转载 阅读源码心得-如何阅读源码

转载于:https://www.cnblogs.com/200911/p/9829439.html

2018-10-22 12:18:00 302

转载 设计模式(八)学习----适配器模式

参考:https://www.cnblogs.com/java-my-life/archive/2012/04/13/2442795.html转载于:https://www.cnblogs.com/200911/p/9100642.html

2018-05-28 16:05:00 283

转载 linux-AWK

常用命令:输出第1列和第4例awk '{print $1, $4}' netstat.txt格式化输出, C语言的printf没什么两样awk '{printf "%-8s %-8s %-8s %-18s %-22s %-15s\n",$1,$2,$3,$4,$5,$6}' netstat.txt过滤记录, 下面过滤条件为:第三列的值为0 &&...

2018-05-17 12:08:00 193

转载 【深入Java虚拟机】二 类加载与双亲委派

https://blog.csdn.net/zhangliangzi/article/details/51338291 -参考双亲委派过程:当一个类加载器收到类加载任务时,立即将任务委派给它的父类加载器去执行,直至委派给最顶层的启动类加载器为止。如果父类加载器无法加载委派给它的类时,将类加载任务退回给它的下一级加载器去执行;除了启动类加载器以外,每个类加载器拥有一个父类加载器...

2018-05-08 12:08:00 95

转载 【深入Java虚拟机】一 JVM类加载过程

首先Throws(抛出)几个自己学习过程中一直疑惑的问题:1、什么是类加载?什么时候进行类加载?2、什么是类初始化?什么时候进行类初始化?3、什么时候会为变量分配内存?4、什么时候会为变量赋默认初值?什么时候会为变量赋程序设定的初值?5、类加载器是什么?6、如何编写一个自定义的类加载器?首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制...

2018-05-08 10:26:00 123

转载 java动态编译

Java动态编译:http://pfmiles.github.io/blog/dynamic-java/动态编译代码:https://github.com/giraffe/DynamicJavaCompilerJava 类运行时动态编译技术:https://seanwangjs.github.io/2018/03/13/java-runtime-compile.htmlJa...

2018-05-06 19:35:00 90

转载 Java 8 并发性基础

https://www.ibm.com/developerworks/cn/java/j-jvmc2/index.htmlhttp://www.nurkiewicz.com/2013/05/java-8-definitive-guide-to.htmlhttp://colobu.com/2016/02/29/Java-CompletableFuture/ht...

2018-01-22 15:22:00 94

转载 设计模式(八)学习----责任链模式

类图待补充抽象处理者(BuyPower)角色:定义个处理请求的接口。此角色由java的抽象类和java接口实现。具体处理者角色(PresidentBuyPower):具体处理这街道请求之后,可以选择将请求处理掉,也可以将请求传给下家。由于具体处理者持有对下家的引用,因此,如果需要,具体处理这可以访问下家。1.定义处理请求的抽象类,handler定...

2018-01-03 10:54:00 124

转载 设计模式(七)学习----命令模式

命令模式的定义:模式的组成:* 抽象命令类(Command):声明执行操作的接口。调用接收者TVReceiver响应的操作,以实现执行的方法execute。* 具体命令类(TvChangeCommand,TvCloseCommand,TvOpenCommand):创建一个具体命令对象并设定它的接收者。通常会持有接收者,并调用接收者的功能来完成命令要执行的操作* 调用者(RemoteCon...

2018-01-03 10:39:00 144

转载 设计模式(六)学习----组合模式

待补充图,定义等。1.为组合中的对象申明接口package desigh.commands.composites;/** * * * @author lipeng24@meituan.com * @create 2017-10-26 下午7:56 **/public interface ComponentFile { /** ...

2018-01-03 10:21:00 106

转载 Linux top和负载的解释(转载)

转载自://www.blogjava.net/freeman1984/archive/2011/12/08/365853.htmlop命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up1:22,1 user,load avera...

2017-11-29 12:34:00 102

转载 学习博客

https://foolchild.cn/page13/转载于:https://www.cnblogs.com/200911/p/7599143.html

2017-09-26 21:52:00 93

转载 Zero-Copy实现原理

参考文章Nio Is Real 'Zero-Copy'?:https://dongc.github.io/2015/12/09/717/ 参考文章:Linux I/O (二):A Process Of Reading Disk File:https://dongc.github.io/2016/07/14/1335/转载于:https://ww...

2017-09-08 12:48:00 117

转载 解决业务代码里的分布式事务一致性问题

参考1:https://zhuanlan.zhihu.com/p/25346771参考2:介绍ACID,CAP,BASE解决一致性的问题文章 http://www.10tiao.com/html/219/201703/2659599109/1.html转载于:https://www.cnblogs.com/200911/p/7477981.html...

2017-09-05 11:56:00 91

转载 用好这6个APP,学英语SO EASY!

http://www.jianshu.com/p/30a27af18340转载于:https://www.cnblogs.com/200911/p/7441915.html

2017-08-27 22:47:00 132

转载 我们正在招聘java工程师,想来美团工作吗?

我们希望你有?1、3年以上Java服务器开发经验,精通Java及面向对象设计开发,熟悉主流web框架2、熟悉网络编程,熟悉TCP/IP协议,熟悉互联网应用协议3、有大规模分布式系统设计与开发经验熟悉SOA架构者优先4、熟悉Redis、Zookeeper、MySQL、Elastic Search、RPC框架等开源系统者优先5、有电商交易、订单、商品订单系统研发经历者优先...

2017-08-27 22:20:00 119

转载 线程池调优

引用:1.http://www.infoq.com/cn/articles/the-importance-of-thread-pool-in-java-web-application --infoQ 线程池调优方案2.http://www.importnew.com/22554.html --importnew线程池调优转载于:https://www.cn...

2017-08-27 11:20:00 147

转载 理解select,poll,epoll实现分析

mark 引用:http://janfan.cn/chinese/2015/01/05/select-poll-impl-inside-the-kernel.html文章select()/poll() 的内核实现05 Jan 2015同时对多个文件设备进行I/O事件监听的时候(I/O multiplexing),我们经常会用到系统调用函数select()poll...

2017-06-15 11:58:00 145

转载 时序图

http://www.cnblogs.com/ywqu/archive/2009/12/22/1629426.html转载于:https://www.cnblogs.com/200911/p/6991663.html

2017-06-12 10:32:00 85

转载 性能监控-TP理解

首先给出Google到的答案:The tp90 is a minimum time under which 90% of requests have been served.tp90 = top percentile 90Imagine you have response times:10s1000s100s2sCalculating TP is very ...

2017-04-18 20:09:00 162

转载 Java注解(Annotation)

一、注解1.1 概述注解(Annotation)在JDK1.5之后增加的一个新特性,注解的引入意义很大,有很多非常有名的框架,比如Hibernate、Spring等框架中都大量使用注解。注解作为程序的元数据嵌入到程序。注解可以被解析工具或编译工具解析,此处注意注解不同于注释(comment)。当一个接口直接继承java.lang.annotation.Annotation接口...

2017-04-13 21:20:00 156

转载 Joda-Time 简介

https://www.ibm.com/developerworks/cn/java/j-jodatime.html转载于:https://www.cnblogs.com/200911/p/6547529.html

2017-03-14 11:16:00 71

转载 JUC回顾之-Semaphore底层实现和原理

1.控制并发线程数的Semaphore Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,保证合理的使用公共资源。 线程可以通过acquire()方法来获取信号量的许可,当信号量中没有可用的许可的时候,线程阻塞,直到有可用的许可为止。线程可以通过release()方法释放它持有 的信号量的许可。2.Semaphore的方法列...

2016-11-13 23:16:00 177

转载 JUC回顾之-CyclicBarrier底层实现和原理

1.CyclicBarrier 字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时候,屏障才会开门。所有被屏障拦截的线程才会运行。2.常用的方法: CyclicBarrier(int parties)创建一个新的 CyclicBarrier,它将在给定数...

2016-11-13 22:30:00 159

转载 JUC系列回顾之-CountDownLatch底层原理和示例

CountDownLatch 是一个同步工具类,允许一个线程或者多个线程等待其他线程完成操作,再执行。CountDownLatch(int count)构造一个用给定计数初始化的 CountDownLatch。// 使当前线程在锁存器倒计数至零之前一直等待,除非线程被中断。void await()// 使当前线程在锁存器倒计数至零之前一直等待,除非线程被...

2016-11-13 20:16:00 182

转载 mysql优化总结

SQL优化目的:降低响应时间 直接影响用户体验度降低资源使用率 主要体现在IO和CPU上,网络、内存消耗优化原则:1.IN子查询改成JOIN2.NOT IN子查询改成LEFT JOIN3.消除无效子查询4.禁用select *,只读取所需字段5.LIMIT M, N 大分页修改成JOIN形式6.大结果集 limit限制,where限制,分页读取7.使用wh...

2016-11-13 00:33:00 88

转载 JUC回顾之-ScheduledThreadPoolExecutor底层实现原理和应用

项目中经常使用定时器,比如每隔一段时间清理下线过期的F码,或者应用timer定期查询MQ在数据库的配置,根据不同version实现配置的实时更新等等。但是timer是存在一些缺陷的,因为Timer在执行定时任务时只创建一个线程,所以如果存在多个任务,比如两个,第一个任务执行的时间很长,超过两个任务执行的间隔时间,会发生一些问题:可以看出内部只要一个线程执行任务:...

2016-11-08 11:40:00 125

转载 JUC回顾之-可重入的互斥锁ReentrantLock

1.什么是可重锁ReentrantLock? 就是支持重新进入的锁,表示该锁能够支持一个线程对资源的重复加锁。底层实现原理主要是利用通过继承AQS来实现的,也是利用通过对volatile state的CAS操作+CLH队列来实现;支持公平锁和非公平锁。CAS:Compare and Swap 比较并交换。CAS的思想很简单:3个参数,一个当前内存值V、预期值A,即将更新的...

2016-11-06 17:32:00 132

转载 JUC回顾之-AQS同步器的实现原理

1.什么是AQS? AQS的核心思想是基于volatile int state这样的volatile变量,配合Unsafe工具对其原子性的操作来实现对当前锁状态进行修改。同步器内部依赖一个FIFO的双向队列来完成资源获取线程的排队工作。2.同步器的应用 同步器主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态,对同步状态的修改或者访问主要通过同步器...

2016-11-04 18:13:00 223

转载 java基础知识回顾之java Thread类学习(十二)-- 线程中断

官方文档翻译: 如果本线程是处于阻塞状态:调用线程的wait(), wait(long)或wait(long, int)会让它进入等待(阻塞)状态,或者调用线程的join(), join(long),join(long, int), sleep(long), sleep(long, int)也会让它进入阻塞状态。若线程在阻塞状态时,调用了它的interrup...

2016-11-03 17:20:00 83

转载 java基础知识回顾之java Thread类学习(十一)--join方法的理解

以下面例子说明下面的源码:main 线程 和 A线程,A线程是main线程创建并且启动的,main线程优先级比较高,正在执行;这个时候main线程调用A.join()之后,main线程一直等待,直到A线程运行完毕,main线程才运行。join方法的源码: * Waits at most {@codemillis} milliseconds for this thr...

2016-11-03 17:08:00 99

转载 JUC回顾之-volatile的原理和使用

1.计算机内存模型的相关概念原理 计算机在执行程序时,每条指令都是在CPU中执行的,在指令的执行过程中,涉及到数据的读取和写入。由于程序在运行的过程中数据是放在"主存"中的,由于数据从主存中读取数据和写入数据要比CPU执行指令的速度慢的多,如果任何时候对数据的操作都需要通过和主存进行交互,会大大降低指令的执行速度。因此在CPU处理器里面有了高速缓存。 ...

2016-10-29 14:00:00 162

转载 JUC回顾之-ArrayBlockingQueue底层实现和原理

ArrayBlockingQueue的原理和底层实现的数据结构:ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列,可以按照FIFO(先进先出)原则对元素进行排序。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 ...

2016-10-24 18:17:00 230

转载 spring mvc 框架URL接收中文参数的乱码解决方案

后台可能就会出现乱码,具体解决方案如下:一、配置tomcat目录下的service.xml文件tomcat7/conf/server.xml给该行代码加上 URIEncoding="UTF-8" 的编码属性 <Connector port="8080" protocol="HTTP/1.1" connectio...

2016-10-18 16:17:00 253

转载 Linux 系统磁盘满处理方法

1.使用find命令,找出占用空间较大的文件 find / -type f -size +5G —找到大于5G的文件,有work权限的情况下可以使用 find . -type f -size +10000k --linux 下查找大于10M的文件 find -type f -size +500k -and -size -1000k --查找大小为500K...

2016-10-17 22:12:00 131

转载 MyBatis的深入原理分析之1-架构设计以及实例分析

MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个核心部件,然后结合一个select查询实例,深入代码,来探究MyBatis的实现。一、MyBatis的框架设计 注:上图很大程度上参考了iteye 上的chenjc_it所写的博文原理分析之二:...

2016-09-26 18:30:00 175

转载 MySQL性能优化的最佳20+条经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1...

2016-09-13 17:12:00 89

转载 MyBatis如何防止SQL注入

SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自]SQL injection - WikipediaSQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序。所...

2016-09-13 17:07:00 1460

转载 JUC回顾之-ConcurrentHashMap源码解读及原理理解

ConcurrentHashMap结构图如下:ConcurrentHashMap实现类图如下:segment的结构图如下:package concurrentMy.juc_collections.hashMap;import java.io.IOException;import java.io.Obj...

2016-08-23 18:18:00 221

空空如也

空空如也

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

TA关注的人

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