自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

原创 web性能优化

一、浏览器端,关于浏览器端优化,分很多个方面1、压缩源码和图片JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行普通压缩,JPG图片可以根据具体质量来压缩为50%到70%,PNG可以使用一些开源压缩软件来压缩,比如24色变成8色、去掉一些PNG格式信息等。2、选择合适的图片格式如果图片颜色数较多就使用JPG格式,如果图片颜色数较少就使用PNG格式,如果能够通过服务器端判断浏...

2018-05-08 16:21:40 236

原创 mvc:annotation-driven注解的作用

<mvc:annotation-driven>会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML...

2018-05-08 14:59:23 368

原创 spring mvc与struts的区别

1.struts2是类级别的拦截, 一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应所以说从架构本身上 spring3 mvc就容易实现restful url而struts2的架构实现起来要费劲因为struts2 action的一个方法可以对应一个url而其类属性却被所有方法共享,这也就无法用注解或其他方式标...

2018-05-07 16:29:12 436

原创 hibermate与mybatis的区别

1.都是对象关系映射型框架,hibermate是pojo与数据库表的映射,mybatis是pojo与sql语句的映射。2.mybatis开发上手比较容易,hibermate有一点难度3.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。4.Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳(但是可以对每...

2018-05-07 16:11:35 1027

原创 mysql 数据库优化

1.数据库表数据过多,可以使用分页查询limit 0 10,在查询语句的where字段中使用索引2.查询语句尽量返回自己需要的字段,不要返回自己用不到的字段,增加开销3.尽量不要使用or,distinct,order by 关键字,增加开销4.多条语句修改,可以使用批量修改,不要使用单条修改5.数据库过大,表数据过多,可以使用分库和分表操作,减小开销...

2018-04-23 11:09:18 159

原创 Spring BeanFactory与FactoryBean的区别

1. BeanFactory  BeanFactory,以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂。在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。2. FactoryBean    FactoryBean 以Bean结尾,表示它是一个Bean,主要用于定制化实例bean...

2018-04-20 17:31:39 260

原创 @Autowired和@Resource的区别是什么?

@Autowired 与@Resource:1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false3、@Resource 是JDK1.6支持的注解,默认按照名称进行装...

2018-04-19 16:20:13 1330

原创 Java中的String,StringBuilder,StringBuffer三者的区别

Java中的String,StringBuilder,StringBuffer三者的区别    这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。1.首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String  String最慢的原因:  String为字符串常量,而StringBuilder和S...

2018-04-17 11:21:58 156

原创 class.forName()和classLoader区别

java中class.forName()和classLoader都可用来对类进行加载。class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。而classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。...

2018-04-17 10:58:29 159

原创 java nio

java io和java nio的区别1.面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后...

2018-04-16 16:47:52 149

原创 熔断隔离

熔断: 当一个中台down掉和在一定的时间内多次访问不通,系统认为其不可达,之后的请求就不会去访问该中台,可以直接返回错误报文等等隔离:一个中台对应各自的线程池,相互不影响,如果其中一个中台down掉,不会影响其他中台的资源...

2018-04-09 17:48:48 375

原创 spring中用到哪些设计模式

spring中用到哪些设计模式1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了;2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了;3.代理模式,在Aop实现中用到了JDK的动态代理;4.单例模式,这个比如在创建bean的时候。...

2018-03-27 17:31:37 1522

原创 mysql关键字执行顺序

标准的 SQL 的解析顺序为:  (1) FROM 子句 组装来自不同数据源的数据  (2) WHERE 子句 基于指定的条件对记录进行筛选  (3) GROUP BY 子句 将数据划分为多个分组  (4) 使用聚合函数进行计算  (5) 使用HAVING子句筛选分组  (6) 计算所有的表达式  (7) 使用ORDER BY对结果集进行排序二、执行顺序  1. FROM:对FROM子句中前两个表...

2018-03-27 14:26:18 1833

原创 mysql游标理解

一、MySQL游标的概念1、游标介绍MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解。有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。 先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术。 类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个。2、...

2018-03-27 14:14:00 7926 7

原创 Java JVM:垃圾回收

gc 分为两段:新生代和老年代gc垃圾回收机制对什么进行回收通过对象不可达算法,对对象进行回收。对象不可达:当一个对象没有任何一条链路指向根节点,就认为这个对象是不可达的,gc就会去回收它。gc垃圾回收机制做了什么事主要是对新生代进行清理对象,老年代整理内存。Java堆分为新生代和老年代,采用了不同的回收方式。例如新生代采用了复制算法,老年代采用了标记整理法。在新生代中,分为一个Eden 区域和两...

2018-03-21 10:46:13 160

原创 关于线程池的执行原则及配置参数详解

线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。创建线程池//参数初始化private static final int CPU_COUNT = Runtim...

2018-03-20 16:42:15 790

原创 synchronized、Lock、ReentrantLock、ReadWriteLock区别,threadlocal怎么解决线程同步问题

1.synchronized 用于同步方法和代码块,执行完后自动释放锁2.Lock是一个锁的接口,提供获取锁和解锁的方法(lock,trylock,unlock)3.ReentrantLock 重入锁Lock有一个实现类:ReentrantLock,它实现了Lock里面的方法,但是使用Lock的时候必须注意它不会像synchronized执行完成之后或者抛出异常之后自动释放锁,而是需要你主动释放锁...

2018-03-20 10:53:28 2702

原创 wait方法和sleep方法的区别

wait方法和sleep方法的区别对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待...

2018-03-20 10:18:06 353

转载 线程进阶

http://www.jasongj.com/2016/01/17/Java1_%E6%B3%A8%E8%A7%A3Annotation/

2018-03-19 15:20:24 260

原创 创建线程的三种方式,对比其优劣势

public class CreateThreadMethod { public static void main(String[] args) throws ExecutionException, InterruptedException { /**第一种方式*/ CreateThreadOne createThreadOne = new CreateT...

2018-03-19 10:53:38 264

原创 java vector

Vector 可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能...

2018-03-16 14:00:36 308

原创 HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList对比

HashSet与HashMap区别HashMap实现了Map接口 HashSet实现了Set接口HashMap储存键值对 HashSet仅仅存储对象HashMap使用put()方法将元素放入map中 HashSet使用add()方法将元素放入set中HashMap中使用键对象来计算hashcode值 HashSet使用成员对象来计算hashcode值HashMap比较快,因为是使用唯一的键来获取对...

2018-03-16 13:33:04 1078

原创 生产消费者模型

生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。生产消费者模式如下图。              在日益发展的服务类型中,譬如注册用户这种服务,它可能解耦成好几种独立的服务(账号验证,邮箱验证码,手机短信码等)。它们作为消费者,等待用户输入数据,在前台数据提交之后会经过分解并发送到各个服务所在的u...

2018-03-12 13:31:39 245

原创 java 总结

单例模式:一个类只有一个实例,即一个类只有一个对象实例。单例模式可以分为懒汉式和饿汉式:    懒汉式单例模式:在类加载时不初始化。    饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。懒汉模式,线程不安全:public class Singleton(){        private Singleton instance;        private Sin...

2018-03-09 16:15:01 149

转载 SSO之CAS单点登录详细搭建教程

https://www.cnblogs.com/zhoubang521/p/5200407.html

2018-03-09 14:23:00 191

原创 单点登录

单点登录什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分1、登录相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没...

2018-03-09 10:50:41 503

原创 tomcat容器

2018-02-24 14:31:51 252

原创 java内存空间的分配

2018-02-24 13:50:12 1169

原创 java 堆栈

1.java堆 主要存放对象,动态加载,java gc自动回收2.java 栈 主要存放基本类型的变量数据(int,short,long,byte,float,double,boolean,char)和对象的句柄(引用)3.当创建一个线程时,jvm会同时为这个线程创建一个堆栈内存,这里的堆是一个引用到初始化时的堆对象中...

2018-02-23 16:50:17 128

原创 jvm的结构

jvm内存结构pc寄存器数据java堆java栈方法区本地方法区运行时常量池

2018-02-23 15:38:07 120

原创 java 那些组件需要内存

2018-02-23 15:07:38 127

原创 显示加载一个java类

2018-02-23 14:29:47 284

原创 web 编码和解码

1.URL的编码和解码2.http header的编码和解码3.post表单的编码和解码4.http body的编码和解码

2018-02-23 11:14:53 829

原创 java io流

例子1:public static void main(String[] args){ try { InputStream inputStream = new FileInputStream(new File("D:/test.txt")); int i = 0; while ((i = inputStream.read()) != -1)...

2018-02-22 16:25:47 127

原创 发送一个http请求的过程

1.通过dns解析域名获取服务器的ip地址2.通过slb(负载均衡实例+监听+后端服务)负载均衡3.到nginx 日志安全检查4.到应用服务器5.返回请求数据6.返回数据中有静态资源会去访问cdn服务器(获取静态资源)7.这个请求完成,本地的dns服务器会缓存(dns解析记录)8.浏览器和本地dns解析也会缓存(dns记录和网站记录)...

2018-02-22 10:56:40 408

原创 http协议的header头请求和返回值

2018-02-22 10:15:22 3252

原创 tomcat

1.默认tomcat容器的默认页面。<welcome-file-list>   <welcome-file>/index.html</welcome-file> </welcome-file-list>这种方式适合访问静态的页面(也包括JSP)或者说是没有任何参数的页面。2.spirng mvc 默认index controller 方式如果在tom...

2018-02-09 17:02:45 147

原创 synchronized 对象锁

1.调用关键字synchronized声明的方法一定是同步调用,他获取的锁是对象锁。只有共享资源的读写访问才需要同步(如果不加锁,会造成成员变量的脏读)只要这个对象上的方法上加了synchronized不论线程访问这个对象的那个同步的方法,都必须先得到这个对象的同步锁,才能访问该方法。2.脏读:在读取实例变量时,此值已经被其他线程更改过了。3.synchronized锁重入:(也可以用在父子继承的...

2018-02-08 15:46:18 319

原创 java 多线程 停止线程几种方式

1.Thread.stop();使用该方法停止线程是线程不安全的,会释放被锁的对象,导致对象的值错误。该方法不建议使用。会自动抛出ThreadDeath异常。2.使用interrupt()方法,该方法只是给线程标记一个停止的状态,并不会真正的停止线程。需要配合this.interrupted()方法判断该线程是否是标记了停止状态,并且得到值后会把线程的状态改为false;例如:cl

2018-02-06 17:45:19 311

原创 java gc垃圾回收机制主要回收堆内的对象

1.程序的计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭。堆内的对象首先要判断是否还存活。2.使用可达性分析算法,以一系列GC Roots对象为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象不可用,这些堆对象将会被gc回收。GC Roots的对象包括:虚拟机栈、方法区中类静态属性引用对象、方法区中

2018-01-26 15:30:41 1212

jquery分页插件

jquery分页插件

2017-02-28

spring--springmvc--webss

spring--springmvc--webss

2017-02-28

spring+springmvc+mybatis web项目

web项目

2017-02-28

空空如也

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

TA关注的人

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