Java
文章平均质量分 78
huali_cc
这个作者很懒,什么都没留下…
展开
-
forward、sendRedirect及Jsp和Servlet之间的跳转
使用同一个 request ,是在服务器端跳转,浏览器显示的是第一个页面的名字,因为客户端(浏览器)不知道它在服务器端跳转了。Response.sendRedirect 是两个不同的 request ,是在客户端跳转,浏览器显示的是跳转后的页面的名字。因为它是从客户端跳转到第二个页面的。 使用 forward 时,由于只是发送一次 request 请求, req转载 2011-11-18 10:28:16 · 199 阅读 · 0 评论 -
JDK7新特性<六> 监听文件系统的更改
我们用IDE(例如Eclipse)编程,外部更改了代码文件,IDE马上提升“文件有更改”。Jdk7的NIO2.0也提供了这个功能,用于监听文件系统的更改。它采用类似观察者的模式,注册相关的文件更改事件(新建,删除……),当事件发生的,通知相关的监听者。 java.nio.file.*包提供了一个文件更改通知API,叫做Watch Service API. 实现流程如转载 2011-12-14 17:16:11 · 314 阅读 · 0 评论 -
Java集合框架——HashMap与Hashtable
Java集合框架——HashMap与Hashtable 先来看看两个类的重点方法,再来比较。(这是我看源代码的思路,你也先去看看吧) 集合最主要的操作:写入,读取,移除。 Java代码 /** * Associates the specified value with the specified key in this map转载 2011-12-22 16:40:55 · 347 阅读 · 0 评论 -
JDK7新特性<五> fork/join 框架
对于框架的原理,可以阅读 Doug Lea 的文章“A Java Fork/Join Framework”:了解 Fork/Join 模式的实现机制和执行性能。 原理解析:fork分解,join结合。这个框架的本质是将一个任务分解成多个子任务,每个子任务用单独的线程去处理。这里用到了递归的思想。框架的结构图可以参考 图片来源(http://www.ibm.com/deve转载 2011-12-14 17:14:41 · 240 阅读 · 0 评论 -
JDK7新特性<二> 语法
JDK7对Java语法有少量更新,重点是在易用性和便捷性的改进。 1.二进制字面量 JDK7开始,终于可以用二进制来表示整数(byte,short,int和long)。使用二进制字面量的好处是,可以是代码更容易被理解。语法非常简单,只要在二进制数值前面加 0b或者0B Java代码 byte nByte = (byte)0b0001; short n转载 2011-12-14 17:19:08 · 351 阅读 · 0 评论 -
JDK7新特性<三> JDBC4.1
JDBC4.1更新了两个新特性 1. Connection,ResultSet 和 Statement 都实现了Closeable 接口,所有在 try-with-resources 语句中调用,就可以自动关闭相关资源了 Java代码 try (Statement stmt = con.createStatement()){ … }转载 2011-12-14 16:16:38 · 349 阅读 · 0 评论 -
JDK7新特性<四> NIO2.0 文件系统
java.io.File 不够完美吧。Jdk7提供了一套新的文件系统,会让你满意的。先来聊聊java.io.File的七宗罪吧:) 1.很多方法失败时候都没有抛出异常,很难查找原因2.方法 rename 在不同平台中运行有问题3.不能真正支持 symbolic links4.不能读取文件的更详细属性,比如权限,所有者……5.访问 文转载 2011-12-14 16:19:51 · 284 阅读 · 0 评论 -
JDK7新特性<七> 遍历文件树
有时需要递归遍历一个文件树,比如查找一个文件夹内符合条件的文件,查找某一天创建的文件……。jdk7 nio包提供一个新的接口 FileVisitor。它提供了遍历文件树的各种操作。 preVisitDirectory - 一个路径被访问时调用 PostVisitDirectory - 一个路径的所有节点被访问后调用。如果有错误发生,exception会传递给这个方法转载 2011-12-14 17:17:00 · 320 阅读 · 0 评论 -
JDK7新特性<一>概述
JDK7至今仍未正式发布。从官方的 milestone schedule(里程碑)可知,目前已经准备就绪,处于测试准备阶段,感兴趣 的可以从官方下载JDK7开发预览版。笔者根据官方的相关文档,整理了这个系列的文章。 准备 JDK7下载 http://download.java.net/jdk7/API文档 http://download.ja转载 2011-12-14 17:18:30 · 249 阅读 · 0 评论 -
Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
简介: 这个分为两个部分的系列文章研究了 Apache Tomcat 服务器的系统架构以及其运用的很多经典设计模式。第 1 部分 分析了 Tomcat 的工作原理,第 2 部分将分析 Tomcat 中运用的许多经典设计模式,如模版模式、工厂模式和单例模式等。通过学习它们的实践运用能给我们以后的软件设计起到一定的借鉴作用。门面设计模式门面设计模式在 Tomcat 中有转载 2012-01-13 13:51:59 · 236 阅读 · 0 评论 -
序列化java.io.Serializable
ava.io.Serializable引发的问题——什么是序列化?在什么情况下将类序列化? 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implem转载 2012-02-01 16:05:02 · 230 阅读 · 0 评论 -
JDK7新特性<八>异步io/AIO
概述JDK7引入了Asynchronous I/O。I/O编程中,常用到两种模式:Reactor 和 Proactor。Reactor就是Java的NIO。当有事件触发时,我们得到通知,进行相应的处理。Proactor就是我们今天要讲的 AIO了。AIO进行I/O操作,都是异步处理,当事件完成时,我们会得到通知。JDK7的 AIO包括网络和文件操作。两者大同小异,本文通过一个完整的客户端/转载 2011-12-14 17:17:42 · 582 阅读 · 0 评论 -
socket实现大型文件传输 .
最近需要做网络传输的项目,需要实现较大文件的传输。在网上收集了不少资料,但是各有各的做法,尤其是关于文件自动接收这一块不太清楚。 经过图书馆查阅后还是找到了一种解决办法,虽然做的不太专业,但是思路比较精简、清晰,也希望能给大家尤其是刚学习socket套接字的人一些启示。 对于套接字socket我其实也不太懂,并且一般转载 2011-12-22 16:38:22 · 447 阅读 · 0 评论 -
Java并发编程-同步(六)
原文:http://blog.sina.com.cn/s/blog_4b6047bc010009dc.html 线程除要对共享数据保证互斥性访问外,往往还需保证线程的操作按照特定顺序进行。解决多线程按照特定顺序访问共享数据的技术称作同步。同步技术最常见的编程范式是同步保护块。这种编程范式在操作前先检测某种条件是否成立,如成立则继续操作;如不成立则有两种选择,一种是简单的循环检测,直至转载 2011-12-20 17:10:31 · 209 阅读 · 0 评论 -
Java并发编程-线程(二)
原文:http://blog.sina.com.cn/s/blog_4b6047bc0100099n.html 从一开始Java就被设计成支持并发编程的语言,java语言及其核心类库都有对并发编程的支持。从5.0开始,Java平台引入了一些高层的并发接口。本系列文章将尽可能的概括这些内容。进程与线程 并发编程模式中,有两个基本执行单元:进程与线程。进程和线程是现代操作系转载 2011-12-20 17:03:15 · 250 阅读 · 0 评论 -
Java并发编程-问题(三)
原文:http://blog.sina.com.cn/s/blog_4b6047bc010009co.html 线程之间共享数据引起了并发执行程序中的同步问题。那些数据是可能需要同步访问的呢?很简单,线程之间能够共享的数据,也就是对多个线程可见的数据。 Java的数据有两种基本类型内存分配模式(不算虚拟机内部类型,详细内容参见虚拟机规范):运行时栈和堆两种。由于运行时栈是线转载 2011-12-20 17:04:36 · 195 阅读 · 0 评论 -
Java并发编程-互斥(四)
原文:http://blog.sina.com.cn/s/blog_4b6047bc010009d4.html原子动作 前文讲到,不同线程的操作在访问共享数据时,会因为交织进行而导致线程干扰和内存一致性错误。大多数Java语句在编译成伪代码后都由多条虚拟机指令组成,这使它们有可能被其他线程的语句所分割交织。不能分割交织的操作乘称作原子动作,这些动作一旦发生,便不能在中途停止,要么转载 2011-12-20 17:09:09 · 194 阅读 · 0 评论 -
Java并发编程-活性(五)
原文:http://blog.sina.com.cn/s/blog_4b6047bc010009da.html 前一节中提到不正确的使用互斥技术会导致各种活性问题。所谓程序活性是指并发应用程序能够按时完成动作的能力。常见活性问题主要有死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)。死锁 死锁是指多个线程为竞争某些共享资源而陷入无限等转载 2011-12-20 17:09:38 · 232 阅读 · 0 评论 -
线程sleep()和wait()的区别
sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,也就是说,在线程里面决定.好比如说,我要做的事情是 "点火->烧水->煮面",而当我点完火之后我不立即烧水,我要休息一段时间再烧.对于运行的主动权是由我的流程来控制. 而wait(),首先,这是由某个确定的对象来调用的,将这个对象理解成一个传话的人,当这个人在某个线程里面说"暂停!",也是 thisOBJ.转载 2011-12-20 17:13:07 · 328 阅读 · 0 评论 -
J2EE中的13种技术规范
1. JDBC(Java Database Connectivity): JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。2. JNDI(Java Name and Directory Interface): JNDI API被用于执行名字和目录服务。它提供了一致的模型来存转载 2011-12-13 13:46:28 · 231 阅读 · 0 评论 -
Java并发编程-常量对象(七)
原文:http://blog.sina.com.cn/s/blog_4b6047bc010009wz.html 在创建后状态不再发生改变的对象称作常量对象(Immutable Objects)。常量对象其可靠性使其广泛地用作开发简单可靠代码的策略。常量对象在开发并发程序中非常有用。由于创建后不能被改变状态,它们不会被线程干扰所破坏,不可能产生不一致的观察状态。 Java转载 2011-12-20 17:11:15 · 270 阅读 · 0 评论 -
通过HttpURLConnection提交参数值
网上偶尔看到这个东西,看了自己写了一下。做个记录,希望以后有用。public class HttpConnectionPostTest { public static void main(String[] args) throws Exception { //设置代理,公司用的是代理上网 System.setProperty("proxySet", "tr转载 2011-12-20 17:12:28 · 333 阅读 · 0 评论 -
取得类中属性的泛型类型
class GGG { private MapString, Double> field; public MapString, Double> getField() { return field; } public void setField(MapString, Double> field) { this.fie转载 2011-12-20 17:14:37 · 234 阅读 · 0 评论 -
Java并发编程-概念(一)
并发编程是现代计算机软件最常见的编程模式,是操作系统到应用软件到分布式系统都要关心的问题,其核心目标是解决并行事件的资源共享和访问问题。 自从学生时代,我就一直在学习和并试图理解这些概念。尤其是在学操作系统时,曾经想得觉得自己脑壳都要爆炸了。许多东西是要随着知识和实际工作经验的增长才能领悟的。现在的我觉得现在对这些概念的理解已经超出当初的理解水平,虽然许多更深入的概念和细节我现在都还是很转载 2011-12-20 17:02:35 · 211 阅读 · 0 评论 -
Java中的IOC注入的几种方式
IOCType1 接口注入 我们常常借助接口来将调用者与实现者分离。如: public class ClassA { private InterfaceB clzB; public doSomething() { Ojbect obj = Class.forName(Config.BImp转载 2011-12-29 12:08:59 · 752 阅读 · 0 评论