自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kerryg的专栏

走在通往大神的道路上

  • 博客(35)
  • 收藏
  • 关注

原创 spring常见面试题

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、谈下对Spring IOC的理解?二、spring容器的生命周期三、BeanFactory和FactoryBean四、循环依赖为什么需要三级缓存前言提示:以下是本篇文章正文内容,下面案例可供参考一、谈下对Spring IOC的理解?IOC :控制反转,原来由使

2021-12-04 16:38:15 381

原创 ThreadLocal源码解读

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档ThreadLocal源码解读前言一、ThreadLocal原理二、ThreadLocal源码1. public void set(T value)2. public T get()3. public void remove()总结前言ThreadLocal主要作用:1.保证线程安全;2.在线程级别传递变量。一、ThreadLocal原理ThreadLocal并不维护ThreadLocalMap,也不是存储数据的容器,

2021-11-07 15:39:07 118

原创 IN 居然不走索引查询???

项目场景:MySql数据库操作,IN条件查询对应数据,更新到ES存储。问题描述:修改了IN中查询的条件,导致系统fullgc,重启系统之后当触发了该查询条件后,服务器立马又开始不断fullgc,导致服务整体不可用。IN多条件查询类比如下场景1: 1. EXPLAIN SELECT * FROM test WHERE client_id in (0,1,2,3); 2. EXPLAIN SELECT * FROM test WHERE client_id in (0); 3. EX

2021-10-16 16:22:20 1022

原创 自定义spring-boot-stater

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档自定义spring-boot-starter一、spring-boot 自动装配揭秘?二、自定义spring-boot-starter1.HelloServiceProperties配置映射2. 自动加载配置HelloServiceAutoConfiguration3. 自动装配类HelloService4. spring.factories配置文件5. 引用自定义spring-boot-starter三、总结一、spring-boot

2021-10-14 21:05:33 174

原创 浅谈缓存一致性问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档浅谈缓存一致性问题前言一、为什么使用缓存?二、保证缓存一致性的方案(写操作)1.先操作数据库,再删缓存2.先删缓存,再操作数据三、总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、为什么使用缓存? 现在大多数互联网公司使用缓存通常都是为了**缓存一些热点数

2021-10-10 17:58:23 136

原创 Bean生命周期流程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Bean生命周期流程一、Bean生命周期流程图二、验证流程1.验证UserDao生命周期2.自定义MyBeanFactoryPostProcessor3.自定义MyBeanPostProcessor4.配置文件5.测试类总结一、Bean生命周期流程图spring启动,加载类路径下配置文件,解析为BeanDefinition并装配到对应容器中;查找并加载spring管理的bean,进行bean的实例化;Bean实例化后对Bean

2021-10-10 17:00:03 214

原创 设计模式-代理模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档设计模式-代理模式一、代理模式的作用?二、应用场景?三、使用步骤1.dao层2.自定义注解@Query3.自定义FactoryBean中使用jdk获取代理类4.注册自定义FactoryBean5. spring-context.xml配置文件中注册RegisterBeanFactory6. 测试总结一、代理模式的作用? 代理模式主要是为了方便调用者访问某些资源,使对象类更加易用,屏蔽底层某些复杂的处理逻辑。以下主要通过

2021-09-26 21:17:44 48

原创 netty

1. netty是什么?1. netty是一个基于nio的客户端-服务器框架,使用它可以快速开发网络应用程序。2. 支持多种协议,如:FTP,SMTP,HTTP等。3. 很多开源框架都采用netty 比如:dubbo,rocketmq,es,grpc。2. netty应用场景1.作用rpc框架都网络通信工具;2.实现http服务器;3.实现即时通信系统。3. netty核心组件1.channel:netty对网路操作对抽象类 基本i/o操作,bind(),connect(),read

2021-06-20 22:35:09 72

原创 Andriod面试题总结

1、线程和进程的区别2、ListView如何多布局显示,对于重用ConvertView如何解决图片错乱问题。3、含有checkbox的ListView如何解决选中状态的错乱4、webView和js是如何进行交互的5、如何实现现在流行的首页顶部悬浮6、如果Activity由于内存不足被回收,如何保存Activity的状态7、ScrollView和ListView嵌套会出现哪些

2016-08-07 11:09:30 223

原创 Popwindow弹出webview触屏报错

Andoid:popwindow里嵌入webview使用报错解决方案:d.view.WindowManager$BadTokenException: Unable to add window -- //配合的webview该属性一定不能打开,否则一触屏就报错,开发中发现小米系统是 兼容的,魅族和锤子系统是不好使的。 mWebView.get...

