public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte a = 3,b=2; //1
byte c = a+b; //2
System.out.println(c);
}
}public class PerttyTest {
public static void main(String[] args){
String i="123",s;
s=getStr(i);
System.out.println(s);
}
public String getStr(String s){
StringBuffer sb=new StringBuffer();
for(int i=s.length()-1;i>=0;i--){
sb.append(s.charAt(i));
}
return sb.toString();
}
}class ExBase{
abstract public void martley(){
}
}
public class MyEx extends ExBase{
public static void main(String argv[]){
DataInputStream fi =new DataInputStream(System.in);
try{
fi.readChar();
}catch(IOException e){
System.exit(0)
}
finallly{Sytemt.out.println("Doing finally");}
}
}class ShallowCopy implements Cloneable{
private Date begin;
public Date getBegin() {
return begin;
}
public void setBegin(Date begin) {
this.begin = begin;
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
}
class DeepCopy implements Cloneable{
private Date begin;
public Date getBegin() {
return begin;
}
public void setBegin(Date begin) {
this.begin = begin;
}
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
DeepCopy obj=null;
obj=(DeepCopy) super.clone();
obj.setBegin((Date) getBegin().clone());
return obj;
}public class Test1 {
public int i;
public Test test;
public Test1() {
// TODO Auto-generated constructor stub
}
public Test1(Test1 t){
i=t.i;
test = new Test();
test.i=t.test.i;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//A a = new B();
Test1 t = new Test1();
t.i=9;
t.test=new Test();
t.test.i=10;
Test1 t1=new Test1(t);
System.out.println(t1.i);
System.out.println(t1.test.i);
}
}
class Test{
public int i;
public Test(){
}
public Test(Test t){
i=t.i;
}
}
public class Test1{
public static void main(String args[]){
String a="1234";
String b="1234";
String c = new String("1234");
System.out.println(a==b);
System.out.println(a==c);
System.out.println(a.equals(c));
}
}equal()方法是java.lang.object的方法,也就是所有的Java类都会有的方法。它可以被程序员覆盖重写,通过自定义的方式来判定两个对象是否相等。对于字符串String类来说,他的equal方法用来比较字符串的字符序列是否 完全相等。
Java中char采用Unicode编码格式,用两个字节来表示一个字符,一共16bit,它所能表示的最大值为2的16次方
char是可以存储汉字的,每个中文字符都有对应的Unicode编码。
public class Test1 {
public Test1() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new B();
System.out.println("----------------");
B b = new B();
}
}
class A{
static{
System.out.println("AAAAAAAAAAAAAA static");
}
public A() {
//super();
System.out.println("AAAAAAAAAAAAAA");
// TODO Auto-generated constructor stub
}
}
class B extends A{
static{
System.out.println("BBBBBBBBBBBBBBB static");
}
public B() {
//super();
System.out.println("BBBBBBBBBBBBBB");
}
}"虚引用"顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在 任何时候都可能被垃圾回收。 虚引用主要用来跟踪对象被垃圾回收的活动。虚引用与软引用和弱引用的一个区别在于:虚引用必须和引用队列 (ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之 关联的引用队列中。程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。程序如果发现某个虚引用已经被加入到引用队
列,那么就可以在所引用的对象的内存被回收之前采取必要的行动。
Java虚拟机在执行这段代码时,遇到双引号操作符,它会自动创建一个String对象,该String对象所代表的值就是abc,然后再返回该对象的一个引用。
对应str1字符串来说,它的创建过程同上所述。在Java5.0及其以后的版本,在创建该对象之前,JVM会在String对象池中去搜索该字符串对象是否已经被创建,如果已经被创建,则直接返回一个引用,否则先创建再返回引用。
而str2字符串变量,它的创建过程就要多一个步骤。它会额外的创建一个新的String对象,也就是new关键字的作用,并且返回一个引用给str2 。
Java中有对象池的概念,Java虚拟机启动时候会实例化9个对象池,分别用来存储8中基本类型的包装类和String对象。对象池的存在是为了频繁的创建和销毁对象而影响系统性能。
str1是在对象池中取对象,str2方法直接生成新的对象。
任何情况下,只要new一个String对象都是创建了新的对象。
因此表达式str1==str2的结果是false的。
原文:http://blog.csdn.net/heqiangflytosky/article/details/20954713