错题集

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变量的写-读能够实现线程之间的通讯。java

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

 

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