随笔分类 - java提高篇
摘要:Java线程池使用说明一 简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我...
阅读全文
摘要:Timer相信大家都已经非常熟悉 java.util.Timer 了,它是最简单的一种实现任务调度的方法,下面给出一个具体的例子:清单 1. 使用 Timer 进行任务调度 package com.ibm.scheduler; import java.util.Timer; import jav...
阅读全文
摘要:8.位操作符: 从一个给定的数n中找位i(i从0开始,然后向右开始)123456789public static boolean getBit(int num, int i){int result = num & (1 0) { // get right most bit & shift ri...
阅读全文
摘要:动态编程主要用来解决如下技术问题:An instance is solved using the solutions for smaller instances;对于一个较小的实例,可能需要许多个解决方案;把较小实例的解决方案存储在一个表中,一旦遇上,就很容易解决;附加空间用来节省时间。上面所列的爬...
阅读全文
摘要:不同排序算法的时间复杂度,大家可以到wiki上查看它们的基本思想。 BinSort、Radix Sort和CountSort使用了不同的假设,所有,它们不是一般的排序方法。下面是这些算法的具体实例While analyzing source code of a large number of op...
阅读全文
摘要:3.树&堆这里的树通常是指二叉树。12345class TreeNode{int value;TreeNode left;TreeNode right;}下面是一些与二叉树有关的概念:二叉树搜索:对于所有节点,顺序是:left children preorderTraversal(TreeNode...
阅读全文
摘要:1.String/Array/Matrix在Java中,String是一个包含char数组和其它字段、方法的类。如果没有IDE自动完成代码,下面这个方法大家应该记住:12345678910toCharArray() //get char array of a StringArrays.sort() ...
阅读全文
摘要:我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下:为了免去解析StackTrace字符串的麻烦,JDK1.4引入了一个新的类,StackTraceElement。 一、问题的引入 我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下: [运行时间] [当前类名] [方法名] INFO: [用户信息] 具体例子如Tomcat启动信息: Jul 9, 2004 11:22:41 AM org.Apache.coyote.http...
阅读全文
摘要:Java中的守护线程 & 非守护线程守护线程 (Daemon Thread)非守护线程,又称用户线程(User Thread)用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆:只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。守护线程最典型的应用就是 GC (垃圾回收器)守护线程通常是由虚拟机自行创建使用,不过通过编码同样可以创建守护线程,而且 very easy:Thread daemonTread = new Thread(); // 设定 daemonThread 为
阅读全文
摘要:简单的说,比较两个int型或long型的数据没有什么问题,可以用==来判断,但对浮点数(float与double)来说,需要对Float.NaN和0.0这个两个特殊数字作额外的处理。Float.NaN严格说来不是一个数字(它的字面意思也就是Not a Number),但是因为这个值可以被保存在一个float型的变量中(因为它常常是除0的结果),所以暂且当它是个数字吧。但它与一般的浮点数有些许不同,就是两个NaN用==比较的结果会得到false。可以用下面的代码验证:Code highlighting produced by Actipro CodeHighlighter (freeware)h
阅读全文
摘要:file的这几个取得path的方法各有不同,下边说说详细的区别概念上的区别:(内容来自jdk,个人感觉这个描述信息,只能让明白的人明白,不明白的人看起来还是有点难度(特别试中文版,英文版稍好些)所以在概念之后我会举例说明。如果感觉看概念很累就跳过直接看例子吧。看完例子回来看概念会好些。getPathpublicStringgetPath()将此抽象路径名转换为一个路径名字符串。所得到的字符串使用默认名称分隔符来分隔名称序列中的名称。返回:此抽象路径名的字符串形式getAbsolutePathpublicStringgetAbsolutePath()返回抽象路径名的绝对路径名字符串。如果此抽象路
阅读全文
摘要:什么是application/x-www-form-urlencoded字符串?答:它是一种编码类型。当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。 表单里提交时也是如此,当包含非西欧字符的字符串时,系统也会将这些字符转换成application/x-www-form-urlencoded字符串。 然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。这个时候我们就要使用另一种编码类型“multipart/form-data”,比如在我们在做上传的时候,表单的enc
阅读全文
摘要:Scanner是新增的一个简易文本扫描器,在 JDK 5.0之前,是没有的。查看最新在线文档:publicfinalclassScannerextendsObjectimplementsIterator,Closeable可见,Scanner是没有子类的。在JDK API关于Scanner提供了比较多的构造方法与方法。那么现在列出一些在平时工作中比较常用的方法,仅供大家参考:构造方法:publicScanner(Filesource)throwsFileNotFoundExceptionpublicScanner(Stringsource)publicScanner(InputStreamso
阅读全文
摘要:【目录】一、【基础知识——扫盲】二、【DOM、SAX、JDOM、DOM4j简单使用介绍】三、【性能测试】四、【对比】五、【小插曲XPath】六、【补充】关键字:Java解析xml、解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath【引言】目前在Java中用于解析XML的技术很多,主流的有DOM、SAX、JDOM、DOM4j,下文主要介绍这4种解析XML文档技术的使用、优缺点及性能测试。一、【基础知识——扫盲】sax、dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析xml文档的;jaxp只是api,它进一步封装了sax、dom两种接口,并
阅读全文
摘要:/**@(#)ArrayList.java1.5606/04/21**Copyright2006SunMicrosystems,Inc.Allrightsreserved.*SUNPROPRIETARY/CONFIDENTIAL.Useissubjecttolicenseterms.*/packagejava.util;/***Resizable-arrayimplementationoftheListinterface.Implements*alloptionallistoperations,andpermitsallelements,including*null.Inadditiontoi
阅读全文
摘要:原先在java编程中,Queue的实现都是用LinkedListQueuequeue=newLinkedList(); 但正如jdk中所说的那样:注意,此实现不是同步的。如果多个线程同时访问一个链接列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成LinkeList显示源码:http://blog.csdn.net/lengyuhong/archive/2010/10/27/5969325.aspx所以为方便起见,可以直接写一个线程安全的Linke
阅读全文
摘要:/**@(#)LinkedList.java1.6706/04/21**Copyright2006SunMicrosystems,Inc.Allrightsreserved.*SUNPROPRIETARY/CONFIDENTIAL.Useissubjecttolicenseterms.*/packagejava.util;/***LinkedlistimplementationoftheListinterface.Implementsall*optionallistoperations,andpermitsallelements(including*null).Inadditiontoimpl
阅读全文
摘要:package com.myjava;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;public class MyCalendar { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { System.out.println(MyCalendar.getMonthSpace("1982
阅读全文
摘要:在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。Android总Activity的启动模式分为四种:Activity启动模式设置:Activity的四种启动模式: 1.standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2.singleTop 如果在任务的栈顶正好存在该Activity的实例,就重用该实例,并且会调用实例的OnNewIntent()方法,否者就会创建新的实例并放入栈顶(即使栈中已经存在
阅读全文
摘要:import java.io.*;public class BufferOutputDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub byte buf[]=new byte[255]; System.out.println("请输入要创建文件名(用/分格):"); try { System.in.read(buf,0,255);//read()方法会抛出异常 String FileName=new String(buf
阅读全文