- 博客(45)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 synchronized与Lock的区别
两者区别:1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类;2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;3.synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()方法释放锁),否则容易造成线程死锁;...
2019-04-15 09:51:19
237
原创 高并发编程-CAS深入解析
CAS(Compare and swap)直译过来就是比较和替换,是一种通过硬件实现并发安全的常用技术,底层通过利用CPU的CAS指令对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。仔细观察J.U.C包中类的实现代码,会发现这些类中大量使用到了CAS,所以CAS是Java并发包的实现基础。它的实现过程是,有3个操作数,内存值V,旧的预期值E,要修改的新值U,当且仅当预期值E和内存值V相同...
2019-04-15 09:50:23
219
原创 Netty-BIO/NIO/AIO
BIO/NIO/AIO区别强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/同步异步阻塞非阻塞-通俗理解首先来举个例子说明吧,假设你想吃一份盖饭:同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊!同步非阻塞:在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊!异步阻塞:遛狗的时候,接到饭馆电话,说饭做好了,让您亲自去...
2019-04-15 09:48:59
220
转载 网络编程中的线程模型
传统阻塞 I/O 服务模型、Reactor 模式、Proactor 模型强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/传统阻塞 I/O 服务模型特点:1)采用阻塞式 I/O 模型获取输入数据;2)每个连接都需要独立的线程完成数据输入,业务处理,数据返回的完整操作。存在问题:1)当并发数较大时,需要创建大量线程来处理连接,系统资源占用...
2019-04-15 09:48:18
374
转载 网络编程中的I/O模型
阻塞式 I/O 模型(blocking I/O)、非阻塞式 I/O 模型(non-blocking I/O)、I/O 复用模型(I/O multiplexing)、信号驱动式 I/O 模型(signal-driven I/O)、异步 I/O 模型(即AIO,全称asynchronous I/O)强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/互联...
2019-04-15 09:47:26
265
原创 mysql-使用规范
来源于58同城30条规范!适用场景:并发量大、数据量大的互联网业务一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高(2)必须使用UTF8字符集 UTF-8MB4解读:万国码,无需转码,无乱码风险,节省空间(3)数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的###(4...
2019-04-15 09:46:30
183
原创 JMM解决多线程问题
对于高并发编程,多线程是重点,JMM怎么解决原子性、可见性、有序性的问题?强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/JMM概念在Java中提供了一系列和并发处理相关的关键字,比如volatile、Synchronized、final、juc等,使得我们不需要关心底层的编译器优化、缓存一致性的问题了,所以在Java内存模型中,除了定义了一套...
2019-04-04 15:44:06
517
原创 多线程基本概念
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/线程出现的背景解决进程中多任务的实时性问题?其实简单来说,也就是解决“阻塞”的问题,阻塞的意思就是程序运行到某个函数或过程后等待某些事件发生而暂时停止 CPU 占用的情况,也就是说会使得 CPU 闲置。还有一些场景就是比如对于一个函数中的运算逻辑的性能问题,我们可以通过多线程的技术,使得一个函...
2019-04-04 15:43:16
195
原创 RPC简介
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。这些进程可以运行...
2019-04-04 15:42:25
277
原创 并发编程实现原理2
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/synchronized的使用在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了,Java SE 1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和...
2019-04-04 15:39:53
183
原创 并发编程实现原理
JMM如何解决原子性、可见性、有序性的问题以及volatile原理强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/JMM怎么解决原子性、可见性、有序性的问题?在Java中提供了一系列和并发处理相关的关键字,比如volatile、Synchronized、final、juc等,这些就是Java内存模型封装了底层的实现后提供给开发人员使用的关键字,...
2019-04-04 15:39:01
299
原创 并发编程基本概念
多线程是互联网开发中重要的技术点,由于平时使用少,需要重点加强!推荐Java架构师学习网址:https://qiuyadongsite.github.io/多线程的发展历史什么情况下应该使用多线程线程出现的目的是什么?解决进程中多任务的实时性问题?其实简单来说,也就是解决“阻塞”的问题,阻塞的意思就是程序运行到某个函数或过程后等待某些事件发生而暂时停止 CPU 占用的情况,也就是说会使得...
2019-04-04 15:37:57
213
原创 并发编程术语
并发编程一直是个挑战,so,那就先挑战这个喽并发编程的目的目的:为了让程序更快的执行。并不是启动更多的线程就能让程序最大限度的执行。上下文切换任务从保存到再加载的过程就是一次上下文切换多线程一定快吗不一定,当上下文切换的消耗很大时,效率会差不多甚至慢。工具:Lmbench3,测试上下文切换的时长vmstat,测试上下文切换的次数如何减少上下文切换无锁并发编程:多线程...
2019-04-04 15:35:23
112
原创 架构师学习体系
并发编程谨记spring源码atom工具使用mysql系统部署知识汇总大型互联网设计模式架构师git架构演进高并发分布式jvmLucene线性表dockermarkdown语言使用mybatis微服务概念日志web多线程JAVASEMongoDBJavaScript队列和栈树图散列表算法概念JVMTcpHTTP序列化RPCzookeep...
2019-04-04 10:47:18
217
原创 spring概述
对于java程序员来说,最常用的就是spring框架,首先对spring框架有简单认识。Spring体系结构1.核心容器由spring-beans、spring-core、spring-context和spring-expression(spEL Spring Expression Language)4个模块组成spring-beans和spring-core模块是sprin...
2018-11-06 23:29:14
196
原创 架构师知识汇总
由于学海无涯,总得找到方向,看别人总结的,按照有步骤的进行才不会迷失。时间管理关于时间的管理。首先,要有一个大一点的计划,比如年计划,月计划,周计划。这一年大体上要达到什么目标,这个月要学习哪些知识。然后是精确到小时的日计划。每一天,哪个时间段做什么都详细的列出来。其次,不要太盲目自信。很多人其实从来没有完成过自己的计划。如果你真的能够完成你制定的每一个计划,那现在的你一定已经很了不起了...
2018-11-06 23:06:05
395
原创 并发编程术语
并发编程一直是个挑战,so,那就先挑战这个喽并发编程的目的目的:为了让程序更快的执行。并不是启动更多的线程就能让程序最大限度的执行。上下文切换任务从保存到再加载的过程就是一次上下文切换多线程一定快吗不一定,当上下文切换的消耗很大时,效率会差不多甚至慢。工具:Lmbench3,测试上下文切换的时长vmstat,测试上下文切换的次数如何减少上下文切换无锁并发编程:多...
2018-10-25 23:42:35
109
原创 技术关注总结
## 关注深层次原理---工具就是拿来用的,程序也不例外。身为java工程师深知,版本更迭,用法更替,关注不能局限在工具的用法上,这样会随波逐流。要让自己占主导,就必须懂原理,才能使自己不会迷失。* 关注的内容不能是:工具的使用,工作经历让我明白,工具的配置,如:eclipse的使用,maven的配置,hadoop的部署,linux上docker的使用等等。这些东西再精通也不必暗喜,因为迟...
2018-10-25 14:49:23
170
原创 Eclipse常用快捷键
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/1、Ctrl + E,在右边显示出当前打开的所有文件。2、Ctrl + Pg Up ,Ctrl + Pg Dn ,逐个文件跳跃。按下Ctrl + Pg Dn,从AdConf.java 跳到 AdQuaryServiceImpl.java第三招:显示当前类的所有属性和方法以前都是...
2018-07-05 16:43:32
375
原创 json字符串转换成对象
用两种方法实现:1,使用gson com.google.code.gson gson 2.5 json字符串转换长对象:对象转换成json:案例:Gson gson =new Gson(); Dog dog=new Dog(); dog.set
2017-02-09 14:34:40
878
原创 Java使用javax.mail发送邮件
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/这里使用maven项目进行开发1.首先pom中加载jar<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId>...
2017-02-09 13:54:56
9903
原创 redmine的安装和配置
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/ Redmine是基于web的项目管理软件; 1.安装redmine: 这里使用BitNami进行安装,简单方便,BitNami是一个开源项目,该项目产生的开源软件包括安装 Web应用程序和解决方案堆栈。它很好的整合了redmine的...
2017-02-07 19:37:49
3100
原创 设计模式总结
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/1,单例模式 《1》当系统中只需要一个实例时,创建多余的实例可以带来系统开销 《2》业务逻辑、Dao、数据源组件可以复用,不需要保存任何用户状态的组件 实现: 为了用于保存创建的实例,便于下次使用,则需要定义一个静态属性来保存该创建的对象;...
2017-01-17 13:55:03
244
原创 spring基本用法总结二
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/创建bean的三种方式:1.使用构造器创建Bean(constructor-arg )(前面已介绍)2,使用静态工厂方法创建Bean 《1》bean中的class使用静态工厂 《2》factory-method使用静态工厂的静态方法 如果静态...
2017-01-13 18:08:01
300
原创 spring基本用法总结
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/使用两年spring后,发现对spring依旧陌生,遂重新总结spring基础用法特性:1,依赖注入的核心机制;2,Aop的声明式事务管理;3与多种持久层结合使用;4,web MVC的优秀使用;一、下载安装 1,http://repo.springsource.org/lib...
2017-01-13 17:11:15
1392
原创 activemq官方文档分析二
Master / SlaveMaster Slave Type Requirements Pros Cons Shared File System Master SlaveA shared file system such as a SAN Run as many slaves as requ
2017-01-13 09:57:46
869
原创 activemq官方文档分析
ActiveMQ实时特性: 多播:ActiveBlaze提供基础设施的快速、可靠的点对点消息传递来满足高性能和协作应用程序的要求。使用一个通道的基本构建块,存在一个功能层次结构用于不同的问题领域,每一个的一个超集。BlazeChannel支持广播主题——使用可靠多播或point-cast; 组的成员关系 :ActiveBlaze支持组
2017-01-12 17:59:14
3534
原创 activeMQ源码解析之源码调试启动
从官网下载activeMQ源码或者从github上git下来后,就可以对高大上的源码进行调试了:1,先分析源码发现它是maven项目,具有很多子module,每一个modul都是一个子工程。2.对它进行编译,由于源码需要大量的jar包,编译需要很长时间,很多工程还有test过程很费时间,所以决定跳过test,使用maven脚本进行编译:mvn package -DskipTests,其
2017-01-10 15:03:56
2407
原创 js标签的取值与赋值总结
1.获取chockbox中的值和赋值 var autoNoramlizer=$('[name="name"]').prop("checked"); if(autoNoramlizer==true){ autoNoramlizer=1; }else{ autoNoramlizer=0;
2016-11-08 13:54:55
5903
原创 日期工具类org.apache.commons.lang.time.DateUtils,使用公共类
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/public class DateUtils { private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",...
2016-11-02 17:03:20
13997
原创 java文件夹拷贝
//主方法public static void copy(String src, String des) { File file1=new File(src); File[] fs=file1.listFiles(); File file2=new File(des); if(!file2.exists
2016-11-02 16:57:58
225
原创 Java动态生成bat文件备份数据库
String t = Thread.currentThread().getContextClassLoader().getResource("").getPath();获取发布运行路径int num = t.indexOf("test");查找此项目跟目录位置String path = t.substring(1, num).replace('/', '\\')+ "test\\stati
2016-11-02 16:53:52
752
原创 eclipse发布Web及路径问题
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/为了使项目默认部署到tomcat安装目录下的webapps中,show view—>servers—>找到需要修改的tomcat—>右击①停止eclipse内的Tomcat服务器(stop)②删除该容器中部署的项目(add and remove)③清除该容器相关数据(c...
2016-11-02 16:42:28
531
原创 Maven项目一直处于build workspace问题解决和下载plugin2.5失败的问题
Maven项目一直处于build workspace问题解:问题描述:新的工作空间,配置了Maven,tomcat,jdk用svn更下来代码,进行maven Clean 和instali,中间卡住了就强制关掉!将maven的包从别处拷贝过来,再打开能校验,但一直处于build workspace %以前的状态。解决:将eclipse的project的building atuo对勾去掉,再单
2016-10-20 17:42:14
3763
1
原创 java学习规划和前阶段总结
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/当前初入公司开发半年,基本的开发都有所了解,包括web开发的框架Spring-MVC+myBaits,前端开发用datatables、bootsrap,开发客户端用javaFx作为用户接口,使用了mysql进行了同步实验,使用了windows8 Server进行了故障转移实验,使用了instalsh...
2016-10-17 18:19:56
464
原创 dataTables分页展示数据注意事项(案例)(一)
强力推荐Java架构师学习网址:https://qiuyadongsite.github.io/dataTables可以高效的提供大量数据的表格展示:代码如:前台:table = $('#example').DataTable( { "ajax" : "/c", "ordering" :...
2016-10-14 10:15:47
7523
TA创建的收藏夹 TA关注的收藏夹
TA关注的人