// 冒泡排序
public class BubbleSort {
public static void sort(Comparable[] data) { // 数组长度
int len = data.length;
for (int i = 0; i < len - 1; i++) { // 临时变量 Comparable temp = null; // 交换标志,false表示未交换
boolean isExchanged = false;
for (int j = len - 1; j > i; j--) { // 如果d...
- [游客] 原来如此,以前做的时候也是一跳而过 01/10 23:37
- [游客] 赞 03/19 16:36
- [xzg6145] 我到了课程设计1,后面内容比较容易,等学完再复习下,然后写几个小游戏得瑟下,感觉以后很美好!!! 03/26 10:55
- [xiaoyao2012] 人情情人,人随情,情走人止 11/02 15:53
- [fpamc] 回看这篇文章。。 感受颇有不同。。。 我会继续往下走。。。 06/16 10:14
- [dxiaolin] 受教了 05/31 21:21
- [tomato] 支持你弄个chm出来。 05/29 16:33
- [fpamc] 收藏一下……有时间无聊了就弄chm`(*∩_∩*)′ 05/29 14:16
- [tomato] 这些命令刚动手实验了一遍,收获还是蛮大的。 05/29 13:04
- [chinatree] 在c中取段地址: 例: #include <stdio.h> f1() { re 05/27 10:00
- [游客] [url=http://www.banjia126.com/banjiachangshi/92.ht 07/26 23:46
- [jeremy] 能加你扣扣吗?我的469614823 08/07 14:36
- [e56004474] 好久不见tomato 活跃拉。。 06/18 13:39
- [fpamc] 正在研究17章…… 近期路线是…… 17章实验--复习-滚屏算法-截取中断来应用动态时间-复习- 05/29 14:19
- [xuehuihui] 请问检测点2.2的填空地(2)题第一个空到底是10001H对 还是1001H 对?谢谢 急 05/15 16:34
- [gnunix] 我的检测点3.2第二小题的sp设置的有问题吧? 05/13 09:48
- [gnunix] 谢谢番茄老师的提醒,我会改进的! 05/12 12:20
- [fpamc] 好久没见老师了。每当提交完作业,都希望老师快速的批阅。得到老师小小的夸奖。看见同学们都在努力学习,相 05/05 23:16
- [fpamc] 会的,我会的,我一定会做出来的,而且做到我内心所想的,更重要的,不会让tomato老师失望。 我想 04/21 08:42
- [sbxinran] 谢谢tomato老师给我检查作业,如果我的分析方法有错误还请您多指点指点 04/11 12:43
[2012-02-24 13:46] 【转】java中的冒泡算法
阅读全文 |
评论次数(0) |
浏览次数(277) |
所属类型(Java)
[2012-02-24 12:36] 【转】Java transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。
这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。
而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成...
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。
这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。
而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成...
阅读全文 |
评论次数(0) |
浏览次数(306) |
所属类型(Java)
[2012-02-17 22:53] 【转】Java线程中sleep和wait的区别
Java线程中sleep和wait的区别,java 线程中的sleep和wait有一个共同作用,停止当前线程任务运行,但他们存在一定的不同,首先我们先看sleep中的构造函数。
1、这两个方法来自不同的类分别是Thread和Object
2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
任何地方使用(使用范围)
synchronized(x){
x.notify()
...
1、这两个方法来自不同的类分别是Thread和Object
2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在
任何地方使用(使用范围)
synchronized(x){
x.notify()
...
阅读全文 |
评论次数(0) |
浏览次数(433) |
所属类型(Java)
[2012-02-17 22:32] 【转】Java编程有哪些方法保证线程安全?
Java编程保证线程安全的三种方法
1,保证线程安全的三种方法:a,不要跨线程访问共享变量b,使共享变量是final类型的c,将共享变量的操作加上同步。
2,一开始就将类设计成线程安全的,比在后期重新修复它,更容易。
3,编写多线程程序,首先保证它是正确的,其次再考虑性能。
4,无状态或只读对象永远是线程安全的。
5,不要将一个共享变量裸露在多线程环境下(无同步或不可变性保护)
6,多线程环境下的延迟加载需要同步的保护,因为延迟加载会造成对象重复实例化
7,对于volatile声明的数值类型变量进行运算,往...
1,保证线程安全的三种方法:a,不要跨线程访问共享变量b,使共享变量是final类型的c,将共享变量的操作加上同步。
2,一开始就将类设计成线程安全的,比在后期重新修复它,更容易。
3,编写多线程程序,首先保证它是正确的,其次再考虑性能。
4,无状态或只读对象永远是线程安全的。
5,不要将一个共享变量裸露在多线程环境下(无同步或不可变性保护)
6,多线程环境下的延迟加载需要同步的保护,因为延迟加载会造成对象重复实例化
7,对于volatile声明的数值类型变量进行运算,往...
阅读全文 |
评论次数(0) |
浏览次数(925) |
所属类型(Java)
[2012-02-17 22:25] 【转】线程安全
什么是线程安全?
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。
线程安全问题都是由全局变量及静态变量引起的。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则...
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。
线程安全问题都是由全局变量及静态变量引起的。
若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则...
阅读全文 |
评论次数(0) |
浏览次数(331) |
所属类型(Java)
[2012-02-17 13:07] 接口与抽象类的区别
1、 接口中不能有方法的实现和变量的声明,抽象类中可以
2、 接口中的方法缺省方法的属性public abstract,而抽象类不能缺省。
3、 接口支持多重继承,抽象类值支持单一继承。
4、 实现&继承的区别:
继承:子类与父类在本质上是属于同一类事物。
实现:使得类具有某种功能,也可以通过其他的途径解决。...
2、 接口中的方法缺省方法的属性public abstract,而抽象类不能缺省。
3、 接口支持多重继承,抽象类值支持单一继承。
4、 实现&继承的区别:
继承:子类与父类在本质上是属于同一类事物。
实现:使得类具有某种功能,也可以通过其他的途径解决。...
阅读全文 |
评论次数(0) |
浏览次数(280) |
所属类型(Java)
[2012-02-17 12:50] String和StringBuffer的区别
1)String的+运算符在进行字符串运算时,首先将当前的字符串对象转换为StringBuff 类型,调用其append方法,最后再将生成的StringBuff 对象通过其toString 方法转换为String类型的字符串,所以其效率要低。
但是在可读性上,还是String的连接运算符要高。
2)StringBuff是线程安全的
String是线程是非安全的
3)String是不可以修改的字符串对象,而StringBuff是可以修改的。...
但是在可读性上,还是String的连接运算符要高。
2)StringBuff是线程安全的
String是线程是非安全的
3)String是不可以修改的字符串对象,而StringBuff是可以修改的。...
阅读全文 |
评论次数(0) |
浏览次数(278) |
所属类型(Java)
[2012-02-17 12:27] switch能否作用于byte,long,string上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于switch。...
阅读全文 |
评论次数(0) |
浏览次数(265) |
所属类型(Java)
页码数(1):
1