- 博客(327)
- 资源 (3)
- 收藏
- 关注
转载 Oracle锁表查询和解锁方法
转载:https://blog.csdn.net/u013991521/article/details/53535818数据库操作语句的分类DDL:数据库模式定义语言,关键字:createDML:数据操纵语言,关键字:Insert、delete、updateDCL:数据库控制语言 ,关键字:grant、removeDQL:数据库查询语言,关键字:selectoracle表在什么情况下会被锁住DML...
2018-04-23 23:04:17 403
转载 浅谈服务治理与微服务
转载:https://blog.csdn.net/suifeng3051/article/details/53992560近期都在谈微服务,本人也正在做相关的工作,应领导要求做了一个微服务的分享,本篇文章主要来源于分享的PPT,所以有些简单,有问题可以在下面留言,大家 一起讨论。本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后再介绍微服务,微服务是服务治理的升级也是互联网架构的进一步延...
2018-04-18 23:27:50 132
转载 设计模式(二) 三种适配器模式 总结和使用场景
转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52848004本文出自:【张旭童的博客】一 概述定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。属于结构型模式主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模...
2018-04-14 17:56:25 1154
原创 JCS缓存应用和源码解密
一、理解缓存的三个核心概念Elements : JCS是一个对象缓存,能放置一些对象或是”elements”并通过key来访问它们,很像一个hashtable。可以想象JCS是一个能过Name来获取的hashtables的集合。Regions : 每一个hashtables都被称做“region”,每一个region都能被独立于其他regions配置。例如,可以有一个称做城市的region,缓存了...
2018-04-10 00:42:57 396
原创 Spring getBean实例化过程
单例bean实例保存在DefaultSingletonBeanRegistry类的ConcurrentHashMap<String, Object>(256);中1、根据bean名称从缓存中查询,如果查询到再进行判断是否FactoryBean,如果不是直接返回实例;如果是FactoryBean,再判断是否取FactoryBean本身,如果是直接返回,否则调用FactoryBean工厂的...
2018-04-06 18:12:21 695
转载 Spring JdbcTemplate方法详解
JdbcTemplate主要提供以下五类方法:execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;query方法及queryForXXX方法:用于执行查询相关语句;call方法:用于执行存储过程、函数相关语句。 JdbcTemplate...
2018-04-05 22:22:53 153
转载 volatile是否能保证数组中元素的可见性?
在javaeye有位朋友问了我一个非常好的问题。问题一个线程向volatile的数组中设置值,而另一个线程向volatile的数组中读取。比如seg.setValue(2),随后另一个线程调用seg.getValue(2),前一个线程设置的值对读取的线程是可见的吗?我看书上说volatile的数组只针对数组的引用具有volatile的语义,而不是它的元素。ConcurrentHashMap中也有这...
2018-04-05 17:41:13 853
转载 TCP粘包/拆包问题
目录TCP粘包/拆包TCP粘包/拆包问题说明TCP粘包/拆包发生的原因粘包问题的解决策略未考虑TCP粘包导致功能异常案例 TimeServer的改造TimeClient的改造 利用LineBasedFrameDecoder解决TCP粘包问题LineBasedFrameDecoder和StringDecoder的原理分析 无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘...
2018-04-03 16:56:53 417
原创 SpringAOP源码解析总结
问题一、何时生成代理bean??在getBean()过程中,进行了bean的实例化、依赖注入、初始化后,通过bean后处理器进行生成代理类。在getBean()过程中的AbstractAutowireCapableBeanFactory类的 createBean ->doCreateBean 方法完成bean的创建和依赖注入后,进入initializeBean方法进行初始化在初始化bean后...
2018-04-02 19:13:13 246
转载 Aop自动创建代理对象的原理
转载:https://blog.csdn.net/elim168/article/details/78445835我们在使用Spring Aop时,通常Spring会自动为我们创建目标bean的代理对象,以使用对应的Advisor。前提是我们在使用Spring Aop时是使用的<aop:config/>或<aop:aspectj-autoproxy/>,这是因为当我们在ap...
2018-04-02 17:30:21 375
转载 论Spring中循环依赖的正确性与Bean注入的顺序关系
一、前言最近在做项目时候遇到一个奇葩问题,就是bean依赖注入的正确性与bean直接注入的顺序有关系,但是正常情况下明明是和顺序没关系的啊,究竟啥情况那,不急,让我一一道来。二、普通Bean循环依赖-与注入顺序无关2.1 循环依赖例子与原理public class BeanA { private BeanB beanB; public BeanB g
2018-03-29 16:00:17 2220
原创 管理的道和术
两种不同的管理,一种看似管理者每天都很忙,为了管理学习很多技巧,每天都在指导和决策、督促团队,每周都开会指导方法、培训团队技巧;一种看起来轻松自然,不怎么干预团队具体的事情,定下目标和规范就行,隔段时间让团队聚聚餐大家乐和一起提团队温馨。 之前在于总管理的时候,他经常会交一些管理的具体操作方法,针对某件事具体处理他也会给予指导。他用他自己的说来说他也是每天都很勤奋的思考...
2018-03-29 11:26:07 2931
转载 读取Spring的配置文件applicationContext.xml的5种方法
1.利用ClassPathXmlApplicationContext,这种方式配置文件应该放在类包同路径下Java代码:ApplicationContext ct=new ClassPathXmlApplicationContext("applicationContext01.xml");ct.getBean("");2.利用FileSystemXmlApplicatio
2018-03-27 23:51:58 421
转载 Spring实例化bean如何决定用JDK反射或CGLIB时机
getbean时,如果没有用代理,如果bean没有配置lookup-method和replace-method则采用JDK反射否则使用CGLIB。在Spring源代码中有这样一段代码 public Object instantiate( RootBeanDefinition beanDefinition, String beanName, BeanFactory own...
2018-03-27 19:03:17 2516 1
转载 Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。 转载请注明地址 http://www.cnb...
2018-03-26 15:36:53 161
转载 Spring源码分析之BeanPostProcessor接口和BeanFactoryPostProcessor接口方法不执行原因分析
过程分析的很精彩,原文转载:https://blog.csdn.net/u011734144/article/details/72600932首先下面是我的Bean[html] view plain copy/* * Copyright 2002-2017 the original author or authors. * * Licensed under the Apache Lic...
2018-03-26 12:00:08 1067
转载 spring 动态代理如何决定使用jdk代理和cglib(网易面试题)
Spring1.2:将事务代理工厂[TransactionProxyFactoryBean] 或 自动代理拦截器[BeanNameAutoProxyCreator]的 proxyTargetClass 属性,设置为true,则使用CGLIB代理,此属性默认为false,使用JDK动态代理.以下引用 Spring Framework reference 2.0.5:Spring2.0:Spring ...
2018-03-25 23:42:04 3415
原创 JDBC编程总结
1、 元数据:指系统表存储的每个事务的相关信息,例如名字,结构,位置,类型。2、一个数据库的一个实例可以包括多个数据库。3、视图:一个或者多个表数据的逻辑显示,视图并不存储数据。4、truncate比delete效率要高。truncate 表名;truncate只能删除表里的全部数据。5、SQL语句中的字符串是单引号不是双引号。6、约束:constraint test2_uk unique(tes...
2018-03-25 23:03:41 177
原创 设计模式总结
1、命令模式:某个方法大部分逻辑依据确定,少部分逻辑不确定,需要等到方法执行时传入才能确定。可以把不确定逻辑封装进一个匿名类作为参数传递给方法,然后在方法体力调用传送参数的逻辑来实现不确定逻辑。2、观察者模式:定义了一对多依赖关系,让一个或多个观察者观察一个主题对象。当主题对象变化时依次通知依赖的观察者对象。1)、被观察对象:一个容器保存注册的观察者;一个注册方法,注册保存观察者;一个轮询通知
2018-03-23 23:24:47 149
转载 Java设计模式补充:回调模式、事件监听器模式、观察者模式(转)
一、回调函数为什么首先会讲回调函数呢?因为这个是理解监听器、观察者模式的关键。什么是回调函数所谓的回调,用于回调的函数。 回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。 有这么一句通俗的定义:就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。举个例子:这里有两个...
2018-03-23 23:15:39 1600
转载 Proxy动态代理应用、源码分析
注:1、Java的动态代理是基于接口的,如果类未实现接口是不能进行代理的,需要使用CGlib方式。前言代理是java中非常重要的一种设计模式 ,动态代理则是是一种代理模式的最佳实践,本文将由浅及深的介绍动态代理及其proxy源码分析,文章写的不一定都对,请各位看官带着批判的态度阅读此文章.代理模式是设计模式中的一种,而且在实际的开发中使用的频率非常高 ,比如spring AOP,mybatis代理...
2018-03-23 12:21:08 422
原创 【Java 并发】详解 ThreadLocal
目录前言线程局部变量使用示例具体实现ThreadLocalMap副本变量存取ThreadLocal 散列值应用场景参考文章 前言ThreadLocal 主要用来提供线程局部变量,也就是变量只对当前线程可见,本文主要记录一下对于 ThreadLocal 的理解。更多关于 Java 多线程的文章可以转到 这里。线程局部变量在多线程环境下,之所以会有并发问题,就是因为不同的线程会同时访问同一个共享变量,...
2018-03-22 22:19:25 137
原创 spring总结
1、依赖注入或者控制反转的意义,减少类与类直接的调用耦合。通过调用bean的角度为控制反转,通过容器的角度为依赖注入。类里依赖的是接口,接口通过配置文件注入实现类。2、注入方法:1)、设置注入<property name = "属性名" ref="bean名"2)、构造注入 <constructor-arg ref="bean名称"> 区别:注入的时机不同,设置为先通过无参...
2018-03-22 11:36:52 133
转载 JdbcTemplate简介
JdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。 JdbcTemplate位于中。其全限定命名为org.springframework.jdbc.core.JdbcTemplate。要使用JdbcTemlate还需一个这个包包含了一下事务和异常控制
2018-03-21 08:31:56 173
转载 Java三大器之监听器(Listener)的工作原理和代码演示
现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。首先来看一下ServletContextListener接口的源代码:[...
2018-03-19 09:26:29 137
转载 Java三大器之过滤器(Filter)的工作原理和代码演示
一、Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp,Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Servlet API中提供了一个Filter接口,开...
2018-03-18 17:15:27 263
转载 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)
本文属于本人原创,转载请注明出处:http://blog.csdn.net/xxd851116/archive/2009/06/25/4296866.aspx【前面的话】在网上经常看到有人对request.getSession(false)提出疑问,我第一次也很迷惑,看了一下J2EE1.3 API,看一下官网是怎么解释的。 【官方解释】 getSession public HttpSession...
2018-03-18 16:43:34 223
转载 一个很详细的web.xml讲解
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将<context-param>转换为键值对,并交给servletContext。 4、容...
2018-03-18 14:13:31 444
转载 走技术线,还是技术管理线?
转载的一片文章,如果工作3年后能够看到这篇文章那该多好啊??现在回头看自己10职业生涯,对自己和身边人的一些总结和思考,发现此文见解非常好!最近因为要给刚毕业的学生做一次演讲,所以就职业发展这类话题先以写博客的形式做一些思考,希望届时能给同学们带去质量更高的内容。我在《驾驭你的“职场布朗运动”》一文中谈了25条职场感悟并提出了“走技术线,还是技术管理线?”这一问题,但实际上并没有给予解答。特补上。...
2018-03-16 17:34:11 247
转载 HashMap的工作原理
转载:http://www.importnew.com/7099.html本文由 ImportNew - 唐小娟 翻译自 Javarevisited。欢迎加入翻译小组。转载请见文末要求。HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为...
2018-03-16 17:10:09 132
原创 DelayQueue源码解析
Delayed 元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部 是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 null。当一个元素的 getDelay(TimeUnit.NANOSECONDS) 方法返回一个小于等于 0 的值时,将发生到期。即使无法使用 take 或 poll 移除未到期的元素。 ...
2018-03-15 17:26:36 271
原创 ScheduledThreadPoolExecutor源码解析
一、概述ScheduledThreadPoolExecutor继承了ThreadPoolExecutor;内部扩展了任务的ScheduledFutureTask类实现运行任务后修改下一次执行时间;对队列内部采用了再次继承封装的DelayQueue队列,运用了DelayQueue队列的添加排序特性根据最先运行时间进行排序,运用了DelayQueue只有在延迟期满时才能从中提取元素,并且该队列的头部 ...
2018-03-14 22:00:37 254
原创 AtomicInteger源码解析
AtomicInteger,由于存储的值的value是volatile类型所有具有线程可见性。通过CAS比较交换进行自增,或者更新值具有原子性。所以AtomicInteger是线程安全的具有类锁一样的线程安全性。具体参见下面源码解析: private static final Unsafe unsafe = Unsafe.getUnsafe(); private static fina...
2018-03-14 15:45:37 135
原创 Java Object方法解析
方法摘要protected Objectclone() 创建并返回此对象的一个副本。如果对象的类不支持 Cloneable 接口,则重写 clone 方法的子类也会抛出此异常,以指示无法复制某个实例。对 对象进行深拷贝,但不是彻底拷贝,例如:对象的属性类进行浅拷贝;如果在实现Cloneable 接口时也对属性类也进行拷贝,则属性类也为深拷贝 booleanequals(Obj...
2018-03-14 12:13:28 214
转载 详解Java中的clone方法 — 原型模式
装载:http://www.importnew.com/22035.htmlJava中对象的创建clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有几种方式可以创建对象呢?1 使用new操作符创建一个对象2
2018-03-14 11:40:33 175
转载 Java中的String为什么是不可变的? -- String源码分析
转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用...
2018-03-14 10:18:23 163
转载 关于Java中String类的hashCode方法
首先来看一下String中hashCode方法的实现源码 1 public int hashCode() { 2 int h = hash; 3 if (h == 0 && value.length > 0) { 4 char val[] = value; 5 6 for (int i = 0; i ) { 7
2018-03-14 09:57:36 247
原创 FutureTask和Callable源码解析
通过Future和Callable可以实现异步计算框架,实现流程如下:1、实现Callable接口里的call方法。2、FutureTask(Callable callable)new FutureTask 3、Thread(FutureTask ).start启动线程4、FutureTask的get()方法阻塞式得到结果。二、源码分析//通过下面可以看到:FutureTask实现了R
2018-03-13 23:24:40 377
原创 ThreadPoolExecutor线程池源码解析
关键构造属性: volatile int runState; 保证了多线程的共享可见性 static final int RUNNING = 0; static final int SHUTDOWN = 1; 运行了SHUTDOWN static final int STOP = 2; ...
2018-03-12 23:50:43 446
原创 CopyOnWriteArrayList源码分析
1、注解:是ArrayList 的一个线程安全的变体,其中所有可变操作(add、set 等等)都是通过对底层数组进行一次新的复制来实现的。这一般需要很大的开销,但是当遍历操作的数量大大超过可变操作的数量时,这种方法可能比其他替代方法更 有效。在不能或不想进行同步遍历,但又需要从并发线程中排除冲突时,它也很有用。“快照”风格的迭代器方法在创建迭代器时使用了对数组状态的引用。此数组在迭代器的生存期内不...
2018-03-08 21:10:35 138
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人