摘要: 类加载器将字节码文件加载到内存中,同时在方法区中生成对应的java.land.class对象 作为外部访问方法区的入口。 类加载器的层次结构: 引导类加载器《 扩展类加载器《 引用程序类加载器《 自定义类加载器 1、引导类加载器加载jre/lib/rt.jar包下加载核心类库 2、扩展类加载器 负责 阅读全文
posted @ 2018-07-21 22:27 liuwd 阅读(166) 评论(0) 推荐(0)
摘要: 使用PageHelper实现分页 PageHelper实现了通用的分页查询,其支持的数据有,mysql、Oracle、DB2、PostgreSQL等主流的数据库。该插件托管于github: https://github.com/pagehelper/Mybatis-PageHelper参考博客: h 阅读全文
posted @ 2018-07-21 21:55 liuwd 阅读(91) 评论(0) 推荐(0)
摘要: cglib采用了非常底层的字节码技术,通过目标类的字节码,为目标类创建子类,并在子类中用方法拦截技术,拦截所有父类方法的调用,并对拦截方法进行增强。 1)底层采用字节码框架ASM,来转换字节码来生成新的类。 2)更详细的说:代理类将目标类作为自己的父类并为每个不是final修饰的方法,创建两个方法: 阅读全文
posted @ 2018-07-21 21:45 liuwd 阅读(204) 评论(0) 推荐(0)
摘要: sql注入发生的时间,sql注入发生的阶段在sql预编译阶段,当编译完成的sql不会产生sql注入 采用jdbc操作数据时候 preparedStatement 预编译对象会对传入sql进行预编译,那么当传入id 字符串为 "update ft_proposal set id = 3;drop ta 阅读全文
posted @ 2018-07-21 21:01 liuwd 阅读(2386) 评论(0) 推荐(0)
摘要: 1、什么是分布式事务 通俗讲一个大操作由不同的小操作组成,这些小操作分布在不同服务器上,并且属于不同的应用,分布式事务需要保证这些操作要目全部成功,要么全部失败,本质上将:分布式保证不同数据库的数据一致性。 2、分布式事务产生的原因 2.1 数据分库分表 当数据库单表一年产生的数据超过1000w 那 阅读全文
posted @ 2018-07-19 17:25 liuwd 阅读(467) 评论(0) 推荐(0)
摘要: 为什么缓存数据库更要首选redis?如何使用redis? 一、使用缓存数据库为什么首选用redis? 我们都知道,把一些热数据存到缓存中可以极大的提高速度,那么问题来了,是用Redis好还是Memcached好呢,以下是它们两者之间一些简单的区别与比较: 1. Redis不仅支持简单的k/v类型的数 阅读全文
posted @ 2018-07-13 16:47 liuwd 阅读(158) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-07-12 17:22 liuwd 阅读(5) 评论(0) 推荐(0)
摘要: 问题1、char 与varchar的区别? varchar是变长而char的长度是固定的。如果你的内容是固定的大小,char性能更好。 char[4] 与varchar[4] 存储字母a a占一个字符 varchar长度为4但是占此时为一个字符长度 而char则占4个字符 问题2、truncate 阅读全文
posted @ 2018-07-10 23:12 liuwd 阅读(236) 评论(0) 推荐(0)
摘要: 在学习线程,NIO等知识时都需要知道一些基础知识。 一、什么是同步或异步 同步:个人通俗理解多个人排队打饭一个窗口,只有前面一个人打完了,后面的人才能打。如果前面人因为什么原因一直站在那里不走,后面的人就一直需要等待。 如果有多个任务或事件要发生,多个任务或事件要逐个去执行,如果其中有一个事件或任务 阅读全文
posted @ 2018-07-10 21:36 liuwd 阅读(151) 评论(0) 推荐(0)
摘要: 享元模式主要是为了减少创建对象的数量以减少内存占用和性能提供 在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。 使用常见;需要缓冲池 1)声明一个形状接口 /** * 享元模式下声明形状接口 * @author Ad 阅读全文
posted @ 2018-07-08 13:39 liuwd 阅读(121) 评论(0) 推荐(0)