java
文章平均质量分 89
魔鬼_
微信:wzq657 |
github:
https://github.com/1156721874
展开
-
《深入理解java虚拟机》学习阶段总结(一)
第一章 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。 如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Natvie方法,这个计数器值则为空(Undefined)。此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfM原创 2015-04-08 21:28:45 · 896 阅读 · 0 评论 -
java高阶编程知识点---The road of alibaba
第一部分 面试初级第二部分 面试升级第三部分 Java集合框架、IO框架、虚拟机相关、线程第四部分 Tomcat以及其他项目源码第五部分 理论第六部分 推荐书籍(重点)第七部分 提高(云计算方向)第八部分 算法原创 2015-01-03 19:09:34 · 2740 阅读 · 4 评论 -
【转载】CGLib动态代理原理及实现
http://wangxin520m.blog.163.com/blog/static/42957546201321943340515/JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。JDK动转载 2015-05-14 21:18:43 · 479 阅读 · 0 评论 -
JavaScript(一)基础语法
2.1编写JavaScript代码 1)由Unicode字符集编写。 2)语句:表达式、关键字、运算符组成;大小写敏感;使用分号结束。 2.2常量、标识符和关键字 1)常量:直接在程序中出现的数据值(字面量),用完就丢弃了。如alert(“hello”); 2)标识符:由不以数字开头的字母、数字、下划线、$组成。常用于表示函数、变量等的名称。不能和保留关键字重复,如break、if等。原创 2015-05-13 21:45:12 · 536 阅读 · 0 评论 -
JavaScript(二)概述
JavaScript概述JavaScript概述 1.1什么是JavaScript 1)JavaScript是一种网页编程技术,用来向HTML页面添加动态交互效果。 2)JavaScript是一种基于对象和事件驱动的解释性脚本语言,具有与Java和C语言类似的语法。 3)JavaScript可直接嵌入HTML页面。由浏览器解释执行代码,不进行预编译。 1.2 JavaScript发展史原创 2015-05-13 21:37:31 · 554 阅读 · 0 评论 -
JavaScript(三)常用内置对象
3.1什么是JavaScript对象 1)JavaScript是一种基于对象的语言,对象是JavaScript中最重要的元素。 2)JavaScript包含多种对象:内置对象、自定义对象、浏览器对象、HTML DOM对象、ActiveX对象 3.2使用对象 1)对象由属性和方法封装而成。 2)属性的引用:使用点“.”运算符、通过下标的方式引用。 3)对象的方法的引用:ObjectName原创 2015-05-17 16:47:56 · 848 阅读 · 0 评论 -
javascript(五)Document对象与DOM
5.1概念 1)Document对象:每个载入浏览器的HTML文档都会成为Document对象。 ①通过使用Document对象,可以从脚本中对HTML页面中的所有元素进行访问(操作文档中的任何内容,都过Document)。 ②Document对象是window对象的一部分,可通过window.document方式对其进行访问。 2)DOM:Document Object Model,文档对原创 2015-05-17 17:37:56 · 860 阅读 · 0 评论 -
javascript(七)window其他子对象(DHTML模型)
7.1对象1)包含有关客户端显示屏幕的信息(封装了屏幕相关的信息,供读取)。2)常用属性:width/height、availWidth/availHeight例如:var n =screen.width//ok! screen.width= 1000;//error!只能读不能写7.2对象1)包含用户在浏览器窗口中访问过的URL(封原创 2015-05-17 17:06:55 · 514 阅读 · 0 评论 -
javascript(四)window对象
4.1 DHTML简介 1)操作HTML以创造各种动态视觉效果,是一种浏览器端的动态网页技术。 2)DHTML的功能: ①动态改变页面元素。 ②事件响应机制制作动态折叠的树形结构和菜单。 ③与用户进行交互等。 3)DHTML对象模型包括浏览器对象模型和DOM对象模型。 4.2 DHTML对象模型 将整个窗口均实现了对象化,结构如下: 4.3 window对象 window对原创 2015-05-17 16:51:32 · 536 阅读 · 0 评论 -
javascript(七)window其他子对象(DHTML模型)
7.1screen对象1)包含有关客户端显示屏幕的信息(封装了屏幕相关的信息,供读取)。2)常用属性:width/height、availWidth/availHeight例如:var n =screen.width//ok! screen.width= 1000;//error!只能读不能写7.2history对象1)包含用户在浏览原创 2015-05-17 22:13:54 · 441 阅读 · 0 评论 -
javascript(六)HTML DOM
6.1 HTML DOM概述 1)HTML DOM定义了用于HTML的一系列标准的对象,以及访问和处理HTML文档的标准方法(对DOM操作进行了封装,实现代码的简化)。 2)HTML标签对象化:将网页中的每个元素都看作一个对象。 3)常用HTML DOM对象 4)如何解决浏览器兼容性问题:首先代码要符合W3C标准,然后了解各浏览器特殊的地方。 5)多种对象中,重要了解Select对象和原创 2015-05-17 17:47:52 · 450 阅读 · 0 评论 -
web.xml文件配置
<web-app></web-app>为顶层元素,其他所有子元素都必须定义在它的里面,而且要按元素定义的先后顺序不能颠倒。下面介绍下它的子元素:1.<display-name> 该web站点的名称2.<description> 该web站点的说明3.<context-param> 用来设定该web站点的环境参数(context「配置应用上下文参数」),并初始化它 ①<param-name> 参数名原创 2015-05-28 23:06:39 · 438 阅读 · 0 评论 -
javascript(九)JSON
9.1 概述1)数据的传递①数据在JavaScript范围里传递,使用Object创建对象或者创建对象的模版,两种都可用。②数据传递到服务器端,采用一种通用的格式,Xml或者JSON。2)JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。3)使用名/值对的方式定义。4)名称需要使用“”引起来。5)多对定义之间使用“,”隔开。原创 2015-05-18 22:10:35 · 395 阅读 · 0 评论 -
javascript(八)面向对象基础
对象是一种特殊的数据类型,由属性和方法封装而成。 8.1属性 属性指的是与对象有关的值:对象名.属性名 8.2方法 方法指的是对象可以执行的行为或可以完成的功能:对象名.方法名() 8.3定义对象的三种方式 1)创建对象的实例。2)创建对象的模版。3)使用JSON(相当于Java中的Map)。 8.4创建通用对象 使用Object创建对象以实现简单的封装,但不方便重用! 例如:原创 2015-05-18 22:01:40 · 386 阅读 · 0 评论 -
SPRING技术内幕-笔记(八)SpringMVC的设计与实现
8.1SPringMVC设置概览 在web.xml文件里边配置的DispatcherServlet是web请求的入口,它的处理过程如下: DispatcherServlet的任务有2个: 一个是 初始化部分,由initservletBean()启动,通过initWebApplicationContext方法最终调用DispatcherSevlet的initStrategies方法,在这个过程中原创 2015-06-13 22:51:21 · 655 阅读 · 0 评论 -
SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(四)AOP设计与实现
proxyConfig是一个数据基类,这个数据基类为proxyFactoryBean这样的子类提供配置属性,在另一个基类advisesupport的实现中,封装了AOP对通知和通知其的相关操作,这些操作对于不同AOP的代理对象的生成都是一样的,但对于具体的AOP代理对象的创建,advisedSupport把它交给他的子类们去完成,对于proxyCreatorsupport,可以将它看成是其子类创建A原创 2015-05-19 21:56:05 · 661 阅读 · 0 评论 -
SPRING技术内幕-笔记(九)SpringMVC视图的呈现
9.1 DispatcherServlet视图呈现的设计 衔接上一章DisPatcherServlet的doDispatch,执行完handler之后得到ModelAndView对象,然后视图的展现交给了render方法: protected void render(ModelAndView mv, HttpServletRequest request, HttpServletRespons原创 2015-06-24 22:26:59 · 1459 阅读 · 0 评论 -
SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(三)AOP概念
advice: 【pointcut】—判定哪些切面需要增强: 【advisor】定义那个通知在那个关注点使用它:原创 2015-05-19 21:54:03 · 482 阅读 · 0 评论 -
SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(五)(3)AOPProxy的生成过程
AOPProxy的生成过程:原创 2015-05-19 21:58:51 · 632 阅读 · 0 评论 -
SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(二)IOC注入
IOC注入过程:原创 2015-05-19 21:46:15 · 636 阅读 · 0 评论 -
SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(六)AOP拦截器调用的实现
6.1 JdkDynamicAopProxy JdkDynamicAopProxy代理对象的回调: JdkDynamicAopProxy通过ReflectiveMethodInvocation完成拦截器链的调用,/** * Implementation of <code>InvocationHandler.invoke</code>. * <p>Callers will se原创 2015-05-21 22:28:38 · 931 阅读 · 0 评论 -
SPRING技术内幕:深入解析SPRING架构与设计原理(第2版)-笔记(一)IOC解析
开始之前先说一下Beanfactory的结构原理:下图是springIOC解析的整个过程: IOC容器分为3个步骤: 1、定位 (1)Resource resource = resourceLoader.getResource(location); int loadCount = loadBeanDefinitions(resource); (2)loadBeanDefinitions委派原创 2015-05-18 23:08:58 · 1631 阅读 · 0 评论 -
SPRING技术内幕-笔记(七)WEB环境中的springMVC
7.1Tomcat的web.XML对springMVC 的描述: dispatcherServlet定义了对应的URL的映射,context-param制定了bean的定义文件的路径,contextLoaderListener作为简历IOC容器的入口,加载IOC容器到servletContext中,即上下文。7.2上下文在?WEB容器中的启动 在WEB容器中启动spring应用的过程: Con原创 2015-06-10 23:13:01 · 538 阅读 · 0 评论 -
SPRING技术内幕-笔记(十二)spring驱动ibatis的设计与实现
12.1设计原理 对ibatis的使用相对来说比较简单,在spring的封装中,有几个基本过程,首先需要创建sqlmapclient,这个sqlmapclient类似于在hibernate中的session,对于它的创建,在spring中设计sqlmapclientfactorybean,通过这个factorybean;哎读取sqlmapclient的配置和具体创建。在配置和创建好sqlmapcl原创 2015-07-26 14:36:51 · 762 阅读 · 0 评论 -
SPRING技术内幕-笔记(十)spring声明式事物处理
10.1事物处理拦截器的配置 首先看一下建立事物处理对象的时序图: 首先从TransactionProxyFactoryBean 的createMainInterceptor()方法开始://TransactionInterceptor 封装了AOP的事物处理的实现,通过依赖注入设置进来 private final TransactionInterceptor transactionIn原创 2015-07-14 18:20:36 · 567 阅读 · 0 评论 -
SPRING技术内幕-笔记(十一)spring事物处理的设计与实现
11.1事物的创建 TransactionInterceptor的invoke的回调过程中会使用createTransactionIfNecessary,这个方法在其基类TransactionAspectSupport中实现,期间会使用AbstractPlatformTransactionManager调用getTransaction(txAttr),这个过程要对不同情况进行处理,得到Transa原创 2015-07-16 16:35:44 · 1343 阅读 · 0 评论 -
读《深入分析Java Web技术内幕》_笔记
近期看了一本javaweb方面的书籍《深入分析Java Web技术内幕》 作者是许令波,阅读过程中了解了诸如tomcat工作原理,java的class文件的解读、java编译器、类加载器classloader、servlet的工作原理、tomcat架构设计原理、web请求过程,有些知识是第一次接触,由于个人基础有限有些地方总是模模糊糊,但是还是坚持看完了,对一些许多人觉得高深的概念有了初步的了解,其原创 2015-08-27 21:26:44 · 2113 阅读 · 0 评论 -
问题记录(1):jquery插件jquery-ui-1.8.18.custom.min.js弹框数据丢失
第一次使用jqueryUI嵌入到系统中,jquery-ui-1.8.18.custom.min.js这个插件可以把一个div封装成一个弹出框,不用window.open()这种纯dom方式,使得代码编写更加简单易懂,但是我使用的这个版本有点问题: jsp页面中定义如下的div作为对话框的“载体”:<div id="editradiationdiv" style="display: none">原创 2015-08-27 20:54:22 · 3487 阅读 · 0 评论 -
设计模式(2)-代理模式
1、静态代理:interface ProxyBase{ public void f(); public void g(); public void h();}//代理程序class Proxy implement ProxyBase{ private ProxyBase implementation; public Proxy(){ //原创 2015-10-10 13:21:07 · 391 阅读 · 0 评论 -
设计模式(3)- 状态设计模式State
状态模式用来改变对象的行为,当状态发生变化时,行为也随着发生变化,和switch分支语句有点类似,比如如下的代码:public class Creature{ private Boolean isFrog = true;//标识 public void greet(){ if(isForg){ System.out.println(“Ribb原创 2015-10-10 15:37:03 · 338 阅读 · 0 评论 -
设计模式(4)-迭代器模式Itarator
思想:提 供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 场景:访 问一个聚合对象的内容而无需暴露它的内部表示。支持对聚合对象的多种遍历。为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。 实现:其 实就是定义一个逻辑上类似一个指针的迭代类。专门用于这种迭代工作。如果对C++ STL火锅功夫 学习的朋友一定不会陌生啦。实际使用过一下就明白了。除了功能之外,原创 2015-10-10 16:55:46 · 488 阅读 · 0 评论 -
设计模式(5)-策略模式Strategy
思想:定 义一系列的算法,把它们一个个封装起来, 并 且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 场景:该 模式实际上也可以理解为一种Bridge模式的变种。只是它突出的是,一般当我们把一个类或者一组 类的一些代码独立成一个Strategy类的时候,我们可能会为同样接口的这些算法定义多个接口一 致,但是实现方法不同的版本,并在需要的时候灵活的替换这些算法。 实现:实 现方式同原创 2015-10-11 14:31:13 · 440 阅读 · 0 评论 -
设计模式(6)-工厂模式Factory
工厂模式有三种:简单工厂模式,抽象工厂模式和工厂方法模式。 1、简单工厂模式 以图形为例://图形接口interface Shape(){ public void draw();}//圆形class Circle implements Shape{ public void draw(){ System.out.println(“Circle is drawin原创 2015-10-11 15:44:52 · 399 阅读 · 0 评论 -
【转】Java中的深拷贝和浅拷贝
原文博客地址:http://blog.csdn.net/chjttony/article/details/7477346 1.浅拷贝与深拷贝概念 (1)浅拷贝(浅克隆) 浅拷贝又叫浅复制,将对象中的所有字段复制到新的对象(副本)中。其中,值类型字段(java中8中原始类型)的值被复制到副本中后,在副本中的修改不会影响到源对象对应的值。而引用类型的字段被复制到副本中的还是引用类型的引用,而不是转载 2015-10-11 16:15:47 · 427 阅读 · 0 评论 -
设计模式(7)-原型模式
思想:克 隆一个已有的类的实例(大家相比都用过甚至写过类的Clone实现,应该很容易理解了)。 场景:应 用Clone的场景应该说非常多,理想情况下我当然希望任何类都能Clone, 需要的时候就能Clone一份一模一样的出来。 实现:这 里将的实现主要之实现的表现形式,而不是如何用具体的语言来实现。因此,只要为需要Clone能力 的类定义一个Clone方法就行。当然,一般,主流的程序语言框架都已原创 2015-10-11 16:28:07 · 366 阅读 · 0 评论 -
设计模式(1)-单例模式Singleton
单例模式的三种实现方式: 1、饿汉模式public class Singleton2{ //饿汉模式,声明时不创建实例对象 public static Singleton2 instance; //单类模式的构造方法必须为private,以避免通过构造方法创建对象实例, //并且必须显示声明构造方法,以防止使用默认构造方法 private S原创 2015-10-10 10:48:30 · 430 阅读 · 0 评论 -
生产者与消费者问题【java实现】
定义面包类:package ProducerAndConsumer;public class Bread {public int id;public int producerid;public Bread(int id,int producerid){ this.id = id; this.producerid = producerid;}}定义一个篮子,里边放一个数组存原创 2015-10-11 19:16:58 · 988 阅读 · 0 评论 -
设计模式(10)-适配器Adapter
思想:将一个类的接口转换成另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 场景:该 模式的应用场景太多了,很多需要的功能模块的接口和我们需要的不完全一致或者有多余或不足,但是需要和我们的系统协同工作,通过Adapter把 它包装一下就能让使它接口兼容了。 实现:定 义一个Adapter类,包含需要包装的类,实现需要的其它接口,调用被包装的类的方法来实现需要 的接口。原创 2015-10-31 17:03:14 · 544 阅读 · 0 评论 -
设计模式(8)-建造者模式
Builder建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不需要了解所构建对象的内部具体构建细节,Builder建造设计模式的目的是为了将构造复杂对象的过程和它的部件解耦。 Builder建造者设计模式中有两个重要角色:Director指导者和Bu原创 2015-10-31 10:30:28 · 1431 阅读 · 0 评论 -
设计模式(9)-门面设计模式
思想:为子系统中的一组接口提供一个一致的界面,这个接口使得这一子系统更加容易使用。 场景:当 你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性, 也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可 以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而原创 2015-10-31 11:07:31 · 393 阅读 · 0 评论