排序:
默认
按更新时间
按访问量

LinkedList类的源码阅读

继ArrayList之后,我们来看一下LinkedList源码,先说一下他们实现的接口的不同之处: 相同处: 都显现了List<E>、Cloneable、java.io.Serializable其中可能不大明白的就是Cloneable接口,它是一个空...

2018-08-02 13:55:45

阅读数:11

评论数:0

listIterator迭代器的学习

在看listIterator迭代器之前,我们先来总结一下它与iterator迭代器的相同点和不同点。 相同点: 1)都是迭代器,在对集合进行遍历时都可以使用。 2)都有hashNext和next方法,都能顺序遍历。 3)都可以实现删除操作。 说的更直白一点的话,就是iterator有的方...

2018-07-16 16:31:42

阅读数:20

评论数:0

ArrayList源码学习

在之前已经讲解了迭代器在ArrayList中的实现,那么我们接下来看一下这个ArrayList的类的详细实现;

2018-07-13 10:22:48

阅读数:21

评论数:0

iterator接口源码分析(ArrayList中的实现)

iterator是一个迭代器接口,它里面主要有:boolean hasNext();E next();这两个方法,第一个方法表示迭代器含有更多元素则返回true;否则返回false;第二个方法是返回迭代器的下一个元素;其中还有两个实现方法: default void remove() { ...

2018-07-05 00:21:01

阅读数:42

评论数:0

springboot整合swagger2

由于我们在使用springboot集群时接口的调用比较多,文档整理起来也比较麻烦,所以我们整合一下自动生成api那不就很方便了,只要方法已经生成或者修改,接口都会出现自动更新,这样就让我们很方便的使用了,那么接下来我们就是去实现它:<dependency&gt...

2018-06-22 15:42:43

阅读数:21

评论数:0

springcloud的一个消费者对应多个生产者获取方法底层实现

上一篇已经实现了springcloud注册中心、生产者和基本的消费者;我们会不会有这样一个疑问?如果生产者是个集群,那么我们消费者如何去获取哪一个地址作为本次的消费?这就涉及到了负载均衡:我们先看一下我们的程序: @Autowired LoadBalancerClient loadB...

2018-06-14 09:22:22

阅读数:281

评论数:0

SpringBoot搭建的注册中心

这里实现注册中心的有好几种:Consul、Zookeeper和我们将要说的Netflix Eureka;这里的区别和选择就不说了,大家可以看看:Eureka的工作原理以及它与ZooKeeper的区别和Eureka与ZooKeeper 的比较(转)这里我们只是用Consul和Netflix Eure...

2018-06-10 21:18:55

阅读数:342

评论数:0

Executor使用小结

我们之前创建一个线程的时候,就是直到new一个Thread创建一个线程,但是在jdk1.5之后,Java为我们提供了一个Java.util.concurrent包,这个包下有Executor接口,这就为我们提供了线程池的方法去开启多个线程,那么说到这里我们是不是会问:为什么要用Executor呢?...

2018-06-02 19:51:35

阅读数:689

评论数:0

使用Hessian进行序列化和反序列化

这东西没啥可说的直接上代码: /** * 这是讲object序列化 * @param obj * @return */ public static byte[] serialization(Object obj){ if(obj==null){ throw new Nu...

2018-05-28 22:22:33

阅读数:118

评论数:0

重写request的getSession方法实现集群session共享

我们在用redis实现session共享的时候,会遇到这样的问题:当一个用户登陆后,可能集群环境下给你分配到另一台服务器,这时候你用request.getSession()获取的session是现在服务器上的session,里面没有你想要的用户信息,然后你又要重新登录,这样是你会同意吗,肯定不行的...

2018-05-21 23:07:05

阅读数:456

评论数:7

解压版redis主从分离window测试需要的命令

使用解压版的redis这样修改配置文件后启动,这时候发现还是以前的配置文件,无论你怎么修改都不会起作用,这里就要用别的方法启动了:按住 Shift键+鼠标右键然后在窗口中输入 redis-server.exe redis.conf这样你发现端口号已经改变;接下来处理redis-cli.exe同样的...

2018-05-17 16:47:27

阅读数:22

评论数:0

redis实现缓存的小例子

首先导入jar包<dependency> <groupId>org.springframework.data</groupId> &a...

2018-05-17 13:13:38

阅读数:66

评论数:0

Java实现注解AOP的小例子以及一些注意事项

使用AOP实现我们想要的拦截一些方法,然后把各个对象组织成一个整体;那么我们来看一下使用@Aspect注解实现aop的方法是怎么实现的以及一些可能造成的错误分析:1.创建一个切面和通知;@Component @Aspect public class UserAspect { @Pointcut(...

2018-05-13 22:27:38

阅读数:74

评论数:0

springBean的生命周期

这里我们只是说一下spring容器管理的Bean的生命周期,spring容器是通过依赖注入来实现对Bean的管理的;那我们来看看它是如何进行对象管理的:说道容器管理springBean,那么我们首先要去启动容器,我们来看看spring容器的启动为我们做了什么吧!1.容器的启动2.容器的关闭而spr...

2018-05-13 00:11:39

阅读数:30

评论数:0

spring的依赖注入和控制反转

先看下图:传统方式就是主动创建;例如你看到一种果汁的描述如下:public class MakeOrange { private String water; private String sugar; private String orange;你看到了描述后想要喝这种果汁,然后你主动的找...

2018-05-07 11:25:32

阅读数:22

评论数:0

mybatis插件

在之前我们知道configuration创建过程中调用了private void parseConfiguration(XNode root) 这个方法,其中有一句pluginElement(root.evalNode("plugins"));方法,这个就是读取...

2018-05-02 13:03:22

阅读数:15

评论数:0

mybatis运行过程深度解析(三)

我们知道:通过XMLConfigBuild我们获取了把xml配置文件解析成的configuration对象,然后我们使用它来创建了SQLSessionFactory,这个过程封装成了一个SQLSessionFactoryBuild类;有了SQLSessionFactory我们讲究直接可以获取到SQ...

2018-05-02 13:03:05

阅读数:25

评论数:0

mybatis运行过程深度解析(二)

接着上面的一继续往下看:SQLSession的执行过程,有了SQLSessionFactory对象就可以轻易的获取SQLSession。不过SQLSession也是一个接口。在之前写的文章中,我们看到这段代码:UserDao mapper=sqlSession.getMapper(UserDao....

2018-05-01 20:02:55

阅读数:17

评论数:0

mybatis运行过程深度解析(一)

mybatis的运行分为两大步:1.读取配置文件缓存到Configuration对象中,用以创建SQLSessionFactory;2.SQLSession的执行过程。首先我们来说一下这个SQLSessionFactory构建;首先我们要知道,SQLSessionFactory是一个接口,而不是一...

2018-05-01 19:00:10

阅读数:27

评论数:0

自测一下mybatis的一级缓存和二级缓存

首先我们来说一下定义:一级缓存,就是在SqlSession上的缓存;二级缓存,就是在SQLSessionFactory上的缓存。在没有任何配置的情况下,mybatis默认开启一级缓存;public static void main(String[] args) { Logger log = L...

2018-04-30 02:14:41

阅读数:27

评论数:0

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