![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 71
Todd0517
这个作者很懒,什么都没留下…
展开
-
全注解方式整合spring+mybatis模拟springboot整合
实习工作中的项目使用到了springboot。虽然springboot使用简单但是默认配置和注解挺多。如果boot想使用熟练前提要对ssm整合比较熟悉。以前开发习惯使用xml配置文件,但是使用boot后才发现注解才是王道。现在将spring+mybatis使用全注解完成整合,并且配置事务。文件中的注解与Xml进行了比对。直接上代码。@Repositorypublic interface Em原创 2017-10-17 17:29:10 · 3572 阅读 · 0 评论 -
锁类型
偏向锁:若某一锁被线程获取后,便进入偏向模式,当线程再次请求这个锁时,就无需再进行相关的同步操作了,从而节约了操作时间,如果在此之间有其他的线程进行了锁请求,则锁退出偏向模式。偏向锁,其实是无锁竞争下可重入锁的简单实现。可重入锁: 也叫递归锁,能够支持一个线程对资源的重复加锁。可重入锁修饰的代码块,执行线程在获取了锁之后仍能连续多次的获得该锁。优点:避免递归调用时,死锁问题。自旋锁:线程在没有取得锁原创 2017-12-26 13:54:53 · 697 阅读 · 0 评论 -
生产者/消费者模式Java实现方式
使用Java实现生产者/消费者模式几种方法原创 2017-11-27 19:07:52 · 794 阅读 · 0 评论 -
并发(四):线程池ThredPool
线程池原创 2017-11-24 11:33:04 · 405 阅读 · 0 评论 -
RPC协议
一、什么是RPC协议RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式。如RMI(远程方法调用)、Hessian、Http invoker等。另外,RPC是与语言无关的。二、RPC结构拆解[深入浅出 RPC](http://blog.csdn.net/mindfloating/article/原创 2017-12-06 15:14:26 · 545 阅读 · 0 评论 -
并发(三):Lcok与synchronized区别
1.什么是锁?锁是用来控制多个线程访问共享资源的方式。一般来说,一个锁能够防止多个线程同时访问共享资源。2.synchronized和lock比较:Lock接口虽然需要通过显示方法来获取和释放锁,但是却拥有了锁获取与释放的可操作性、可中断的获取锁、以及超时获取锁等多种synchronized关键字不具备的同步性。获取锁前:a.锁获取与释放的可操作性:原创 2017-11-14 15:48:11 · 4158 阅读 · 0 评论 -
共享变量在线程间的可见性
一共享变量在线程间的可见性 (1)有关可见性的一些概念介绍 可见性:一个线程对共享变量值的修改,能够及实地被其他线程看到。 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。所有的变量都存储在主内存中。 线程的工作内存:每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的副本(主内存转载 2017-11-04 14:18:12 · 5251 阅读 · 0 评论 -
并发(二):java线程池技术
Java并发编程:线程池的使用 Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那转载 2017-11-12 15:20:32 · 1590 阅读 · 0 评论 -
并发(一):java并发概念以及Volatile可见性,重排序
参考:java并发编程的艺术-方腾飞1.线程通信与线程同步:通信:指线程之间以何种机制来交换信息。a.共享内存模式即:线程之间共享程序的公共状态,通过读写内存中的公共状态来进行间接通信。b.消息传递模式:线程之间没有公共状态,线程之间必须通过发送消息来直接进行通信。同步:程序中用于控制不同线程间操作发生相对顺序的机制。a.共享内存模式中:某个方法或某段代码在线程之间原创 2017-11-11 17:53:03 · 2456 阅读 · 0 评论 -
cglib实现动态代理(二)
JDK实现动态代理需要代理类实现接口,这导致在使用中有很大的局限性,毕竟不是所有类都需要实现接口。而cglib通过继承的方式动态产生代理类,cglib是动态代理框架,功能很强大。改造上节中的日志代理:/** * cglib的处理器 * */public class LogProxyCglib implements MethodInterceptor { private Obje原创 2017-10-14 16:03:48 · 1608 阅读 · 0 评论 -
JDK动态代理与静态代理(一)
顾名思义为某个类的对象提供代理服务,协助该对象解决核心方法以外的问题。静态代理:委托类对象运行之前,代理类对象已经存在。且服务于某些特定类对象(同一个接口下)。静态代理举例:优点:代理类不需要了解委托类类的具体实现(秘书不知道老板开会的内容),客户端方法调用时,只需要知道代理类对象即可(告知秘书BossA要开会)。缺点:1.代码冗余。代理类和委托类实现了相同接口原创 2017-10-13 09:09:16 · 1671 阅读 · 1 评论 -
基于springAop动态切换数据源实现读写分离
读写分离的好处:高并发互联网下减少数据库压力。详细请自行百度。现在需求:读数据从test库中,写数据从test2中。根据调用方法的不同实现动态切换。直接代码:bean.xml:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema原创 2017-10-19 13:43:41 · 1994 阅读 · 0 评论 -
HashMap实现原理
结构:数组+链表+红黑树1.HashMap可以添加null类型的键值,并且可以保证正常的输出。(HashTable虽然添加是编译器不报错,但是获取Null的键时会报空指针异常)。2.两个决定HashMap性能的重要参数: initial capacity:初始容量,默认16。 load factor:负载因子,默认0.75. 负载因子(已经使用/总长度)决定当原创 2018-01-07 22:00:10 · 449 阅读 · 0 评论