Java
文章平均质量分 84
yqferin
纸上得来终觉浅,绝知此事要躬行!
展开
-
JAVA 服务提供者框架介绍
服务提供者框架是指:多个服务提供者实现一个服务,系统为客户端提供多个实现,并把他们从多个实现中解耦出来。服务提供者的改变对它们的客户端是透明的,这样提供了更好的可扩展性。例如,JDBC,JMS等就是用了服务提供者框架。他们之间的关系如下图:1.服务具体实现类和服务提供者实现类是服务提供者自己去实现。以JDBC为例,这2个模块由具体的数据库提供商来实现。2.其他三个模块是java对数据库提供商怎么实现转载 2015-04-11 09:12:17 · 528 阅读 · 0 评论 -
forward和redirect的区别
页面转发的区别:在Servlet中两种实现:forward方式: request.getRequestDispatcher(“/somePage.jsp”).forward(request, response);redirect方式: response.sendRedirect(“/somePage.jsp”);forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道转载 2015-04-10 10:37:32 · 369 阅读 · 0 评论 -
java序列化
1. 什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。利用对象的序列化实现保存应用程序的当前工作状态,下次再启动的原创 2015-04-15 14:36:24 · 615 阅读 · 0 评论 -
java BigDecimal
BigDecimal类:双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。下面列出了BigDecimal类的主要构造器和方法:构造器描述: BigDecimal(int)创建一个具有参数所指定整数值的对象。 BigDe原创 2015-04-23 21:06:12 · 447 阅读 · 0 评论 -
Effective Java 阅读笔记
引言Java语言支持四种类型:接口、类、数组、基本类型 接口、类、数组被称为引用类型,类实例和数组是对象,而基本类型的值则不是对象。 方法的签名由它的名称和所有参数类型组成,签名不包括它的返回类型。创建和销毁对象第1条:考虑用静态工厂方法代替构造器例:public static Boolean valueOf(boolean b){ return b ? Boolean原创 2015-04-10 18:04:17 · 750 阅读 · 0 评论 -
Web端服务器推送技术原理分析及dwr框架简单的使用
1. 背景“服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语。它是继“Ajax”之后又一个倍受追捧的Web技术。“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系。随着Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大。Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带转载 2015-05-22 08:04:44 · 362 阅读 · 0 评论 -
ServletContext与ServletConfig总结
一、ServletContext对象WEB容器在启动时,会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。由于一个WEB应原创 2015-05-22 14:30:03 · 391 阅读 · 0 评论 -
HttpSession
session的机制:http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢?session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过sessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSES原创 2015-05-22 15:45:12 · 470 阅读 · 0 评论 -
JDK,JRE,JVM区别与联系
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。今天特写此文,来整理下三者的关系。JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb等)和Java基转载 2015-06-26 09:14:03 · 402 阅读 · 0 评论 -
Java基础练习题
一、Java概述1.GC是什么? 为什么要有GC?答:GC是垃圾收集的意思(GarbageCollection),内存处理是编程人员容易出现问题的地方, 忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显式操作方法。原创 2015-06-30 15:53:22 · 1186 阅读 · 0 评论 -
深入探讨 Java 类加载器
类加载器(class loader)是 Java 中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着介绍如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi 中的应用。类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因转载 2015-05-31 07:50:54 · 521 阅读 · 0 评论 -
URI和URL的区别
这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletRequest.get转载 2015-04-07 14:55:57 · 320 阅读 · 0 评论 -
内部类与嵌套类
一、概述我们知道,Java是一种完全的面向对象的语言,作为对象的灵魂,类的种类是多种多样的。类大致可以分外部类和内部类两种,外部类就是我们通常使用的类,而内部类的使用要比外部类少得多,最常见的是GUI事件侦听器。内部类的应用虽然不多,但是如果能够有效地使用内部类,能达到事半功倍的效果。二、内部类和嵌套类要讨论内部类和嵌套类,首先要分清它们两者的区别与联系。首先,内部类(Inner Classes)和转载 2015-05-25 13:59:05 · 1521 阅读 · 0 评论 -
JAVA8 十大新特性详解
一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:interface Formula { double calculate(int a); default double sqrt(int a) { return Math.sqrt(a); }}Formu转载 2015-04-25 09:50:23 · 519 阅读 · 0 评论 -
java文档注释
Java有三种注释方式。前两种分别是// 和/**/,第三种被称作说明注释,它以 /**开始,以*/结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。说明注释,使你更加方便地记录你的程序信息。javadoc 标签:标签 描述 示例 @author 标识一个类的作者 @author description原创 2015-04-22 15:32:30 · 385 阅读 · 0 评论 -
双重检查锁定
单例创建模式是一个通用的编程习语。和多线程一起使用时,必需使用某种类型的同步。在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。它偶尔会失败,而不是总失败。此外,它失败的原因并不明显,还包含 Java 内存模型的一些隐秘细节。这些事实将导致代码原创 2015-04-11 19:51:45 · 395 阅读 · 0 评论 -
Redis与Memcached的比较
1.网络IO模型Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe 传递给worker线程,进行读写IO, 网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是引入了cache coherency和锁的问题,比如,Memcached最常用的stats 命令,实际Memcached所有操作转载 2015-04-07 14:36:38 · 348 阅读 · 0 评论 -
java中hashcode()和equals()的详解
1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们必需清楚,当String 、Math 还有Integ原创 2015-04-12 11:05:56 · 239 阅读 · 0 评论 -
配置Log4j
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appenderNam转载 2015-04-08 21:07:24 · 232 阅读 · 0 评论 -
spring+velocity+javamail发送模板邮件
有时候当我们注册完的时候系统会提示有一封邮件发送到了你的邮箱,如何做呢? 就要用到spring+velocity+javamail这3个玩意,其实只用了spring,因为其他2个都被spring集成了。 先看代码 package com.worthtech.app.util; import java.io.File; import java.util.Map; import java转载 2015-04-08 14:52:27 · 280 阅读 · 0 评论 -
Java Collections Framework
集合 OR 容器通常我们会用数组去保存一些基本数据类型,数组是编译器支持的类型,但是数组的一个明显缺点就是具有固定尺寸,而在一般情况下,只有在程序运行的时候,我们才能知道要保存的具体数目。Java类库提供了一套相当完善的容器框架(Collections Framework)来解决这个问题。其中基本的类型是List、Set、Queue和Map。这些对象类型也被称为集合类,但是由于Java中使用了原创 2015-04-23 09:36:05 · 536 阅读 · 0 评论 -
Java任务调度类库Quartz初步
本文基于Quartz 2.2版本,官方地址如下: http://www.quartz-scheduler.org/现在网上关于Quartz的文章,大多都是1.x版本的,但在2.x版本之后,Quartz的语法已经有了很大的不同。其中最主要的一点就是,Quartz废弃了很多类的构造方法,而改为采用这些类的建造者类(Builder)来初始化它们。对于Quartz而言,有三个最为基础的组件:Schedul转载 2015-04-08 16:06:12 · 371 阅读 · 0 评论 -
java验证码组件Jcaptcha
无背景图片1.创建项目JcaptchaDemo 2.引入相关.jar文件 jcaptcha-1.0-all.jar; commons-logging-1.0.4.jar; commons-collections-2.1.1.jar 3.创建GMailEngine,仿照JCaptcha2.0编写GMail验证码样式的图片引擎.具体的代码如下:设置生成验证的样式就是在这里设置。package转载 2015-04-08 14:21:12 · 479 阅读 · 0 评论 -
Java二进制兼容性原理
一、概述现在的软件越来越依赖于不同厂商、作者开发的共享组件,组件管理也变得越来越重要。在这方面,一个极其重要的问题是类的不同版本的二进制兼容性,即一个类改变时,新版的类是否可以直接替换原来的类,却不至于损坏其他由不同厂商、作者开发的依赖于该类的组件?Java二进制兼容性概念的主要目标是推动Internet上软件的广泛重用,同时它还避免了大多数C++环境面临的基础类脆弱性问题——例如,在C++中,对域转载 2015-04-16 14:07:24 · 1380 阅读 · 0 评论 -
深入理解JVM
1. Java技术与Java虚拟机说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入转载 2015-04-09 08:26:13 · 966 阅读 · 0 评论 -
JavaSE复习笔记
Java语言概述基础常识:常用的DOS命令:dir : 列出当前目录下的文件以及文件夹md : 创建目录rd : 删除目录cd : 进入指定目录cd.. : 退回到上一级目录cd\: 退回到根目录del : 删除文件exit : 退出 dos 命令行echo javase>1.doc注:rd用来删除目录,del用来删除文件,del后跟的如果原创 2015-06-02 15:01:11 · 641 阅读 · 0 评论