![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 81
sunxing007
这个作者很懒,什么都没留下…
展开
-
Java常用排序算法及性能测试集合
周末天气不好,在家无事,把常用排序算法理了一遍,收获不小,特写文章纪念。这些算法在学校的时候学过一遍,很多原理都忘记了。现在再回过头理解,结合自己的体会, 选用最佳的方式描述这些算法,以方便理解它们的工作原理和程序设计技巧。本文适合做java面试准备的材料阅读。先附上一个测试报告:Array length: 20000bubbleSort : 766 msbubbleSortAdv原创 2013-06-02 12:27:40 · 5612 阅读 · 3 评论 -
Java谜题畅读版之表达式谜题
谜题1:奇数性下面判断一个数是否是奇数,这个程序对吗?public static boolean isOdd(int i){ return i % 2 == 1;}这里需要注意的是负奇数,负奇数i%2 = -1;正确的程序可以如下:public static boolean isOdd(int i){ return i % 2 != 0;}或者有性能更好的写法:原创 2013-06-12 21:55:43 · 1228 阅读 · 0 评论 -
Java谜题畅读版之字符谜题
谜题11:最后的笑声public class LastLaugh{ public static void main(String[] args){ System.out.print("H"+"a"); System.out.print('H'+'a'); }}你期待程序打出HaHa, 但是不是。问题的关键在于:char的本质是16位无符号整原创 2013-06-12 22:38:46 · 1175 阅读 · 2 评论 -
编码与解码问题的总结
有关编码的问题在有中文的java开发中是个大问题,太多东西值得学习。自己也看了很多前辈的blog, 但是如果说要我自己总结一下这些问题, 我突然发现说不出一二三四,尤其让我感触的是,前几天看到有人问ajax乱码问题,下去写demo的时候,发现以前看的东西都忘记了,于是把我收藏的几篇关于编码的文章再次读了两遍,突然让我觉得每读一遍都有新的收获。读完了之后我觉得有必要作个总结,做个抽象,要不然又会很快原创 2009-09-03 17:34:00 · 5198 阅读 · 0 评论 -
Java谜题畅读版之异常谜题
谜题36:优柔寡断下面的程序打印的是什么呢?甚至,它是合法的吗?public class Indecisive { public static void main(String[] args) { System.out.println(decision()); } static boolean decision() { try {原创 2013-06-13 22:12:06 · 1223 阅读 · 0 评论 -
Java谜题畅读版之循环谜题
谜题24:尽情享受每一个字节public class BigDelight { public static void main(String[] args) { for (byte b = Byte.MIN_VALUE; b < Byte.MAX_VALUE; b++) { if (b == 0x90) Sys原创 2013-06-13 17:44:12 · 1295 阅读 · 0 评论 -
Java谜题畅读版之库谜题
谜题56:大问题我们来测试一下你对BigInteger的了解程度。下面这个程序将打印出什么呢? import java.math.BigInteger;public class BigProblem { public static void main(String[ ] args) { BigInteger fiveThousand = new BigInteg原创 2013-06-17 11:55:15 · 1259 阅读 · 0 评论 -
Java谜题畅读版之类谜题
谜题46:令人混淆的构造器案例下面的程序打印出什么呢?甚至它是否是合法的呢?public class Confusing { private Confusing(Object o) { System.out.println("Object"); } private Confusing(double[] dArray) { System原创 2013-06-16 19:11:01 · 1426 阅读 · 0 评论 -
Java谜题畅读版之更多的类谜题
谜题66:一件私事在下面的程序中,子类的一个域具有与超类的一个域相同的名字。那么,这个程序会打印出什么呢? class Base { public String className = "Base";}class Derived extends Base { private String className = "Derived";}public class Pri原创 2013-06-17 21:17:12 · 1489 阅读 · 0 评论 -
关于Java序列化的一些高级用法
该说的都在注释中说完了。直接给程序吧。package test.javaPuzzler.p5;import java.io.*;import java.io.ObjectInputStream.GetField;import java.io.ObjectOutputStream.PutField;// 转载请注明来自http://blog.csdn.net/sunxing007原创 2013-06-15 22:40:59 · 2547 阅读 · 0 评论 -
Java谜题畅读版之更多的库谜题
谜题78:反射的污染这个谜题举例说明了一个关于反射的简单应用。这个程序会打印出什么呢? import java.util.*;import java.lang.reflect.*;public class Reflector { public static void main(String[] args) throws Exception { Set s = n原创 2013-06-18 20:38:20 · 1505 阅读 · 0 评论 -
理解Java线程的中断
中断的引入是为了解决一个线程被请求中途结束的问题. 一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果. 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了.那么不能直接把一个线程搞挂掉, 但有时候又有必要让一个线程死掉, 或者让它结束某种等待的状态 该怎么办呢? 优雅的方法就是, 给那个线程一个中断信号,原创 2013-06-18 19:54:24 · 19788 阅读 · 0 评论 -
关于java内部类的总结
内部类的分类:成员内部类,静态内部类,局部内部类,匿名内部类 成员内部类:如同类的普通成员一样。1 可以加任意的修饰:private, protected.顶级类只可以为public, default2 内部类不可脱离其外部类的限制使用, 因此在外部类以外创建内部类要这样:outerObject=new outerClass(Constructor Parameters);原创 2009-07-20 14:51:00 · 2583 阅读 · 0 评论 -
Java networking and proxies
Java Networking and Proxies 1) Introduction<br />In today's networking environments, particularly corporate ones, application developers have to deal with proxies almost as often as system administrators. In some cases the application should use the system转载 2011-05-04 12:09:00 · 2285 阅读 · 0 评论 -
[转]XML验证大全备忘录
Checking Wellformed-nessBefore a document can be called XML and not csv, simple text or any other format, it needs to support the basic rules as defined by the XML Recommendation, when it adheres to these rules it is said to be Wellformed XML.<br />Cod原创 2011-04-25 14:04:00 · 1363 阅读 · 1 评论 -
java快速排序法
package sort;public class QuickSort { public static void sort(int[] a, int low, int high){ if(low>=high){ return; } int low0 = low; int high0 = high; boolean forward = false;原创 2009-07-20 21:20:00 · 865 阅读 · 0 评论 -
java二叉树排序算法
排序二叉树的描述也是一个递归的描述, 所以排序二叉树的构造自然也用递归的:排序二叉树的3个特征:1:当前node的所有左孩子的值都小于当前node的值;2:当前node的所有右孩子的值都大于当前node的值;3:孩子节点也满足以上两点package test.sort;public class BinaryNode {/*** author: sunxing00原创 2009-07-17 13:29:00 · 16637 阅读 · 5 评论 -
JAVA实现HTTP服务器端
用java socket实现了一个简单的http服务器, 可以处理GET, POST,以及带一个附件的multipart类型的POST。虽然中途遇到了很多问题, 不过通过在论坛和几个高手交流了一下,问题都解决了。如果你觉得程序有些地方看不明白,可以参看这个帖子:http://topic.csdn.net/u/20090625/22/59a5bfc8-a6b6-445d-9829-ea6d462a4原创 2009-06-29 09:48:00 · 77651 阅读 · 13 评论 -
java调用带输出参数的存储过程
东西不难,但是第一次使用的时候还是折腾了我半小时。废话少说, 看代码。1 后台sp伪代码(T-sql):if exists (select * from sysobjects where name = someProcedoreName and type = P) drop proc someProcedoreNamegocreate proc dbo.some原创 2009-07-10 11:24:00 · 5255 阅读 · 0 评论 -
java中的equals和hashCode
在某些时候,我们需要判断两个对象是否相等。Java的每个类都继承于Object类。它使用equals()及hashCode()这两个方法来判断两个Object是否相等。 1. equals()需要满足5点: 1 自省:对于任一非null引用x,x.equals(x)应返回true;2 反射:对于任一非null引用x及y,仅在y.equals(x)返回true时,x.equal原创 2010-03-25 20:57:00 · 1110 阅读 · 1 评论 -
java把word转html或txt
最近项目中需要在页面中预览word文件,虽说word本身就可以在页面中打开,但是有两个弊端,1是可客户端必须安装word, 2是客户端的环境以及office版本有差异,会造成预览不稳定。在网上找了一下,发现poi可以把word装换成txt,但是格式都丢了,只有光秃秃的文本,又搜jacob, 网友们众说纷纭, 最后还是自己sourceforge上下载jacob并阅读doc搞定了. 1 got原创 2010-05-19 21:59:00 · 8365 阅读 · 1 评论 -
1582年10月5日是个很奇怪的日子
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Test1582 { public static void main(String[] args){ SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy EEE"); Calendar c = Calendar.get原创 2010-06-17 13:40:00 · 10505 阅读 · 1 评论 -
数据库连接池, 没有说的那么简单
记得刚毕业的时候出去面试, 有4次被问到怎么实现一个数据库连接池,可见这个题目当初还是比较吃香的。当时的答案几乎都是这个样子的:在程序/server启动的时候,先申请一定数量的连接放到一个list中缓存起来,当程序需要使用数据库的时候,list中如果还有连接,则分配给它,若没有,则再次申请连接,然后分配给程序, 当程序使用完连接之后, 把链接归还到list。现在想想觉得好笑,如果今天还有人问我这个问题,我说不定会反问他,为什么要连接池,他不一定能脱口而出告诉我原因。连接池无非就是提高的效率,提高了反映速度。原创 2010-08-23 21:58:00 · 1605 阅读 · 3 评论 -
《深入Java虚拟机》导读之二: 平台无关性
平台无关性java的平台无关性是java语言, class文件, API, JVM共同作用的结果.java平台(即java虚拟机和java API)是java的平台无关性的最重要的保证. 因为JVM和API在不同的硬件和操作系统上得以实现,使得java程序不用关心底层, 因为它在任何时候都只和java平台打交道. java平台在java程序和底层平台之间扮演了缓冲的角色.java语言能够从它的原始类型的的行为上折射出平台无关性, java的原始类型的范围和长度是由java语言规定的, 而不像C, C++那样原创 2010-09-02 16:44:00 · 1082 阅读 · 0 评论 -
介绍几个java虚拟机性能监测工具
这些工具都在%JDK_HOME%/bin下. jdk5.0以上基本都有这些工具. jconsole: 是一个图形化的工具, 可以连接至本地或remote的虚拟机, 提供实时的性能视图和资源消耗信息. 不过 如果想连接到weblogic server所使用的虚拟机, 需加启动参数: -Dcom.sun.management.jmxremote. 为了连接至远 程weblogic server, 还需加启动参数:-Dcom.sun.management.jmxremote.port = portNo, JCon原创 2010-08-31 17:51:00 · 1915 阅读 · 0 评论 -
《深入Java虚拟机》导读之一: 体系结构介绍
java体系结构有4个组成部分, 每个部分都有相应的规范. 他们是java编程语言, java class文件格式, java API, java虚拟机.如图:java虚拟机和java API. java程序之所以可以在不同的电脑上运行,是因为java平台在不同的操作系统和硬件平台上都有实现.java虚拟机是一个抽象的电脑, 它的规范定义了一些所有的虚拟机都必须实现的特性和功能, 但是也留给不同的实现者很多灵活性和可选择性. 这些灵活性使得java虚拟机在广泛的电脑平台和设备上被实现. java虚拟机的主要原创 2010-09-02 16:40:00 · 1228 阅读 · 0 评论 -
《深入Java虚拟机》导读之三: 安全
java最初的设计目标是网络应用, 所以安全尤为重要. java安全模型主要集中在防止终端用户受到不被信任的程序的破坏. 为了达到这个目标, java提供了一个称之为"沙箱"的模型. 一个java程序必须在沙箱边界内运行. 沙箱组件包括: 类加载器体系结构, class文件验证, java内置的安全特性, 安全管理器以及API.原创 2010-09-02 18:11:00 · 1163 阅读 · 0 评论 -
《深入Java虚拟机》导读之四: JVM体系结构
jvm的结构.运行时数据区: 当程序运行时, 它需要内存来存放字节码以及从class文件中提取出来的信息, 如: 实例化的对象, 方法参数, 返回值, 局部变量, 运算中间值等等.jvm把它们组织, 存放在运行时数据区.方法区: 存放jvm加载的类型信息.包括: 类型基本信息, 常量池, 字段信息, 方法信息, 类变量, 指向ClassLoader的引用, Class类的引用, 方法表.类型信息:对每个jvm加载的类型, 它需要存储这些信息在方法区: 类型全限名, 直接superclass全限名, 是否是类原创 2010-09-06 14:39:00 · 1195 阅读 · 0 评论 -
《深入Java虚拟机》导读之五: Class文件结构
class文件是为java程序精确定义的二进制文件格式. 正是因为这种精确的定义, 使得无论在任何平台或程序上产生的class文件都可以在其他平台的jvm上运行. 所以说class文件也没有那么神秘, 它的结构相对来说非常的固定. 每个class文件描述了一个单独的java类或接口. 所有类文件中的信息都以下面四种基本类型存储:u1a single unsigned byteu2two unsigned bytesu4four unsigned bytesu8eight unsigned bytesclas原创 2010-09-07 14:04:00 · 1055 阅读 · 0 评论 -
重现apache commons fileupload DOS漏洞
这个漏洞是2014年2月4日被发现的, 因为该组件试用范围非常广, 所以该漏洞的影响也非常巨大。通过特制的包含畸形header的http请求,可以导致使用该组件的应用程序进入无线循环从而耗尽CPU等资源并最终崩溃。最近因为在修补struts1的可操纵classLoader的漏洞(struts2也有该漏洞, 不在本文讨论范围), 所以我就在我建立的struts1的项目上直接做测试。 怎么创建原创 2014-05-15 12:15:48 · 4347 阅读 · 0 评论