2015-11-26 10:48:51 431

原创 设计模式--装饰模式

装饰模式:就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象实例。 Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能。 装饰器模式的应用场景: 1、需要扩展一个类的功能; 2、动态的为一个对象增加功能,而且是动态撤销 缺点:产生过多相似的...

2015-08-02 09:51:10 79

原创 设计模式--适配器模式

适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三种:类的适配器模式、对象适配器模式、接口适配器模式。 1、类的适配器: 核心思想:有一个Source类,拥有一个方法,带待适配,目标接口是Targetable,通过Adapter类,将Source的扩展到Targetable里。 Adapter类继...

2015-08-02 09:39:38 67

原创 设计模式--原型模式

原型模式虽然是创建型模式,但是与工厂模式没有关系,该模式是将一个对象作为原型,对其进行复制,克隆,产生一个和原对象类似的新对象。在java中,复制对象是通过clone()实现的。 一个原型类,只要实现了Cloneable接口,覆写clone()方法,此处clone方法可以改为任意名称,因为Cloneable接口是个空接口,可以是任意定义实现类的方法名。因此,重点就是super...

2015-08-02 08:58:22 64

原创 设计模式--建造者模式

工厂模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中进行管理,用来创建符合对象。所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。 建造者模式是将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。所以与工程模式区别就是:工厂模式关注的是创建单个模式,而建造者模式则关注创建符合对象,多个部分,因此,选择工...

2015-08-02 08:46:47 60

原创 设计模式--单例模式

单例模式: 单例对象是一种常用的设计模式。在java应用中,单例对象能保证在JVM中,该对象只有一个实例存在。 单例模式的好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频繁,减轻了GC压力。 3、有些类如交易所的核心交易引擎,控制...

2015-08-02 08:39:24 60

原创 Nexus搭建Maven私服

使用背景:公司访问外网限制,项目组大部分人员不能访问maven的center repository,因此在局域网里找一台有外网权限的机器,搭建nenux私服,然后开发人员连接到这台私服上。 环境:nexus-2.1.1、maven-3.04,jdk-1.6.0一、使用admin用户登陆nexus二、为nexus配置代理服务器 由于这台机器需要通过代理才能...

2015-07-26 12:12:52 159

原创 maven管理工程

一、为什么使用Maven? 1、解决SSH包依赖的问题? 2、公司项目目录结构不规范?二、maven环境变量的配置: 1、下载路径: http://apache.fayea.com/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.zip 2、首先必须安装JDK,配置2个环境变量 ...

2015-07-26 10:18:20 92

原创 设计模式--抽象工厂模式

抽象工厂模式: 工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。 总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,实现Sender接口,同时做一个工厂类,实现provider...

2015-07-19 19:37:50 72

原创 设计模式--工厂模式

工厂方式模式分为三种: 1、普通工厂模式:建立一个工厂类,对实现了同一个接口的一些类进行实例的创建。 2、多个工厂方法的模式:就是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式就是提供多个工厂方法,分别创建对象。 3、静态工厂方法模式:就是将上面的多个工厂方法模式里的方法置为静态,不需要创建实例,直接调用即可...

2015-07-19 19:21:18 55

原创 java设计模式

设计模式的分类: 一、 设计模式总体分为三大类: 1、创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 2、结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 3、行为型模式(11种):策略模式,模版方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解...

2015-07-19 19:05:24 60

原创 linux部署jdk,tomcat,mysql

