GC Object

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);
       
    拆箱:  Integer 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对象

时间: 2024-10-12 14:14:43

GC Object的相关文章

浅谈c#和lua的gc

前提: 本文参考和借鉴相关博客,相关版权归其所有,我只是做一个归纳整理,所以本文没有任何版权 参考文献和书籍: CLR和.Net对象生存周期:   https://www.cnblogs.com/Wddpct/p/5547765.html c#Finalize 和Dispose的区别:  https://www.cnblogs.com/Jessy/articles/2552839.html <Lua设计与实现>——codedump 著 一.概要 本次对常见使用的c#和lua语言的gc操作原理和

jQuery源码

/*! * jQuery JavaScript Library v1.8.3 * http://jquery.com/ * * Includes Sizzle.js * http://sizzlejs.com/ * * Copyright 2012 jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license * * Date: Tue Nov 13 20

JQuery data API实现代码分析

JQuery data 接口是什么? .data() Store arbitrary data associated with the matched elements or return the value at the named data store for the first element in the set of matched elements. 根据jquery官网介绍,data给存储DOM关联的数据, 设置数据是对$选取的所有JQuery对象, 获取数据是对$选取的所有对象的

lua.5.2.3源码阅读(04):Table结构基本操作

table(lobject.h)的结构定义: 1 // TKey结构是一个链表结构,用来存储hash相同 2 // 的所有key,value对结构. 3 typedef union TKey { 4 struct { 5 TValuefields; // key值 6 struct Node *next; // 指向像一个相同hash值的key值: 7 } nk; 8 TValue tvk; //尾部的key值: 9 } TKey; 10 11 // (key,value)对结构,通过key计算

浅析闭包和内存泄露的问题

JavaScript使用一种称为垃圾收集的技术来管理分配给它的内存.这与C这样的底层语言不同,C要求使用多少借多少,用完再释放回去.其他语言,比如 Objective-C,实现了一个引用计数系统来辅助完成这些工作,我们能够了解到有多少个程序块使用了一个特定的内存段,因而可以在不需要时清除这些内存段. JavaScript是一种高级语言,它一般是通过后台来维护这种计数系统. 当JavaScript代码生成一个新的内存驻留项时(比如一个对象或函数),系统就会为这个项留出一块内存空间.因为这个对象可能

学习JVM--垃圾回收(一)

1. 前言 Java和C++之间显著的一个区别就是对内存的管理.和C++把内存管理的权利赋予给开发人员的方式不同,Java拥有一套自动的内存回收系统(Garbage Collection,GC)简称GC,可以无需开发人员干预而对不再使用的内存进行回收管理. 垃圾回收技术(以下简称GC)是一套自动的内存管理机制.当计算机系统中的内存不再使用的时候,把这些空闲的内存空间释放出来重新投入使用,这种内存资源管理的机制就称为垃圾回收. 其实GC并不是Java的专利,GC的的发展历史远比Java来得久远的多

jQuery1.9.1源码分析--数据缓存Data模块

阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(elem, name, data)源码分析 internalRemoveData方法源码分析 internalData方法的源码分析 jQuery.fn.extend({data: function( key, value ) {}})源码分析 jQuery.extend({removeData: function( elem, name ) {}})源码分

《python源码剖析》笔记 pythonm内存管理机制

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.内存管理架构 Python的内存管理机制都有两套实现:debug模式和release模式 Python内存管理机制的层次结构: 图16-1 第0层是操作系统提供的内存管理接口,如malloc.free 第1层是Python基于第0层操作系统的内存管理接口包装而成的,主要是为了处理与平台相关的内存分配行为. 实现是一组以PyMem_为前缀的函数族 两套接口:函数和宏. 宏,可以避免函数调

jQv1.5源代码重读

/*! * jQuery JavaScript Library v1.5 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Fou