- 博客(38)
- 收藏
- 关注
转载 稳定排序和不稳定排序
传自:http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 排序算法的稳定性通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排
2015-07-23 00:33:53 466
转载 各种排序算法的复杂度
传自:http://blog.sina.com.cn/s/blog_77795cad01011txt.html排序法平均时间最差情形稳定度额外空间备注冒泡O(n2)O(n2)稳定O(1)n小时较好交换O(n2)O(n2)不稳定O(1)n小时较好选择O(n2)O(n2)不稳
2015-07-23 00:23:36 523
原创 HTTP状态码详解
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。 HTTP状态码分五大类: 100-199 用于指定客户端应相应的某些动作。 200-2
2015-07-07 12:40:11 1331
原创 java访问局域网共享资源
本地要读取存在另一台计算机上的文件,两台主机在同一局域网中,互相拷贝费时费力。只需将要访问的资源设置成资源共享,就可以在局域网其他主机读取该文件。 首先,将要访问文件所在文件夹设置为“共享文件夹”。 接下来就可以访问了:public class Testtelnet { public static void main(String[] args) { /
2015-05-11 14:55:22 2995 1
原创 Thread.join()详解
Thread.jion()是干嘛用的,网上看到一个网友举的例子非常有意思。你准备洗澡,需要准备的步骤,准备好衣服,沐浴的东西及烧水这些事情,由于烧水耗时太长,如果也放在主线程之中,就很浪费资源,所以如果我们另开线程去处理,就会达到很好效果,于是乎在准备好衣服,沐浴的东西之前就去开子线程烧水,烧水的过程中主线程准备好衣服,沐浴的东西,此时就等待水烧好,然后方可痛快的洗澡了!! 下面我们来实现一
2015-05-04 17:12:49 1059
原创 List排序原理浅析
有时在项目中我们需要对List中的对象进行排序,可以使用Collections提供的静态方法sort(List list)或sort(List list, Comparator c)对已有的List进行排序。下面我们分析这两个方法的JDK源码。 public static > void sort(List list) { Object[] a = list.toArray
2015-05-04 15:51:43 834
原创 java同步工具类之Exchanger
Exchanger 可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为 SynchronousQueue 的双向形式。Exchanger 可能在应用程序(比如遗传算法和管道设计)中很有用。 模拟用于实现两个之间的数
2015-04-29 16:17:48 671
原创 java同步工具类之CountDownLatch
在一些应用场合中,某段程序需要等待某个条件达到要求后才能执行,或者等待一定长的时间后此行,从jdk1.5开始就可以使用CountDownLatch实现, CountDownLatch类是一个同步倒数计数器,构造时传入int参数,该参数就是计数器的初始值,每调用一次countDown()方法,计数器减1,计数器大于0 时,await()方法会阻塞后面程序执行,直到计
2015-04-29 16:10:55 679
转载 java 并发工具类CyclicBarrier介绍
转自:http://www.iteye.com/topic/980944CyclicBarrier介绍一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环
2015-04-29 15:12:55 514
原创 java同步工具之Samaphore
Samaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Samaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问。 将信号量初始化为 1,使得它在使用时最多只有一个可用的许可,从而可用作一个相互排斥的锁。这通常也称为二进制信号量,因为它只能有两种状态:一个可用的许可,或零个可用的许可。按此方式使用时,二进制信号量具有某种属性(与很多Lock
2015-04-29 11:14:02 685
原创 监听者原理
监听器是一段java代码,用来监听另一个java对象方法调用和属性改变的。 监听器的工作原理:1、存在事件源,即被监听对象。 2、存在监听器接口,在具体应用中对其进行实现,用来监听事件源对象方法调用和属性改变。 3、注册监听器,是监
2015-04-27 15:23:08 746
原创 Java反射机制详解
Java反射机制是在运行状态中,对于任意一个类(Class文件),都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 三种创建方式:1、利用Object类中的getClass方法。public static void getClassObject_1(){ Perso
2015-04-24 15:14:13 515
转载 java多线程面试题(一)
public class MyStack { private List list = new ArrayList(); public synchronized void push(String value) { synchronized (this) { list.add(valu
2015-04-23 10:42:41 672
原创 线程笔记(synchronized)
将一个方法或一段代码块放到 synchronized 关键字作用域中,就等于给这块作用域上来一个锁,即同一时间只能有一个线程访问这个方法或这段代码。只有持有相同锁的才会形成互斥。 方法同步:将synchronized添加到方法的声明中即可,写在修饰符之后,返回类型之前。它持有的对象本身的对象锁,即为this,一个类中凡是有synchronized关键字的方法都是互斥的。它与方法
2015-04-22 21:36:50 471
原创 清除页面默认css样式
在前端开发中,我们经常会为自己的网页写自己的css,我们会先清空各标签默认的样式。我们可以先用下面代码清空本来页面样式,然后在后面定义自己的样式。html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, ci
2015-03-31 21:21:15 10491
原创 java 实现选择排序
选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1思想:每次从未排序的队列中选出最小的和此未排序队列最前面的进行交换。即最开始假设第一个最小,此时min = i = 0,依次拿后面的数与第一个进行比较,当发现a[j]小于a[min]时,让min = j,遍历一遍后,如果i != min,将a[i] 和 a[min]交换。此时,第一个数是有序的,后面是无
2015-03-30 09:53:38 633
原创 利用过滤器禁止未登录的用户访问网站
为了安全考虑,最近写的一个项目需要加一个限制,禁止未登录的用户访问网站,想到了用过滤器第一版:public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletR
2015-03-27 09:26:12 1267
转载 jquery的$.extend和$.fn.extend作用及区别
转自:http://blog.sina.com.cn/s/blog_7c5d61f30101da1k.htmljQuery为开发插件提拱了两个方法,分别是:jQuery.fn.extend();jQuery.extend();虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。jQuery便是一个封装得非常好的类,
2015-03-20 10:26:21 503
原创 常见的浏览器前缀
有些时候,某些CSS属性还只是最新版的预览版,并未发布成最终的正式版,而大部分浏览器已经为这些属性提供了支持,但这些属性是小部分浏览器专有的;有些时候,有些浏览器为了扩展某方面的功能,它们会选择新增的一些CSS属性,这些自行扩展的CSS属性也是浏览器专属的。为了让这些浏览器识别这些专属属性,CSS规范允许在CSS属性前增加各自的浏览器前缀。 常见的浏览器前缀有:
2015-03-11 21:57:17 7298
原创 利用递归实现对输入字符串的倒序输出
对输入的字符串进行倒序输出,通常情况下会使用栈,将输入的字符依次入栈,利用栈先进后出的原理,依次从栈顶弹出后输入的字符并输出。其实还可以利用递归实现同样的目的,这样做不需要申请另外的空间。代码如下:public class daoxu {public static void main(String[] args) throws IOException { Inp
2015-01-13 15:44:43 2358
原创 如何写出更有效率的代码?
(1) 尽早释放无用对象的引用。大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域后,自动设置为null;我们在使用这种方法时,必须特别注意一下复杂的对象图,例如数组、队列、树、图等,这些对象之间的相互引用关系较为复杂,对于这类对象,GC回收它们一般效率较低。如果程序允许,尽早将不用的引用对象赋予为null,这样可以加速GC的工作;(2)尽量少用finalize函数。finalize
2015-01-08 11:24:35 550
转载 几个著名Java开源缓存框架介绍
文章转自:http://soft.chinabyte.com/database/180/12091680.shtmlOSCache OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。 OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥
2015-01-08 09:51:35 547
原创 静态变量使用技巧
当程序中某些类或变量会被经常创建和使用,而数据又不会被改变,即多个对象或变量内容一样,可声明为静态变量,可避免创造许多一样的对象,避免内存开销;可并不是碰的这种情况就要声明为静态变量,静态变量生命周期较长,而且不易被系统回收,因此如果不能合理地使用静态变量,就会适得其反,造成大量的内存浪费。因此建议在全部具备下列条件的情况下尽量使用静态变量: (1)变量所包含的对象体积较大,占用内存较
2015-01-07 22:12:42 834
转载 java解析XML
转自:http://www.iteye.com/topic/1136724XML解析器提供方法来访问或修改XML文档中的数据。 Java提供了多种选择来解析XML文档。以下是各种类型解析器其通常用于解析XML文档。Dom解析器 - 解析通过加载该文件的全部内容,并创建其完整分级树中存储的文件。SAX解析器 - 解析基于事件触发器的文档。不完整(部分)的文件加载到
2014-12-25 18:16:25 425
转载 CSS选择器及优先级
转自:http://www.cnblogs.com/yongzhi/articles/1267645.html通常我们可以将CSS的优先级由高到低分为六组:无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。第二高位的优先属性是在html中给元
2014-12-24 10:37:01 456
原创 异常需要注意点小结
处理异常三种方式:1、try{ }catch(){ }2、try{ }catch(){ }finally{ }3、try{ }finally{ }异常在子父类覆盖中的体现:1、子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类;2、如果父类方法抛出多个异常,那么子类在覆盖该方
2014-12-19 17:04:29 429
原创 Firfox 不支持event
function del() {var srcElement = event.srcElement; //触发事件的源对象,现在是超链接触发$(srcElement .parentElement).remove();}之前的代码,在IE和Chrome下正常,在火狐下得不到源对象,原因是Firefox不支持srcElement属性,而是使用target属性,对代码进行以下修
2014-12-16 15:15:30 367
原创 导入和静态导入
import语句可以导入一个类或某个包中的所有类; import static语句导入一个类中的某个静态方法或所有静态方法; 比如需要求一个数的绝对值,需要用到Math类的静态方法abs()public class abs {public static void main(String[] args) { System.out.println(Math.abs(
2014-12-02 15:15:32 441
原创 java生成随机数
第一种方法,使用静态类Math中的random()函数。 Math.random()返回带正号的 double 值,该值大于等于0.0 且小于1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。第一次调用该方法时,它将创建一个新的伪随机数生成器,与 new java.util.Random 完全相同。之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其
2014-11-24 20:38:57 594
转载 位操作及应用
文章出处:在计算机中所有数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。在实际编程中,如果能巧妙运用位操作,完全可以达到四两拨千斤的效果,正因为位操作的这些优点,所以位操作在各大IT公司的笔试面试中一直是个热点问题。因此本文将对位操作进行如下方面总结: 一. 位操作基础,用一张表描述位操作符的应用规则并详细
2014-11-20 21:22:06 468
转载 必须记住的 30 类 CSS 选择器
大概大家读知道`id`,`class`以及`descendant`选择器,并且整体都在使用它们,那么你正在错误拥有更大级别的灵活性的选择方式。这篇文章里面提到的大部分选择器都是在CSS3标准下的,所以它们只能在相应最新版本的浏览器中才能生效,你完全应该把这些都记在你聪明的脑袋里面。 1. * Css代码 * { margin: 0; paddin
2014-11-18 09:55:33 684
原创 线性表
public JosePhus_2(int number,int start,int distance){LinkedList list = new LinkedList(); for(int i = 0;i list.append((char)('A'+i)+""); } int i = start; while(list.length()
2014-11-02 16:57:08 429
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人