- 博客(27)
- 收藏
- 关注
原创 spring bean初始化
1.配置文件中每一个解析成一个BeanDefinition对象,并保存到BeanDefinitionRegistry中2.容器扫描BeanDefinitionRegistry中的BeanDefinition,使用Java的反射机制自动识别出Bean工厂后处理器(实现BeanFactoryPostProcessor接口)的Bean,然后调用这些Bean工厂后处理器对BeanDefinitio...
2015-05-20 17:51:00
170
原创 java 基本类型存储解析
[size=x-small]byte b=-128;byte b=127;都是可以编译通过的,在这里-128和127两个常量都是byte类型的,jvm会处理这个过程。byte b=128;编译不通过的,Type mismatch: cannot convert from int to byte因为128已经超过byte的最大表示,jvm无法把这个常量当做byte,就默认...
2012-07-11 12:53:53
221
原创 jndi学习
[size=medium]jndi--命名和目录服务api用于查找远程的资源,例如对象、属性。在java中的远程调用例如rmi(remote methed invoke)都是基于jndi进行远程查找的,然后扩展功能进行使用。例如rmi,1.是通过客户端的Stubs( 存根 ),存根生存在客户端,但代表了远程对象,它接受 A 的方法调用,并将这些方法调用映射到远端实际...
2012-05-26 19:10:27
181
原创 ConcurrentModificationException主要原因及处理方法
[size=large]当使用 fail-fast iterator 对 Collection 或 Map 进行迭代操作过程中尝试直接修改 Collection / Map 的内容时,即使是在单线程下运行, java.util.ConcurrentModificationException 异常也将被抛出。 Iterator 被创建之后会保存原来容器的modCount,当原来的对象...
2012-05-26 19:10:10
193
原创 java的堆和栈
heap(堆):是由程序员自己分配和回收,若其在程序结束时,未回收时则由操作系统来完成回收工作。java中是有jvm去控制。stack(栈):是由操作系统来分配和回收的。它们之间有缺点的比较:heap 一般比较灵活,且内存不要求连续,但是容易造成内存泄露;stack 一般比较固定,且内存一般分配是连续的,不容易引起内存泄露。[b]它们都不同于数据结构中的堆栈结构,请区分理解。[...
2012-03-21 15:05:47
106
原创 nio
[size=medium]原来的I/O包和NIO处理数据最大的不同之处在于数据打包(packaged)和传输(transmitted)的方式。正如前面所提到的那样,IO(java.io.*)是以流的方式处理数据的,而NIO是以blocks(块)的方式来处理数据的. 一个[b]流面向(stream-oriented)[/b]的I/O系统在处理数据时是一次只处理一个字节;作为in...
2012-01-31 16:57:58
125
原创 java 线程的几个方法
[size=large][b]Thread的方法[/b][/size][size=medium][b]sleep()[/b]1. sleep ()函数有一个参数,通过参数可使线程在指定的时间内进入停滞状态,当指定的时间过后,线程则自动进入可执行状态。[b]blocked线程池[/b]是进入阻塞状态的线程,跟锁没有关系。2. 当调用sleep ()函数后,线程不会释放它的“锁标志”。...
2012-01-17 15:39:12
148
原创 java 线程
[size=medium]现在的系统的都是分时系统,达到[b]多进程[/b]的效果。cpu只是将时间切割为时间片,然后将时间片分配给这些程序,获得时间片的程序开始执行,不等执行完毕,下个程序又获得时间片开始执行,这样多个程序轮流执行一段时间,由于现在cpu的高速计算能力,给人的感觉就像是多个程序在同时执行一样。一个进程就是一个执行中的程序,而每一个进程都有自己独立的一块内存空间,一组系...
2012-01-17 14:37:20
111
原创 java 访问修饰符
对于类成员(字段和方法)的访问权限来说,[b]public[/b]:所有类都可访问。[b]protected[/b]:继承访问权限。基类通过protected把访问权限赋予派生类而不是所有类,另外,protected也提供包访问权限,也就是说,相同包内的其他类可以访问protected元素。[b]默认[/b]为包访问权限,即包内的类对其有访问权限。[b]private[/b]:...
2012-01-12 10:34:23
122
原创 设计模式初学
[size=medium][list][*]代理模式只是原来对象的一个替身(原来对象约束了代理的行为)。[*]装饰模式是对原对象的功能增强。[*]适配器模式是要改变原对象的接口。[/list]代码都是差不多的, 都是:代理类里面有一个被代理对象的属性,有一个invoke方法。任何方法最后都变成调用invoke方法。[/size]...
2012-01-10 17:39:40
97
原创 java 泛型学习--类型系统
[size=large]在Java中,大家比较熟悉的是通过继承机制而产生的类型体系结构。比如String继承自Object。根据Liskov替换原则,子类是可以替换父类的。当需要Object类的引用的时候,如果传入一个String对象是没有任何问题的。但是反过来的话,即用父类的引用替换子类引用的时候,就需要进行强制类型转换。编译器并不能保证运行时刻这种转换一定是合法的。这种自动的子类替换父类的类型...
2011-12-26 18:05:20
121
原创 java 泛型学习--类型擦除
类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。[b]在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。[/b]如在代码中定义的List和List等类型,在编译之后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会...
2011-12-26 17:58:55
332
原创 java 泛型学习--泛型方法
通过在类的定义中添加一个形式类型参数列表,可以将类泛型化。方法也可以被泛型化,不管它们定义在其中的类是不是泛型化的。 泛型类在多个方法签名间实施类型约束。在List中,类型参数V出现在get()、add()、contains()等方法的签名中。当创建一个Map类型的变量时,您就在方法之间宣称一个类型约束。您传递给add()的值将与get()返回的值的类型相同。 类似地,之所以声明泛型方法,...
2011-12-26 17:30:03
119
原创 java 泛型学习--类型通配符
假设您具有该方法: [code="java"]void printList(List l) { for (Object o : l) System.out.println(o); }[/code]上面的代码在 JDK 5.0 上编译通过,但是如果试图用List调用它,则会得到警告。出现警告是因为,您将泛型(List)传递给一个只承诺将它当作List(所谓的原...
2011-12-26 17:17:02
116
原创 java 泛型学习
除了异常类型、枚举或匿名内部类以外,任何类都可以具有类型参数。 命名类型参数 推荐的命名约定是使用大写的单个字母名称作为类型参数。这与C++ 约定有所不同(参阅附录 A:与 C++ 模板的比较),并反映了大多数泛型类将具有少量类型参数的假定。对于常见的泛型模式,推荐的名称是: * K —— 键,比如映射的键。 * V —— 值,比如 List 和 Set 的内容,或者 Map ...
2011-12-26 16:42:39
110
servlet path学习
[size=xx-large][b]servlet path就是取从context path后开始取,到servlet匹配处为止。匹配处之后就是path info[/b][/size]Servlet mapping有两种匹配方式:前缀匹配和后缀匹配。[code="java"]对于前缀匹配 当servlet配置为/servlet*时,请求为/servlet/aaa/bbb,...
2011-12-22 15:40:52
346
原创 log4j 学习
Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行...
2011-12-16 11:01:13
130
原创 velocity 宏
[size=medium]1.方法当作参数化当使用引用作为参数传递给Velocity宏,请注意引用是按名字使用。意味着他们的值是在Velocity宏中每一次的引用都是重新生成的。这个特点允许你传入一个对方法的引用,并且在宏中的每一次引用都调用该方法一次。作为一个例子,下面的代码展示了这一点: #macro( callme $a ) $a $a $a #end #ca...
2011-12-12 19:16:11
196
原创 java垃圾回收
[size=x-large]Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。 垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则为...
2011-12-12 19:16:03
129
原创 velocity性能优化
[size=x-large]1.char to byte 字符转变字节,流用字节去输出2.解析执行改成了编译后执行3.减少模板大小:压缩空白字符;合并相同数据;异步渲染,利用专用服务器的优势[/size]...
2011-12-09 11:16:32
411
原创 ThreadLocal
[size=xx-small]每个线程有一个ThreadLocalMap对象,这是一个Map结构的对象。在同一个线程中可以构造多个ThreadLocal对象。[b]它的set(T value)方法其实是以ThreadLocal对象为键key,参数对象value为值value,放入ThreadLocalMap里面。get(),也是以ThreadLocal对象为键key,从map里取[/b]...
2011-11-10 14:48:57
137
原创 struts2 spring插件
[size=x-small]struts.objectFactory这个属性用于说明Struts2的对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于Spring中的对象池,当想要得到Spring中的对象池时,申明struts.objectFactory为Spring的对象池构建工厂。当指定struts.objectFactor...
2011-11-04 16:54:42
168
原创 unicode编码学习
[size=medium]unicode字符集是我们世界上最完善最全面的字符集,几乎包含了世界上所有的字符。其实可以这么理解,unicode字符集是一张巨大的表格,把世界上各种语言的字符和标点符号都编排到里面,然后按照一定的顺序给每个字符排号(很遗憾的是对于中文来说,这个顺序不是按照汉语拼音的顺序)。有了这张巨大的表格,世界上大部分字符就都有一个unicode内码(整数)来对应。计算机就通过记...
2011-10-01 20:21:01
209
原创 java covariance
[b]Covariance[/b] means that [b]the type of arguments[/b], [b]return values[/b], or [b]exceptions[/b] of overriding methods can be subtypes of the original types.在Java中不支持arguments(参数)的Covariance ...
2011-09-30 12:35:49
239
原创 application/json
[size=large][b]accpet : application/json这句是重点。如果没有这句,浏览器解析到的response的ContentType 和 head accpet 都是 ,application/json(因为ResponseBody注解,return 的非String 非ModelAndView类型的时候默认设置为json,它会设置content-type为Cont...
2011-09-28 17:18:59
539
前台提交的编码处理
在进行web开发的时候经常会遇到乱码的问题,乱码一般出现在:1.写在jsp文件中的中文变成乱码2.页面的中文都变成乱码3.后台通过request.getParameter()乱码编码的基础知识计算机只能以字节为单位存储和传输信息,而人需要看的是字符串,字节和字符串之间的对应关系就是字符集,例如字符“中”使用UTF-8字符集映射的字节为:E4 B8 AD 三个字节...
2011-09-28 16:32:46
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人