自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 idea快捷键桌面背景图,拿走不谢

2018-07-04 15:45:03 17543

原创 装饰模型和代理模式的区别

1、装饰模式关注的是对一个对象动态的添加方法,即增加对象的功能。2、代理模式关于控制对象的访问。3、代理模式中可以对客户隐藏对象的具体信息,因此在使用代理模式的时候,我们通常在代理类中创建一个实例。4、装饰模式通常的做法是将原始对象作为一个参数传递给装饰者的构造器。5、代理模式,代理和真实对象的关系通常在编译时就已经确定了,而装饰者能够在运行时递归的被构造。

2017-08-02 21:52:30 517

原创 线索二叉树的生成及遍历

package tree;/* * 线索二叉树 */public class ThreadBinaryTree { private E[] elements = null; private int count = 0; private Node pre;//中序遍历最后一个结点或中序遍历前一个结点变量 private Node lastLeft;//中序遍历第一个结点 /

2017-07-24 15:47:13 466

原创 字符串匹配sunday算法java实现

package string;/* * 字符串匹配算法 */public class Sunday { public static void main(String[] args) { sunday("who are you"," "); } public static void sunday(String source,String parttern){ ch

2017-07-23 14:39:21 637

原创 8-spring源码3.2.18解读+spring技术内幕(IOC容器的依赖注入(反射+递归调用))

1、导读以上对IOC容器的初始化过程做了详细的分析,这个初始化过程完成的主要工作是在IOC容器中建立BeanDefinition数据映射。再次过程中并没有对Bean依赖关系进行注入,接下来将分析一下IOC容器是怎么样对Bean的依赖关系进行注入的。假设当前IOC容器已经载入了用户定义的Bean信息,开始分析依赖注入的原理。首先,注意到依赖注入的过程是用户第一次向IOC容器索要Bean时触发

2017-07-20 15:34:19 406

原创 7-spring源码3.2.18解读+spring技术内幕(关于BeanDefinition的注册)

1、导读前面已经分析过BeanDefinition在IOC容器中载入和解析过程。在这些动作完成以后,用户定义的BeanDefinition信息已经在IOC容器内建立起了自己的数据结构以及相应的数据表示,但此时这些数据还不能够提供IOC容器直接使用,需要在ioc容器中对这些BeanDefinition数据进行注册。这个注册为ioc容器提供了更友好的使用方式,在DefaultListableBea

2017-07-20 15:31:58 293

原创 6-spring源码3.2.18解读+spring技术内幕(关于BeanDefinition的载入和解析)

1、导读在完成对代表BeanDefinition的Resource定位的分析后,下面来了解整个BeanDefinition信息的载入过程。对Ioc容器来说。这个载入过程相当于把定义的BeanDefinition在IOC容器中转化成一个Spring内部表示的数据结构。IOC容器对Bean的管理和依赖注入功能的实现,是通过对其持有的BeanDefinition进行各种相关操作来完成的。这些Bean

2017-07-20 15:31:01 324

原创 JdkDynamicAopProxy-invoke方法-5

通过前面例子jdk动态代理生成代理对象的源码分析,已经可以很清楚的了解到代理对象是如何进行增强和回调的,接下来继续分析JdkDynamicAopProxy是如何进行回调的对目标对象进行增强的。同样,在JdkDynamicAopProxy中实现也了InvocationHandler接口中的invoke方法。在JdkDynamicAopProxy中生成代理对象时,通过调用Proxy.newProxyI

2017-07-18 23:52:42 2734

原创 jdk动态代理生成代理对象源码分析-4

在分析JdkDynamicAopProxy类中的invoke方法之前,我们先看看如何实现jdk动态代理:1、目标类 StudentImplService.java2、目标类所实现的接口 IStudent.java3、日志类 LogImplService.java4、日志类所实现的接口 ILog.java5、代理对象生成类 MyInvocationHandler.java

2017-07-18 23:48:17 687

原创 ProxyFactoryBean生成AopProxy代理对象-3

在Spring Aop的使用中,可以通过ProxyFactoryBean来配置目标对象和切面行为。在ProxyFactoryBean中,通过interceptorNames属性来配置已经定义好的通知器Advistor。虽然名字为interceptorNames,但实际上确实供Aop应用配置通知器的地方。在ProxyFactoryBean中,需要为target目标对象生成Proxy代理对象,从而为A

2017-07-18 23:45:00 670

原创 配置ProxyFactoryBean-2

配置ProxyFactoryBean 从这部分开始,将进入到Spring Aop的实现部分,在分析Spring Aop的实现原理中,主要以ProxyFactoryBean的实现作为例子和实现的基本线索进行分析。这是因为ProxyFactoryBean是在Spring ioc环境中创造aop应用的底层方法,也是最灵活的方法,Spring通过它完成了对Aop使用的封装。以ProxyFact

2017-07-18 23:34:11 523

原创 Spring aop概述-1

Spring aop概述 Aop是Aspect-Oriented Programming(面向切面编程)的简称,Aspect是一种新的模块机制,用来描述分散在对象、类或函数中的横切关注点。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定问题的代码从业务逻辑中独立出来,业务逻辑中的代码不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来封装

2017-07-18 23:31:39 274

转载 《深入理解mybatis原理》 MyBatis的架构设计以及实例分析

向原创敬意,文章写的真心不错:http://blog.csdn.NET/luanlouis/article/details/40422941。比我看得深入浅出mybatis技术原理与实战 好多了,这本书简直就是垃圾。MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个

2017-07-11 23:25:20 1923

原创 5-spring源码3.2.18解读+spring技术内幕(关于BeanDefinition的定位)

spring源码3.2.18解读+spring技术内幕(关于BeanDefinition的定位)1、导读以编程的方式使用DefaultListableBeanFactory时,首先定义一个Resource来定位容器使用的BeanDefinition。这时使用的是ClassPathResource,这意味着Spring会在类路径中去寻找以文件形式存在的BeanDefinition信息。C

2017-05-11 01:52:21 525

原创 4-IOC容器的初始化过程

1、IOC容器的初始化是由前面所介绍的refresh()方法来启动,这个方法标志着IOC容器的正式启动。具体的说,这个启动包括BeanDefinition的Resource定位、载入和注册三个基本过程。这里将三个基本过程进行分离,使得用户更加灵活地对这三个过程进行裁剪或扩展,定义出最合适自己的IOC容器的初始化过程。2、第一个过程式Resource定位过程,这个Resource定位指的是Bea

2017-05-09 01:15:30 287

原创 3-ApplicationContext应用场景及设计原理

ApplicationContext容器的应用场景ApplicationContext是一个高级形态意义的IOC容器,它不仅扩展了BeanFactory的基本IOC容器,还提供了以下附加功能:1)、支持不同的消息源。扩展了MessageSource接口,支持国际化的实现。2)访问资源。这一特性体现在对ResourceLoader和Resource的支持上,这样我们可以从不同的地方访问资

2017-05-09 01:14:46 664

原创 2-BeanFactory容器的设计原理

1、BeanFactory接口提供了使用IOC容器的规范。在这个基础上,Spring还提供了符合这个IOC容器的一些类实现供开发人员使用。下面以XmlBeanFactory的实例为例来说明简单IOC容器的设计原理。2、XmlBeanFactory设计的类继承关系 3、通过上面的继承体系,可以看出,作为一个简单IOC容器系列最底层实现的XmlBeanFactory,与我们在Spring应

2017-05-09 01:13:29 394

原创 1-IOC容器的主要接口设计

1、IOC容器的主要接口设计: 1.1从接口BeanFactory到HierachicalBeanFactory,再到ConfigurableBeanFactory,是一条主要的BeanFactory设计路径。BeanFactory:定义基本容器规范,包括基本方法getBean();HierachicalBeanFactory:继承自BeanFactory接口,增加getBeanP

2017-05-09 01:08:53 624

原创 java实现百万级数据导出excel

package com.exportBigExcel;import java.io.FileOutputStream;import java.io.OutputStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.

2017-05-09 01:05:16 2932

转载 搭建Maven私服(使用Nexus)

转自:https://yq.aliyun.com/articles/7427看见一个好东西就分享了,如有冒犯博主请见谅。搭建Maven私服(使用Nexus)摘要: 搭建私服可以做什么? 1、如果公司开发组的开发环境全部内网,这时如何连接到在互联网上的Maven中央仓库呢? 2、如果公司经常开发一些公共的组件,如何共享给各个开发组,使用拷贝方式吗?如果这样

2017-05-08 21:10:03 196

原创 java导出百万级数据到excel解决方案

针对该问题首先要思考以下问题:1)、一个excel文件能保存多少条数据,2003版的可以保存65536条,2007版时以保存100w条,但是如果用2007版,当文件过大时,打开会相当的耗时,因此不建议使用2007。2)、当数据量十分庞大时,从数据库读取数据到内存中很有可能会导致JVM溢出。3)、当对大量数据进行IO输出时同样也会造成JVM溢出。针对以上几个问题:加入数据库中

