Java知识点29

LOCK的出现替代了同步:lock.lock();„„„lock.unlock(); 
Lock接口:多线程在JDK1.5版本升级时,推出一个接口Lock接口。 
解决线程安全问题使用同步的形式,(同步代码块,要么同步函数)其实最终使用的都是锁机制。  
到了后期版本,直接将锁封装成了对象。线程进入同步就是具备了锁,执行完,离开同步,就是释放了锁。 
在后期对锁的分析过程中,发现,获取锁,或者释放锁的动作应该是锁这个事物更清楚。所以将这些动作定义在了锁当中,并把锁定义成对象。  
所以同步是隐示的锁操作,而Lock对象是显示的锁操作,它的出现就替代了同步。  
在之前的版本中使用Object类中wait、notify、notifyAll的方式来完成的。那是因为同步中的锁是任意对象,所以操作锁的等待唤醒的方法都定义在Object类中。  

而现在锁是指定对象Lock。所以查找等待唤醒机制方式需要通过Lock接口来完成。而Lock接口中并没有直接操作等待唤醒的方法,而是将这些方式又单独封装到了一个对象中。这个对象就是Condition,将Object中的三个方法进行单独的封装。并提供了功能一致的方法 await()、signal()、signalAll()体现新版本对象的好处。

字符串:

java中用String类进行描述。对字符串进行了对象的封装。这样的好处是可以对字符串这种常见数据进行方便的操作。对象封装后,可以定义N多属性和行为。  
如何定义字符串对象呢?String s = "abc";只要是双引号引起的数据都是字符串对象。  
特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。 ------------------------------------------------------ 
String s1 = "abc"; // s1指向的内存中只有一个对象abc。 
String s2 = new String("abc"); // s2指向的内容中有两个对象abc、new 。  
System.out.println(s1==s2);//false 
System.out.println(s1.equals(s2));//true ,字符串中equals比较的是字符串内容是否相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值