Java基础_
文章平均质量分 88
Benjamin_whx
这个作者很懒,什么都没留下…
展开
-
dom4j方式写入xml
Java代码 package com.dheaven.mip.item; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.Iterator; im转载 2015-10-08 14:04:19 · 999 阅读 · 0 评论 -
排序高级之交换排序_冒泡排序
冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序对个项目需要O()的比较次数,且可以原地排序。尽管这个算法是最简单了解和实原创 2015-01-06 11:02:24 · 1593 阅读 · 0 评论 -
排序高级之交换排序_快速排序
快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策略来把一个序原创 2015-01-06 16:31:11 · 1209 阅读 · 0 评论 -
排序高级之选择排序_选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移原创 2015-01-07 10:42:27 · 1318 阅读 · 0 评论 -
排序研究前戏_计算复杂性
计算复杂性理论(Computational complexity theory)是理论计算机科学和数学的一个分支,它致力于将可计算问题根据它们本身的复杂性分类,以及将这些类别联系起来。一个可计算问题被认为是一个原则上可以用计算机解决的问题,亦即这个问题可以用一系列机械的数学步骤解决,例如算法。如果一个问题的求解需要相当多的资源(无论用什么算法),则被认为是难解的。计算复杂性理论通过引入数学原创 2015-01-06 10:07:09 · 951 阅读 · 0 评论 -
排序高级之交换排序_臭皮匠排序
Stooge 排序是一种低效的递归排序算法,甚至慢于冒泡排序。在《算法导论》第二版第7章(快速排序)的思考题中被提到,是由Howard、Fine等教授提出的所谓“漂亮的”排序算法。该算法得名于三个臭皮匠,每个臭皮匠都打其他两个实现如果最后一个值小于第一个值,则交换这两个数如果当前集合元素数量大于等于3:使用臭皮匠排序前2/3的元素使用臭皮原创 2015-01-06 17:59:31 · 2651 阅读 · 0 评论 -
杨辉三角
package com.baobaotao.test;public class YanghuiTriangle { public static void main(String[] args) { printTriangle(7) ; } /** * * @param rowNum 行数 */ public static void printTriangle(in原创 2014-12-31 12:04:49 · 994 阅读 · 0 评论 -
排序高级之交换排序_奇偶排序
奇偶排序,或奇偶换位排序,或砖排序,是一种相对简单的排序算法,最初发明用于有本地互连的并行计算。这是与冒泡排序特点类似的一种比较排序。该算法中,通过比较数组中相邻的(奇-偶)位置数字对,如果该奇偶对是错误的顺序(第一个大于第二个),则交换。下一步重复该操作,但针对所有的(偶-奇)位置数字对。如此交替进行下去。处理器数组的排序在并行计算排序中,每个处理器对应处理一原创 2015-01-06 12:05:09 · 9643 阅读 · 1 评论 -
Java枚举类型的使用
1. 在J2SE5.0中要定义枚举类型是使用enum关键词,枚举类型主要提供一些常数。如下列代码定义了Action枚举类型: Java代码 public enum Action { TURN_LEFT, TURN_RIGHT, SHOOT } 在Action.java中编写此段代码转载 2015-01-12 00:41:36 · 834 阅读 · 0 评论 -
从数据库中读取Blob对象图片并显示
第一种方法:大致方法就是,从数据库中读出Blob的流来,写到页面中去: Connection conn = DBManager.getConnection(); String sql = "SELECT picture FROM teacher WHERE id=1"; PreparedStatement ps = null; ResultSet rs = nul转载 2014-10-10 15:50:47 · 5375 阅读 · 0 评论 -
排序高级之交换排序_鸡尾酒排序
鸡尾酒排序,也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也可以视作选择排序的一种变形), 涟漪排序, 来回排序 or 快乐小时排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。与冒泡排序不同的地方:鸡尾酒排序等于是冒泡排序的轻微变形。不同的地方在于从低到高然后从高到低,而冒泡排序则仅从低到高去比较序列里的每个元素。他可以得原创 2015-01-06 11:30:12 · 1381 阅读 · 0 评论 -
for循环的执行过程
public class Test01{public static void main(String[] args) { int i = 0 ; for(foo('A');foo('B')&&i i++ ; foo('D') ; }}public static boolean foo(char c){System.out.pri原创 2014-04-15 13:58:42 · 1818 阅读 · 0 评论 -
Http学习之使用HttpURLConnection发送post和get请求
http://blog.csdn.net/totogogo/article/details/1831588http://blog.csdn.net/pandazxx/article/details/1657109http://blog.csdn.net/pandazxx/article/details/1660008最常用的Http请求无非是get和post,get请求转载 2014-12-09 09:45:32 · 975 阅读 · 0 评论 -
java.lang.Math中次方与开次方
开方数3要开放的次数4被开方数应该为3的4次方=81次方:Math.pow(3,4)=81开次方Math.pow(81.0, 1.0/4)=3原创 2015-05-12 16:14:51 · 44756 阅读 · 0 评论 -
Java动态代理二--CGLIB动态代理应用
JDK自从1.3版本开始,就引入了动态代理,JDK的动态代理用起来非常简单,但是它有一个限制,就是使用动态代理的对象必须实现一个或多个接口 。如果想代理没有实现接口的类可以使用CGLIB包。 CGLIB是一个强大的高性能的代码生成包。它被许多AOP的框架(例如Spring AOP)使用,为他们提供方法的interception(拦截)。Hibernate也使用CGLIB来代理单端single转载 2015-03-23 16:19:29 · 540 阅读 · 0 评论 -
Java动态代理三--模拟AOP实现
以下案例模拟AOP实现目录结构接口PersonServicepackage com.ljq.service;public interface PersonService { public void save(String name); public void update(String name, Integer personId);转载 2015-03-23 16:59:37 · 760 阅读 · 0 评论 -
Java动态代理--动态类Proxy的使用
1.什么是动态代理? 答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么使用动态代理? 答:因为动态代理可以对请求进行任何处理3.使用它有哪些好处? 答转载 2015-03-23 16:16:10 · 918 阅读 · 0 评论 -
从Java的堆栈到Equals和==的比较
认识Java中堆和栈栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和 multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期原创 2015-03-20 00:03:57 · 1442 阅读 · 0 评论 -
JAVA中获取文件的绝对路径
/** * 获取一个类的class文件所在的绝对路径。 这个类可以是JDK自身的类,也可以是用户自定义的类,或者是第三方开发包里的类。 * 只要是在本程序中可以被加载的类,都可以定位到它的class文件的绝对路径。 * * @param cls * 一个对象的Class属性 * @return 这个类的class文件转载 2014-12-12 16:41:40 · 3303 阅读 · 0 评论 -
Java获取用户真实IP
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.bt285.cn / 的URL时,用request.getR转载 2014-12-12 18:04:09 · 1363 阅读 · 0 评论 -
字符串相似度算法
public class Levenshtein { private int compare(String str, String target) { int d[][]; // 矩阵 int n = str.length(); int m = target.length(); int i; // 遍历s转载 2014-12-11 18:12:57 · 772 阅读 · 0 评论 -
java中23种设计模式
详情请看23种设计模式原创 2014-05-23 13:57:23 · 991 阅读 · 0 评论 -
java实现短信群发功能
首先去http://www.smschinese.cn/上下载jar包以及注册用户,然后调用api接口,取得秘钥‘1. ASP 调用例子'常用函数'输入url目标网页地址,返回值getHTTPPage是目标网页的html代码function getHTTPPage(url)dim Httpset Http=server.createo原创 2014-03-11 17:14:14 · 4873 阅读 · 0 评论 -
Iterator()和listIterator()的区别及应用
listIterator与iterator的区别原创 2014-02-20 15:52:20 · 1879 阅读 · 0 评论 -
java运算符优先级表
java运算符优先级表原创 2014-02-19 13:38:07 · 2168 阅读 · 0 评论 -
java.net.URLConnection类_java模拟浏览器
最近做个产品要用爬虫获得信息,可是这个网页要模拟浏览器输出,我参考了网上很多setRequestProperty里面User-Agent都写得Mozilla/5.0结果还是不能访问,最后研究了一下写出来了。public static String URLPostConnReturnHtml(String ip){URL url = null ;HttpURLConnection con原创 2014-03-01 13:47:31 · 2429 阅读 · 0 评论 -
java多线程01
例子1例子2例子3例子4例子5例子6例子7t1设置了优先级最高,t2设置了优先级最低,t1不执行完,t2就没有机会执行,但中间休眠了1秒,所以t2有机会执行了,最后结果果然是t2比t1先执行完。例子8例子9例子10例子11原创 2014-02-17 17:49:21 · 731 阅读 · 0 评论 -
jvm执行流程(static代码块和初始化快和父类子类执行过程)
大家猜想一下,结果会是什么?为什么会是这样呢?1.jvm加载StaticBlock的main方法前,要看SubClass中是否有静态的变量和语句,如果有,先给这些静态的变量分配存储空间和执行静态语句(不是静态方法),且由于SubClass的父类中也有静态的变量,根据继承的特性,则先执行父类Parent的静态数据的初始化,然会执行子类的静态数据的初始化。2.执行main方法中的n原创 2014-02-25 14:28:46 · 1354 阅读 · 0 评论 -
单例模式
单例模式也叫单子模式,属于创建型模式。单例模式可分为饱汉(懒汉)式单例和饥汉(饿汉)式单例两种。单例设计模式是一种非常常见的设计模式,如果整个系统中允许某个类只存在唯一实例,那么就可以使用单例模式。特别是:1.初始化这个实例需要加载比较重的资源;2.该实例要被频繁调用;3.系统允许只有一个唯一实例;那么,原则上必须使用单例模式。原创 2014-04-10 18:02:45 · 1079 阅读 · 0 评论 -
利用BigDecimal精确的计算浮点数
package com.chincloud.bigdecimal;import java.math.BigDecimal ;public class Arith { //默认除法运算精度 private static int DEF_DIV_SCALE = 10 ; //避免实例化 private Arith(){ } /** * 提供精确的加法计算 * @pa转载 2014-06-16 13:30:14 · 881 阅读 · 0 评论 -
UDP数据报
原创 2014-02-24 14:57:51 · 1147 阅读 · 0 评论 -
java实现上传图片进行切割
为什么我要进行上传的图片进行切割呢,我这个项目的图片是部门logo,每个部门都可以选择不同的logo,但是要应对浏览器的兼容以及拉伸,我选择了把一张图片切成左、中、右和剩下的部分,因为左边和中变可能会有图案或者字所以不能拉伸,拉伸的只是右边的部分,剩下的部分自适应就可以了。所以用了javax的ImageReader来操作。最后以blob类型保存数据库中。首先要在form表单里面写上enctyp原创 2014-08-22 13:26:17 · 2083 阅读 · 0 评论 -
AtomicInteger简介
package test;import java.util.concurrent.atomic.AtomicInteger;/** * 来看AtomicInteger提供的接口。 //获取当前的值 public final int get() //取当前的值,并设置新的值 public final int getAndSet(int newV原创 2014-08-21 17:12:07 · 735 阅读 · 0 评论 -
过滤器与拦截器的区别
过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符拦截器,是在面向切面编程的就是转载 2014-08-22 18:05:08 · 647 阅读 · 0 评论 -
byte类型取值范围以及溢出详解
例1:public class test { public static void main(String[] args) { byte a = 127 ; a = (byte)(a+3) ; System.out.println(a); }}输出-126,为什么呢byte类型的取值范围是-128-127这个输出结果是由java编码方式决定的,Java中正数用原码原创 2014-08-20 12:05:52 · 11157 阅读 · 1 评论 -
x++和++x的例题分析
y=(x++)+(++x)+(x--)+(--x)+x;先是x++,是说x算完后再自加,就是1+然后x变成了2,而++x是x先自加,然后再运算,x又变成了3,现在是1+3+同理现在先算再减,就是1+3+3+x又变成了2,接着x又先自减变1,后面不变,整 个过程就是1+3+3+1+1=9原创 2014-08-19 11:59:28 · 1652 阅读 · 0 评论 -
java反射小例子
package reflect;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;原创 2014-07-15 18:55:15 · 1253 阅读 · 0 评论 -
java中transient关键字的作用
java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以转载 2014-07-28 14:34:33 · 1058 阅读 · 0 评论 -
java位运算应用
位移动运算符:例如:3 1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011, 2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位, 3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100, 转换为十进制是12。原创 2014-07-07 17:02:03 · 2986 阅读 · 0 评论 -
java自定义注解
【第一部分】首先了解一下java1.5起默认的三个annotation类型:@override:只能用在方法上,用来告诉人们这个方法是改写的父类的@Deprecated:建议别人不要使用旧的api的时候使用的,编译的时候会产生警告信息,可以设定在程序的所有元素上。@SuppressWarnings:这一类型可以暂时把一些警告信息消除。【第二部分】先讲一下怎么自己设计一个an原创 2014-07-28 14:15:46 · 1002 阅读 · 0 评论