2017-05-07 23:58:12 5147

原创 自动内存管理机制-垃圾收集器与内存分配策略

垃圾收集器与内存分配策略关于GC的三件事:那些内存需要回收?什么时候回收?如何回收?Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方栈3个区域随着线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行起会由JIT编译器进行一些优化,但在本章基于概念模型的讨论中

2017-05-04 01:48:38 248

原创 阿里的笔试,正则表达式

最后10分钟才看出来,以为时间不够了,然后秒了个50%。完了花了不到10分钟,写了10行代码搞定,我只想哭import java.util.Scanner;import java.util.Arrays;public class Solution { /** * * @param line 需要匹配的字符串 * @param pipeiLine

2017-04-26 21:45:39 457 1

转载 原生java http方式上传大文件(含 文件流分段上传问题、base64分段转码问题解决思路)(转)

觉得写这博客的大牛太牛逼了,所以转一下,如果侵权什么的博主提醒一下,立即删除。转载地址:http://m.blog.csdn.net/article/details?id=53205030做项目的过程中碰到一个需求:在java客户端,使用http通信,把客户端的本地文件通过http发送上传到服务器;请求格式是xml(不管是json还是xml都是字符串,所以这个无所谓

2017-04-18 15:16:00 4001

原创 URLConnection

1、URLConnection首先URLConnection是一个抽象类,表示指向URL指定资源的活动连接,URLConnection有两个不同但相关的用途,首先,与URL类相比,它对服务器(特别是HTTP服务器)的交互提供了更多的控制。URLConnection可以检查服务器发送的首部,并相应地做出响应。它可以设置客户端请求中使用的首部字段。最后,URLConnection可以用POST

2017-04-18 15:11:40 479

原创 实现一个java web缓存

package cache;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.CacheRequest;public class MyCacheRequest extends CacheRequest{ privat

2017-04-18 00:55:50 1119

原创 URL和URI(确定资源的地址)

URL和URI(确定资源的地址)1、URL和URI:uri通常告诉你一个资源是什么,而url不仅告诉你这是一个什么资源,同时告诉你获取资源的位置。2、相对URL和绝对URI的区别:相对url是指缺少的部分与所在文档的url中的部分相对应,而绝对url的链接以“/”开头,所以是相对于根目录,而不是当前的文件。相对utl可以减少录入,并且允许用多种协议来提供一个文档树,最终要的是相对u

2017-04-16 21:58:37 1187

转载 tomcat 工作原理(转)

转自:http://blog.csdn.net/skp127/article/details/52026150,如果博主看见此文如有冒犯或者不允许转载,在告知后则会立即删除。谢谢顺便吐槽一下,csdn这博客居然不自带转载功能。大致的架构是 jsp+tomcat+MySQL,记录tomcat学习一点笔记。Tomcat是Servlet运行环境(容器),每个s

2017-04-16 20:14:33 396

原创 socket实现http协议

1、在B/S架构中,Web浏览器与Web服务器之间的一次HTTP请求与响应:需要完成以下步骤:http://localhost:8089/index.html1)、浏览器端根据所在的HTTP协议解析出对应的url域名:localhost2)、通过DNS域名解析,查询出该域名对应的IP地址:127.0.0.13)、通过URL解析出对应的端口号:80804)、浏览器发起并建立到12

2017-04-15 01:18:38 10741 2

原创 自动内存管理机制-java内存区域与内存溢出异常

1、java内存区域 1.1运行时数据区域:java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范SE 7版》的规定,Java虚拟机所管理的内容将会包括以下几个运行时数据区域,如果所示:Java虚拟

2017-04-13 00:20:39 772

原创 HTTP

1、什么是http?HTTP是Web浏览器和Web服务器之间通信的标准协议。2、http1.1在HTTP 1.1和之后的版本中,服务器不必在发送响应后就关闭连接。可以保持连接打开,在同一个socket上等待来自客户端的新请求。可以在一个TCP连接上连续发送多个请求和响应。不过,服务器响应之后,客户端的锁步模式还是一样的。客户端可以在HTTP请求首部中包括一个Connection字段,指

2017-04-11 17:22:09 379

原创 遇到一个很有趣的问题,while(ture)或者for循环出现异常,继续执行还是跳出异常

先睡觉,明天用ide试一下再写。

2017-04-11 02:45:59 6764 15

原创 客户端Socket

客户端Socket1、什么是客户端Socket?客户端Socket相当于一个可以读写的字节流。2、使用Socket,Socket是两台主机之间的一个连接a) 连接远程主机b) 发送数据c) 接收数据d) 关闭连接e) 绑定端口f) 监听入站数据g) 在绑定端口上接收来自远程机器(客户端)的连接。Java的socket类(客户端和服务器都可以使用)提供了对

2017-04-11 02:39:42 718

原创 服务端socket

服务端Socket1、什么是服务端socket?服务端socket是一个运行在服务器上的,监听入站TCP连接的连接。每个服务端socket监听服务器上的一个特定端口。当远程主机上的一个客户端尝试连接这个端口时,服务端就被唤醒,协商建立客户端和服务器之间的连接,并返回一个常规的Socket对象,表示两台主机之间的socket。换句话说,服务端socket等待连接,而客户端发起连接。一旦ser

2017-04-11 01:21:14 681

原创 HTTPS协议

HTTPS协议HTTPS是基于SSL的HTTP协议,简单的说是HTTP的安全版本。依托SSL协议,HTTPS协议能确保整个通信过程都是经过加密,密钥随机产生,并且能够通过数字证书验证通信双方的身份,以此来保证信息的安全。其中证书包含了证书所代表一端的公钥,以及一些其所具有的基本信息,如机构名称,证书所作用域名、证书的数字签名等,通过数字签名能够验证证书的真实性。通信的内容使用对称加密方式进行加

2017-04-09 16:14:25 553

原创 jvm虚拟机-走进java

1、java是一门结构严谨、面向对象的编程语言;摆脱了硬件平台的约束,实现了“一次编写,到处运行”的理想;它提供了相对安全的访问机制,避免了绝大部分的内存泄漏和指针越界问题;它实现了热点代码检测和运行时编译以及优化,这使得java应用能随着运行时间的增加而获得较高的性能;它有一套完善的应用程序的接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能...... 2、JD

2017-04-09 12:12:27 362

原创 spring事务管理机制

Sprin事务管理机制 什么是事务? 事务的好处? 如何使用事务? 1、认识事务的本身对于一个软件系统来说,需要相应的数据资源(如数据库,文件系统等)来保存系统状态,在对系统资源进行操作的时候,必须要保证系统资源处于一种“正确”的状态,因此我们需要对这些操作进行一些必要的限定来保证提供的完整性,而事务就是以可控的方式对数据库资源进行访问的一组操作。为保证在事务的

2017-04-08 21:24:17 671

原创 spring-mvc底层实现-1

Spring MVCSpring MVC是基于servlet功能实现的,通过实现Servlet接口的DispatcherServlet来封装其核心功能实现,通过将请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上传下载文件支持。默认的处理程序是非常简单的Controller接口,只有一个ModelAndView hangleRequest(request,

2017-04-08 21:20:14 6609

原创 spring-mvc基本架构-2

Spring MVC1、原理(执行流程)  2、DispatcherServletDispatcherServlet是Spring mvc框架中的Front Controller,它负责接收所有的web请求,只是针对具体的处理逻辑,它会委派给它的下一级控制器去实现,即Controller,而Controller则对应Page Controller,具体关系图如下。

2017-04-08 21:13:29 411

原创 分布式消息系统ActiveMQ

消息系统1、什么事是消息系统?在分布式系统中,消息系统的应用十分广泛,消息可以作为应用间通信的一种方式。消息被保存在队列中,直到被接收者取出。由于消息发送者不需要同步等待消息接收者的响应,消息的异步接收降低了系统集成的耦合度,提升了分布式系统协作的效率,使得系统能够更快地响应客户,提高系统的吞吐量。当系统处于峰值压力时,分布式消息队还能够作为缓冲,削峰填谷,环节集群的压力,避免整个系统被压

2017-04-08 19:35:30 1407

空空如也

空空如也

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

TA关注的人

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