GC Object string date

GC:  垃圾回收机制

  java中的垃圾回收  不需要开发人员手动地清理   jvm虚拟机会不定时清理垃圾
  
  垃圾: 指在堆内存中没有任何的引用对象
  
  System.gc();  可以建议虚拟机进行清理 
  
  
Object:

  基本数据类型的包装类: 包装类有自己的方法和属性
   byte     Byte
   short     Short
   int       Integer
   long       Long
    
   float      Float
   double    Double
    
   char      Character
    
   boolean   Boolean
   
   hashCode() ; 哈希码 表示的是  通过一系列的计算 对象在内存中的地址
       哈希码不是严格意义上的地址,而是通过地址计算出的值
       
       
   自动装箱 拆箱:  1.5以后的新特性   基本数据类型和包装类之间的转换

    自动装箱:  Integer n1=100;  //基本数据类型 自动转换成包装类
       底层:  调用了Integer的valueof方法  Integer n1=Integer.Valueof(100);
       
    拆箱:  int n2=n1; 自动拆箱  把包装类转换成基本数据类型
    
    
   Integer要特别注意他的缓存问题: 如果数不在[-128,127]之间 那么就自动new一个Integer对象   看源码

  测试代码:

public class Test {
    public static void main(String[] args) {
        Integer n1=20;
        Integer n2=20;
        System.out.println(n1==n2);
        
        Integer m1=200;
        Integer m2=200;
        System.out.println(m1==m2);
    }
}

  结果:

true
false

String:
   equals  如果没重写就是==
   
   string是重写了equals的  string里的equals比较的是值
   
   如果要比较对象要用==
   
   char 能否存储一个汉字?  能  在java中汉字由2个byte组成 正好占16位
   

  

public static void main(String[] args) {
        String s1=new String("abc");
        String s2="abc";
        String s3="abc";
   String s4="abcdf";
      String s5=s2+"df"; System.out.println(s1==s2); System.out.println(s2
==s3);
     System.out.println(s4==s5); }

结果:false  true false
  当使用+号拼接的时候其实是重新创建了一个对象         但是常量池中的值其实只有一份

StringBuffer和StringBuilder
   StringBuffer是线程安全的
   StringBuilder是线程不安全的
   
   StringBuffer和StringBuilder是可变的字符序列(动态的)
   String是不可变的
   
   当系统中有很多拼接字符串行为时  用StringBuffer和StringBuilder 避免创建过多的String对象

 

Date的代码

  

public static void main(String[] args) {
        
        Date time =new Date();//获取系统的时间
        System.out.println(time);
        
        DateFormat format=DateFormat.getDateInstance();//得到格式化的类
        
        String time1=format.format(time);//用默认的格式来格式化时间
        System.out.println(time1);
        
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyy/MM/dd HH:mm:ss");//自己对时间选择格式化形式  
        String time2=dateFormat.format(time);
        System.out.println(time2);
        
    }

结果:

Mon Aug 22 20:05:50 CST 2016
2016-8-22
2016/08/22 20:05:50

 

posted on 2016-08-20 23:53  cch_java  阅读(163)  评论(0编辑  收藏  举报

导航