1、安装java环境jdk: 一般系统都会默认自带的JDK,但是不太好用,都会卸载了,然后重新安装。 1.1)、卸载: (rpm -qa :查询已经安装哪些软件包; rmp -q 软件包:查询指定包是否已经安装; rpm -e 软件包:删除指定软件包。 ) rpm -qa | grep jdk (查询j...

2015-07-09 21:48:59 63

原创 mybatis的paramType

MyBatis传多个参数:1、采用#{0},#{1}获得参数: Dao层函数方法: public User selectUser(String name,String area); 对应的Mapper.xml select * from user where user user_name=#{0} and user_area=#{1} ...

2015-07-08 21:27:51 1121

原创 java容器--线程安全

1、java容器的关系: Collection List 接口 LinkedList 链表 ArrayList 顺序结构动态数组类 Vector 向量 Stack 栈 Set Map HashTable HashMap Weak...

2015-07-07 21:31:41 83

原创 servlet,struts-x线程安全解读

线程安全: 如果代码所在的进程中有多个线程同时运行,而这些线程可能会同时运行这段代码。如果每次运行的结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 servlet是多线程的,同时一个servlet实现类只会有一个实例对象,也就是说是单例,所以多个线程是可能会访问同一个servlet实例对象的。 线程安全问题都是由于全局变量...

2015-07-07 21:20:42 78

原创 redis和Memcached

redis和memcached对比:1、redis支持服务端的数据操作: redis相比memcached来说,拥有更多的数据库结构和并支持更加丰富的数据操作。 memcached中需要将数据拿到客户端进行类似的修改再set回去,大大增加了网络IO的次数和数据体积。 redis中这些复杂的操作通常和一般的get/set一样高效。 所以,如果需要缓存能够支...

2015-07-05 15:19:13 89

原创 linux_svn命令

1、将文件checkout到本地 svn checkout path(path是服务器上的目录) 简写:svn co2、往版本库中添加新的文件 svn add test.php(添加test.php) svn add*.php(添加当前目录下所有的php文件)3、将改动的文件提交到版本库 svn commit -m "注释" ...

2015-07-05 13:51:50 53

原创 SpringMVC中jsp无法获得controller中ModelAndView的值

SpringMVC中JSP取不到ModelAndView的数据原因不管是用 ${msg} 还是用JSTL的 都不行通过这篇文章 http://forum.springsource.org/showthread.php?117394-Unable-to-access-modelAndView-attributes-in-JSP-without-JSTL 才发现犯了一个平时不会...

2014-12-29 14:39:42 304

原创 sql语句where和having的区别

数据库中where与having区别:1、having和where都是用来筛选用的,having是筛选组;而where是筛选记录。 1)、当分组筛选的时候用having; 2)、其他情况用where。用having就一定要和group by连用;用group by不一定有having(只是一个筛选条件)。...

2014-12-24 14:15:39 123

原创 Linux下对tomcat的命令

远程操作linux中tomcat的命令:1. ./catalina.sh start 启动tomcat2. ./catalina.sh stop 关闭tomcat3. tail -f logs/catalina.out 查看后台输出4. ps -ef |grep tomcat 查看tomcat运行状态5. kill -9 #pid(进程号) 强制杀死tomcat...

2014-12-24 13:59:37 132

原创 Linux下对tomcat的命令

远程操作linux中tomcat的命令:1。 ./catalina.sh start 启动tomcat2。 ./catalina.sh stop 关闭tomcat3。 tail -f logs/catalina.out 查看后台输出4。 ps -ef |grep tomcat 查看tomcat运行状态5。 kill -9 #pid(进程号) 强制杀死tomcat...

2014-12-24 13:59:28 83

原创 java反射

Java语言允许通过程序化的方式间接对class进行操作,Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等。Java允许用户借由有这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Class对象开辟了途径。public class ReflectTe...

2014-12-12 15:13:38 43

原创 spring依赖注入三种方式

在Spring容器中为一个bean配置依赖注入有三种方式:1、使用属性的setter方法注入,最常用的方式;2、使用构造器注入;3、使用Field注入(用于注解方式)1)、使用属性setter方法注入 首先要配置被注入的bean,在该bean对应的类中,应该要有注入的对象属性或者基本数据属性。例如:为JobServiceImpl类注入JobMapper,同时为JobSe...

2014-12-10 18:10:57 181

原创 基于java的打包jar,war,ear包的作用与区别

jar文件就是一种封装,不需要知道jar文件中有多少个。class文件,每个文件中功能与作用,同样可以得到他们希望的结果。除了jar以外J2EE来说还有war和ear. jar、war和ear的区别: 1、jar是java archive file;包含内容:class,properties文件,是文件封装的最小单位;包含java类的普通库、资源(resource)、辅助文件;部署文件 a...

2014-12-10 16:04:51 127

原创 Mysql MyISAM和InnoDB存储引擎的区别

1、适用场景eg:非确实有必要,一般都要使用InnoDB存储引擎。2、锁粒度MySAM是表锁;InnoDB是行锁。3、事务MyISAM不支持事务;InnoDB支持事务。4、热备MyISAM不支持热备;InnoDB支持热备。5、索引InnoDB使用聚簇,二级索引中必须包含主键。MyISAM保存指向数据行的指针。...

2014-12-09 16:56:01 124

原创 mysql日志打印

在D:\workspace\tools\wamp\bin\mysql\mysql5.5.20文件夹下的my.ini中增加

2014-11-06 10:06:24 1424

空空如也

空空如也

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

TA关注的人

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