随笔分类 -  java

摘要:一、java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。 Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main()方法的类名。 Main()方法是程序的起点,他被执行的线程初始化为程序的初始线程。程序中其他的线程都由他来启动。Java中的线程分为两种:守护线程 (daemon)和普通线程(non-daemon)。守护. 阅读全文
posted @ 2014-02-24 15:37 若 ♂ 只如初见 阅读(450) 评论(0) 推荐(0)
摘要:Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。 但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一... 阅读全文
posted @ 2014-02-24 11:38 若 ♂ 只如初见 阅读(1617) 评论(0) 推荐(0)
摘要:先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)。2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身。栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中。2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。方法区:1.又叫静态区, 阅读全文
posted @ 2014-02-24 11:14 若 ♂ 只如初见 阅读(373) 评论(0) 推荐(0)
摘要:一、java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同。 2.classpath变量可以设置其它目录下的类。 例如:类文件所在目录是:F:\Javajdk,那么没有设置classpath变量时,在F:\下是访问不到类文件的。可以通过以下方式设置classpath变量,就可以访问不同目录的文件(注意classpath变量中等号的左边和右边的目录文件名称中间是不能有空格,例如一个名为“my Java”的文件夹是不可以的): a.当前目录为F:\的目录下,设置 set classpath=F:\Java jdk,然后执行 F:\java test... 阅读全文
posted @ 2014-01-22 10:00 若 ♂ 只如初见 阅读(308) 评论(0) 推荐(0)
摘要:package com.util;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.concurrent.CountDownLatch;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache. 阅读全文
posted @ 2014-01-20 14:07 若 ♂ 只如初见 阅读(976) 评论(0) 推荐(0)
摘要:因为url传送默认编码是容器的编码,tomcat默认是iso-8859-1.所以,request.gerParameter()获得的值必须转码,除非设置tocmat的默认url编码。这个是涉及到字符编码的问题 一个字符在网页间传递要经过编/解码的问题 我来具体解释一下这个语句username=new String(username.getBytes("ISO8859_1"),"GBK"); 网页本身是gb2312(也就是gbk)对数据进行解码的,那么你要将这个数据转换成ISO8859_1解码 的数据,一定要先将这个数据编码成gbk,然后通过getByte 阅读全文
posted @ 2014-01-19 16:55 若 ♂ 只如初见 阅读(6192) 评论(0) 推荐(0)
摘要:一、注解基本知识1、元注解元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.2. 参数成员只能用public或默认(default)这两个访问权修饰3. 参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一 阅读全文
posted @ 2014-01-17 11:27 若 ♂ 只如初见 阅读(35425) 评论(2) 推荐(3)
摘要:一、关键字:JDK1.5的新特性、Eclipse、MyEclipse、IDE、Workspace、Perspective、view、设置javac和java的版本、模块代码、快捷键、导入工程、静态导入、可变参数、增强for循环、自动装箱与拆箱 1、 Ecplise的基础设置 MyEclipse是Eclipse的插件,相当于补丁,增强了一些功能,用于开发JavaEE的程序(JavaEE,Java Platform Enterprise Edition,企业级版本),即WEB项目。现在是将2个软件和在一起安装,更加方便。Eclipse是用Java语言开发的。运行Eclipse,实际是在运行... 阅读全文
posted @ 2014-01-17 09:25 若 ♂ 只如初见 阅读(528) 评论(0) 推荐(0)
摘要:文件下载原里: 使用http协议实现多线程下载b.采用多线程下载,可以抢占服务器cpu的处理时间,实现快速下载c.使用多线程下载文件可以更快完成文件的下载,多线程下载文件之所以快,是因为其抢占的服务器资源多。如:假设服务器同时最多服务100个用户,在服务器中一条线程对应一个用户,100条线程在计算机中并非并发执行,而是由CPU划分时间片轮流执行,如果A应用使用了99条线程下载文件,那么相当于占用了99个用户的资源,假设一秒内CPU分配给每条线程的平均执行时间是10ms,A应用在服务器中一秒内就得到了990ms的执行时间,而其他应用在一秒内只有10ms的执行时间。就如同一个水龙头 ,每秒出水量相 阅读全文
posted @ 2013-12-06 14:30 若 ♂ 只如初见 阅读(367) 评论(0) 推荐(0)
摘要:1、描述:流是字节数据或字符数据序列。Java采用输入流对象和输出流对象来支持程序对数据的输入和输出。输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据;输出流对象提供了数据从程序流向终点的管道,程序通过该管道把数据写到终点。所有的关于输入/输出的类都包含在java.io的包中。2、File类:它主要关心的是文件的具体属性,而非内容,定义了许多方法,实现对文件的创建、删除等操作。code:import java.io.*;public class Test{ public static void main(String args[])throws Exception { . 阅读全文
posted @ 2013-12-05 11:04 若 ♂ 只如初见 阅读(1853) 评论(0) 推荐(0)
摘要:package com.cjonline.foundation.cpe.action;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.zip.GZIPInputStream;import ja 阅读全文
posted @ 2013-11-22 17:28 若 ♂ 只如初见 阅读(469) 评论(0) 推荐(0)
摘要:http://lavasoft.blog.51cto.com/62575/93883/Java FTP客户端工具包很多,在此我选用的Apache的FTPClient。这个包的获取可以通过[url]http://commons.apache.org/net/[/url]来获取,我使用的是最新的commons-net-1.4.1.zip。其中包含了众多的java网络编程的工具包,官方文档列举如下: 支持网络协议如下: FTP NNTP SMTP POP3 Telnet TFTP Finger Whois rexec/rcmd/rlogin Time (rdate) and Daytime Echo 阅读全文
posted @ 2013-11-15 10:27 若 ♂ 只如初见 阅读(573) 评论(0) 推荐(0)
摘要:package cn.generic.test;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.List;/** * 泛型工具类 * @author lihuoming * */public class GenericsUtils { /** * 通过反射,获得指定类的... 阅读全文
posted @ 2013-10-30 09:14 若 ♂ 只如初见 阅读(1418) 评论(0) 推荐(0)
摘要:1、保存数据private synchronized boolean saveFile(String url,String filename){ try { String path = servletRequest.getSession().getServletContext().getRealPath("/"); System.out.println(path); path+="WEB-INF\\classes\\"; File file = new File(path+filename);... 阅读全文
posted @ 2013-10-24 15:08 若 ♂ 只如初见 阅读(381) 评论(0) 推荐(0)
摘要:1、通过Help》》Install New Soft 之后弹出对话框,可以通过“Add”按钮添加已经有的插件的(zip等)或者输入安装地址,之后按照要求即可。2、对于安装失败的插件,再次进行安装时就安装不了,这时只需要点击“Add”下面的" Available Software Sites"会弹出对话框,搜索安装失败的插件之后移除即可。3、卸载插件,Help 》About Eclipse 》 Installations Details 》点击选中插件 》uninstall 阅读全文
posted @ 2013-10-09 10:45 若 ♂ 只如初见 阅读(305) 评论(0) 推荐(0)
摘要:1. 什么是回调函数 所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java ... 阅读全文
posted @ 2013-09-27 13:35 若 ♂ 只如初见 阅读(991) 评论(0) 推荐(0)
摘要:1、复合优先于继承 1.1 继承是实现代码重用的有力手段,但不总是完成这项工作的最佳工具。包的内部继承加上文档说明在一个程序员的控制下是非常安全的但是越包边界的继承,则是很危险的。造成子类脆弱性的原因是,父类在后续版本获得新的方法,子类很有可能调用旧的方法。 1.2 为了解决上面的问题,可以考虑采用“复合”的方式,在一个新类中增加一个私有对象,通过构造函数传入,为了更加灵活,可以让他的类型为接口(比如Set,那么它可以接受TreeSet,HashSet等)。 1.3 如果让类B扩展类A,满足每一个B确实是A,则采用继承,否则采用复合模式。 1.4 继承机制的功能非常强大,但是也存在很多问题.. 阅读全文
posted @ 2013-09-26 15:36 若 ♂ 只如初见 阅读(231) 评论(0) 推荐(0)
摘要:java中有8种基本数据类型,byte,short,int,long,float,double,booleanbyte用1个字节表示,占8比特,取值范围 负2的7次方至正2的7次方减1 二进制00000000 第一位0如果为0表示正数 1表示负数short用2个字节表示,占16比特,取值范围 负2的15次方至正2的15次方减1 二进制00000000 00000000 第一位0如果为0表示正数 1表示负数int用4个字节表示,占32比特,取值范围 负2的31次方至正2的31次方减1 二进制00000000 00000000 00000000 00000000 第一位0如果为0表示正数 1表示. 阅读全文
posted @ 2013-09-25 13:08 若 ♂ 只如初见 阅读(684) 评论(0) 推荐(0)
摘要:package com.cjonline.foundation.evisa;public class TestTree { private int data=-1; private TestTree lchild=null; private TestTree rchild=null; private int pos=-1; //记录当前已经使用数组的位置 /* * 构造二叉树 */ public TestTree createTree(TestTree tree,int[] data){ if(data == nu... 阅读全文
posted @ 2013-09-23 10:51 若 ♂ 只如初见 阅读(699) 评论(0) 推荐(1)
摘要:package com.cjonline.foundation.evisa;import java.io.BufferedReader;import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigDecimal;public class Test { public static void main(String[] args) t... 阅读全文
posted @ 2013-09-09 14:41 若 ♂ 只如初见 阅读(470) 评论(0) 推荐(0)