自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u010900754的专栏

真心希望国内博客环境 多一些原创 少一些复制

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 【mysql】unique key index区别

关系大致是这样:mysql中的unique约束是通过索引实现的;key的含义是概念级别的,意味着唯一性,key的概念等价于unique;所以说只要加了unique约束或者key,就会建立一个索引。在mysql中,使用index或者unique(以及key)都会简历索引,区别在于是否允许重复,这个可以在show index命令中看到。CREATE TABLE user1(...

2019-06-30 13:47:31 5328

原创 【Java】NamedParameterJdbcTemplate 用法

NamedParameterJdbcTemplate底层实现还是JDBCTemplate,只不过后者传参是通过占位符,所以需要维护顺序。这里的NamedParameterJdbcTemplate则提供了通过指定名字的方式来传参,可以不用再可以维护位置。因为要指定名字传参,所以需要提供一个键值对,在NamedParameterJdbcTemplate里有是那种方式:1.传入一个map;2...

2019-06-29 23:45:41 958

原创 【Java】Spring JDBCTemplate 实现

JDBCTemplate是使用模板设计模式的典范。通过使用接口做一定的抽象,避免了jdbc的样板代码。关于jdbc的样板代码这里就不做介绍了,大家应该都知道,这里直接看JDBCTemplate。String sql = "select * from user"; jdbcTemplate.query("", new Object[]{},new RowMapper&l...

2019-06-29 17:00:05 925

原创 【Java】lamda表达式(二)lamda表达式 与 框架

https://blog.csdn.net/u010900754/article/details/80290867这里介绍过一些lamda表达式的基本用法。这一篇谈一下自己对lamda表达式的一些感悟。1.困惑不知道大家有没有这种感觉,看源码尤其是一些框架代码,只要是有lamda表达式或者匿名内部类的地方,就容易头晕,经常看着看着就晕了。。。之前看公司框架层代码的时候差点...

2019-06-29 16:38:01 601

原创 【Java】classpath

classpath的作用在于让虚拟机找到运行所需的class。那么classpath是在哪定义的?可能会遇到这样的问题。我用不同方式执行下面一行打印classpath的代码,结果可能不同。System.out.println(System.getProperty("java.class.path"));不同方式是指在idea里直接run和打成jar包使用java -jar的方式run...

2019-06-26 11:06:42 422

原创 【maven】jar war

jar:可以分两种,一种是sdk,提供给其他项目使用的接口或者公共类库,这种打包不需要打依赖,只打本工程的文件即可。另一种是main程序,比如说定时任务或者rpc服务等,这种是需要在生产环境运行的,需要打依赖,可以使用类似assembly这样的插件。war:如果使用maven则比较方便,因为maven有自己的文件目录规范,并且会自动把依赖的jar包打入war包lib目录,这一点通过war-...

2019-06-25 23:26:43 134

原创 【Java】序列化

为什么需要?将内存中的对象信息持久化下来。Serializable接口?要想序列化一个对象,该对象的类定义必须实现Serializable接口,该接口只是一个标记接口,并不会承载任何序列化的功能。序列化过程中会检测对象是否是Serializable类型,如果不是就会抛出异常。serialVersionUID?以前写用ide程序时,总会碰到提示,让生成一个serialVersio...

2019-06-23 15:00:38 136

原创 【Java】线程池(三)拒绝策略

如果线程池无法执行任务,就会执行选择用当前的拒绝策略处理任务:public void execute(Runnable command) { if (command == null) throw new NullPointerException(); /* * Proceed in 3 steps: ...

2019-06-22 22:53:02 289

原创 【Java】内部类(二)

今天看到一篇很好的讲java内部类的文章,决定再总结下java的内部类。原文:https://juejin.im/entry/5d0821935188253444037fd4傻逼百度居然搜不到。。。内部类分类?1)静态内部类,static关键字修饰;2)非静态内部类;非静态内部类又可以进一步分为方法内部类,类内部类和匿名内部类三种。作用或者说为什么需要内部类...

2019-06-20 21:51:59 179

原创 【SpringMVC(一)】父子容器 web应用 容器启动 原理

之前介绍了spring ioc容器的基本原理,这里介绍下spring ioc容器在web场景下的原理。主要从以下几个方面:1.web应用容器概述2.web应用父容器启动过程;3.web应用父容器与servletContext的关系;4.dispatcherServlet中子容器启动过程;5.dispatcherServlet的子容器与父容器的关系;6.两个容器的配置文件;...

2019-06-16 21:57:50 1032 2

原创 【Spring】autowired NullPointerException

代码:@Servicepublic class Api { @Autowired private ServiceA serviceA; private String name = serviceA.getName();}@Servicepublic class ServiceA { public String getName(){ ...

2019-06-16 18:25:40 1191

原创 【Spring(三)】IOC 容器实现

Spring IOC可以帮助我们管理对象之间的依赖,那么内部又是如何实现的?首先看下IOC相关的接口定义:BeanFactory:最顶层的bean接口,主要定义了容器最基本的功能,比如根据bean的name或者type来获取bean。接着是三个扩展的接口,都继承了BeanFactory。HierarchicalBeanFactory定义了bean容器可以有父子关系。Li...

2019-06-16 17:38:05 237

原创 【缓存】缓存更新策略

这里不是缓存过期策略。缓存用于缓解后端db的压力,策略指的是更新缓存以及db的方式。主要可以分为两个大类:调用方主动更新缓存以及db:这种是最最常见也是最最容易想到的方式。即调用端需要同时维护db和缓存的调用,调用端逻辑比较复杂。读取:先读缓存,缓存未命中读取db然后回写缓存;写入:同时写入,有很多种。分类标准:db和缓存的先后;缓存失效还是更新。其实,对写入而言,不论...

2019-06-15 15:43:28 2229

原创 【Java】线程池(七)执行

之前写了线程池参数的作用:https://blog.csdn.net/u010900754/article/details/80993645这次看下实现。首先,线程池的作用,在ThreadPoolExecutor类的注释里已经写得很清楚了: * <p>Thread pools address two different problems: they usually * ...

2019-06-15 12:41:12 187

转载 【Jackson】Jackson NON_EMPTY

https://www.logicbig.com/tutorials/misc/jackson/json-include-non-empty.html

2019-06-11 17:45:46 811

原创 【Java】idea @NotNull @Nullable 注解

这两个注解在idea里面可以帮助我们检测方法的返回值,方法参数以及局部变量是否为空,从而帮助我们减少一些NPE的发生。1. 原始注解@NotNull @Nullable最开始只能使用idea提供的一个jetBrains java annotation的jar包下的注解。maven坐标:https://mvnrepository.com/artifact/org.jetbrains...

2019-06-08 12:26:09 41236

原创 【Java】NoSuchMethodError

刚开始写代码时,特别是类似web这种需要很多第三方jar包的项目,经常会遇到这个问题。这次记录下这个报错的原因。简而言之,这个报错是肯定是因为compile时方法存在,但是runtime时方法却不存在了。又是什么原因导致了上面的情况发生?其实也有不少,这里介绍一种常见的case:引入了同一个jar包的不同版本。如果恰好两个版本的某一个类的某一个方法签名不同,但是都被调用了,此时,j...

2019-06-08 00:22:07 2111

原创 【Java】guava(二) ListenableFuture 使用及原理

在Java没有发布CompletableFuture之前,异步编程只能使用Future接口和FutureTask,缺点就是没法做异步回调。所以guava在其并发包里面加入了ListenableFuture来支持异步回调。使用第一步:定义定制线程池ListeningExecutorService service = MoreExecutors.listeningDecorator(Ex...

2019-06-02 20:05:45 2762

原创 【Java】多线程 数目

今天看到一篇文章,讲多线程数目的,很棒:https://juejin.im/post/5cf35e195188252c023f9b72这个问题还是很容易被忽略的,就是多线程到底是为了什么?最开始学习多线程的时候,往往将多线程和性能高划等号,只要用了多线程就能提升性能,其实不然。那么多线程到底应该怎么使用?上面的文章其实解释的很清楚,多线程是为了让cpu的利用率尽可能高。首先,任...

2019-06-02 16:54:20 194

原创 【Java】CompletableFuture

CompletableFuture是java8中引入的机制,为了弥补异步执行时Future机制的不足。那么光是用Future会有什么问题?主要是无法做到回调机制以及多任务的协同。CompletableFuture实现了CompletionStage接口,提供了多种任务协同的回调方法,使得异步回调写起来很方便。其实future和completableFuture都是异步编程的模式,前...

2019-06-02 14:42:16 170

原创 【shell】sed 命令

sed全名是stream editor,文本的流式处理器。所谓的流式是与交互式相对的,交互式处理器比如vim。用法:1)行内替换;使用s命令,格式为sed "s/pattern/replacement/flags"。pattern是新内容,replacement是老的要被替换的内容,支持Basic RE。flags是替换选项,总共有以下四种:a)数字,表示替换第几处,...

2019-06-01 12:15:33 1073

设计模式的 课件

主要讲解了 设计模式的相关内容 包括类图等其他

2014-04-15

head first 审计模式

headfirst 一系列书籍中 对设计模式的讲解 很容易理解

2014-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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