
纯java
文章平均质量分 57
jiangzh1982
这个作者很懒,什么都没留下…
展开
-
JVM工作原理
Java虚拟机Java虚拟机(Java virtualmachine,JVM)是运行Jav才程序必不可少的机制。编译后的Java程序指令并不直接在硬件系统的CPIJ上执行,而是由JVM执行。JVM是编译后的Java程序和硬件系统之间的接口,程序员可以把JVM看作一个虚拟的处理器。它不仅解释执行编译后的Java指令,而且还进行安全检查。它是Java程序能在多平台间进行无缝移植的可靠保证,...原创 2009-11-30 15:49:42 · 206 阅读 · 0 评论 -
java 单例模式的好处
java 单例模式的好处 单例模式是一种常见的设计模式,在《Java与模式》一书中,阎宏博士对单例模式做了全面的总结。单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。单例模式有一下特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供...原创 2011-11-08 17:59:39 · 139 阅读 · 0 评论 -
Servlet生命周期与工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1,Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Ser...原创 2011-11-09 09:13:59 · 145 阅读 · 0 评论 -
Java运行时异常与普通异常的区别
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。Exception:表示可恢复的例外,这是可捕捉到的。Java提供了两类主要的异常:runtime exc...原创 2011-11-09 11:22:31 · 151 阅读 · 0 评论 -
sleep和wait的区别
1、这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。sleep不出让系统资源;wai...原创 2011-11-14 16:45:47 · 102 阅读 · 0 评论 -
Java 冒泡排序
冒泡的思想精髓就是数组中相临的两个数依次相比较,如果左边的数小于右边的数,就将两个数的位置交换,然后继续比较,如果不小于,则不做交换,跳出本次循环,继续用下一位置的数与相临的数做比较,依此类推下去。按这种规则找下去,每轮冒泡会将最小的数冒到最后面。如下代码即为降序冒泡法:public class ArraySort1{ public static void main(String[] args...原创 2011-11-15 11:05:07 · 95 阅读 · 0 评论 -
交换两个数不使用第三方变量
题目很简单:-----------------------------------有两个整型变量:int a=2^31-1; int b=-2^31;要求不通过第三方变量,交换a,b的值?-------------------------------------------------- 思路:不使用第三方变量,肯定在a,b上做文章,可以在一个变量上获取跟a,b有某种关系的值,再通过某种关...原创 2011-11-15 14:04:59 · 185 阅读 · 0 评论 -
任意10进制的数,然后打印其2进制形式的时候里面包含多少个1
具体做法有两种:方法一:public class A{ public static void main(String[] args){ print(25);//25是任意给的一个10进制数 } public static void print(int n){ StringBuffer str=new StringBuffer(); int k=0; while(n>0){ ...原创 2011-11-15 15:36:26 · 149 阅读 · 0 评论 -
插入排序算法
插入排序 Insertion Sort 插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i] 又是排好序的序列。要达到这个目的,我们可以用顺序比较的方法。首先比较L[i]和L[i-1],如果L[i-1]≤ L[i]騆[1..i]已排好序,第i遍处理就结束了;否则交换L[i]与L[i-1]的位置,继...原创 2011-11-15 16:35:25 · 145 阅读 · 0 评论 -
java中的hashcode
Java中有两类集合(Collection),一类是List,一类是Set,前者是有序的,元素可以重复,后者是无序的,元素不可以重复 那么在set类型的集合中,如何判断元素是否重复呢,这就需要使用Object.equals方法,但如果元素很多了,添加一个新元素时,比较的次数 就很多,例如已经有100个元素了,添加第101个元素时,就要和前面的元素比较100次,效率很低。 JAVA中采用哈希表的原理...原创 2011-11-28 11:03:28 · 137 阅读 · 0 评论 -
JAVA工厂模式
1. 简单工厂模式 publci class Sample{ .... } public class A extends Sample{ .... } public class B extends Sample{ ...... } 工厂类处于决定...原创 2011-11-08 17:29:59 · 101 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > Stri...原创 2011-11-04 21:10:49 · 93 阅读 · 0 评论 -
重定向请求的两种方式
1.在程序中如何重定向请求呢?答:重定向请求有两种方式:1)response.sendRedirect("addShop.jsp"); 2) request.getRequestDispatcher("addShop.jsp").forward(request, response);这两种方式有什么区别呢?...原创 2009-12-31 14:20:59 · 939 阅读 · 1 评论 -
java工程最后一个文件夹最后一个文件错误
今天再次遇到java工程最后一个文件夹最后一个文件出错。解决办法是重新编译工程即可解决该问题2009-07-27 13:56:44 · 99 阅读 · 0 评论 -
关于使用javamail的心得
最近开发一个使用javamail发邮件的功能,遇到了一些小问题颇费一番周折,过后总结如下: 通过javamail发邮件的程序网上很多,随便弄一个下来配置完却不一定好用,通常大家会遇到的问题有 Could not connect to SMTP host 或者Connection timed out再或者Unknown SMTP host等错误,让人不知所措。 ...2009-02-17 10:04:59 · 507 阅读 · 0 评论 -
修改jar文件中的配置文件
可以使用两种方法对jar文件进行修改:1.使用winRAR打开jar文件,之后修改xml配置文件,保存之后既可。2.如果上面方法不可以可以使用winRAR软件将jar文件进行解压,修改解压之后修改配置文件,然后使用winRAR将jar文件打开,再将修改之后配置文件托到已打开的jar文件中即可。...2010-04-13 10:52:13 · 373 阅读 · 0 评论 -
图片压缩程序实例
项目中要使用到图片压缩程序,在网上找了一个稍加修改就可以使用了,程序如下:package com.founder.core.util;/** * 缩略图实现,将图片(jpg、bmp、png、gif等等)真实的变成想要的大小 */import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;i...原创 2010-08-05 10:08:18 · 166 阅读 · 0 评论 -
java replaceall 用法
public class TryDotRegEx {public static void main(String[] args) {// TODO Auto-generated method stubString str = "111.3.22.11";str=str.replaceAll("(^|\\.)(\\d)(\\.|$)","$100$2$3");str=str.re...原创 2010-06-10 17:09:00 · 153 阅读 · 0 评论 -
什么是@SuppressWarnings("unchecked")
@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。 因...原创 2010-10-15 10:29:42 · 109 阅读 · 0 评论 -
遍历HashMap的两种方法及效率
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry...原创 2011-10-14 17:33:01 · 267 阅读 · 0 评论 -
HashMap和Hashtable的区别
1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashMap是Hashtable的轻...原创 2011-10-14 17:53:48 · 110 阅读 · 0 评论 -
什么是线程安全
什么是线程安全? 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。 线程安全问题都...原创 2011-11-28 17:57:10 · 256 阅读 · 0 评论