错题集

本文深入探讨了Java中字符串处理、线程通信机制,特别聚焦于volatile变量在实现线程间通信的作用,同时介绍了ArrayList作为动态数组的优势,以及重载与重写在面向对象编程中的应用。
String s = "hello";
String t = "hello";
1.char c [ ] = {'h','e','1','1','o'};
System.out.println(s.equals (t)); //true  s和t指向内存常量区的同一个字符串  ;
System.out.println(t.equals (c));//false 一个返回字符串,一个返回对象 ;
System.out.println(s==t);// true  s和t指向内存常量区的同一个字符串 ;
System.out.println(t.equals (new String ("hello")));//true equal用于比较两个对象的值是否相同,和内存地址无关
 
 
2.Java线程之间的通信由Java内存模型(简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化

volatile变量的写-读可以实现线程之间的通信。

从内存语义的角度来说,volatile与监视器锁有相同的效果:volatile写和监视器的释放有相同的内存语义;volatile读与监视器的获取有相同的内存语义。

 

3.ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 
   1> 动态的增加和减少元素 
   2> 实现了ICollection和IList接口 
   3> 灵活的设置数组的大小
 
4.重载在一个类中,重写在继承中,重写中子类和父类相同方法名,参数类型和参数表

转载于:https://www.cnblogs.com/bb3q/p/5089545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值