汇编网首页登录博客注册
tomato的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2012-02-24 13:46] 【转】java中的冒泡算法

// 冒泡排序   
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...
阅读全文 | 评论次数(0) | 浏览次数(277) | 所属类型(Java)

[2012-02-24 12:36] 【转】Java transient关键字

  Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。   
  
  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()
...
阅读全文 | 评论次数(0) | 浏览次数(433) | 所属类型(Java)

[2012-02-17 22:32] 【转】Java编程有哪些方法保证线程安全?

  Java编程保证线程安全的三种方法

   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、  实现&继承的区别:
 
  继承:子类与父类在本质上是属于同一类事物。
 
  实现:使得类具有某种功能,也可以通过其他的途径解决。...
阅读全文 | 评论次数(0) | 浏览次数(280) | 所属类型(Java)

[2012-02-17 12:50] String和StringBuffer的区别

  1)String的+运算符在进行字符串运算时,首先将当前的字符串对象转换为StringBuff 类型,调用其append方法,最后再将生成的StringBuff 对象通过其toString 方法转换为String类型的字符串,所以其效率要低。
 
  但是在可读性上,还是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