移动学习网 导航

java中GC是什么?为什么要有GC? GC是什么? 为什么要有GC?

2024-05-17m.verywind.com
GC是什么?为什么要有GC?~

GC:Java的垃圾回收器。

Java是由C++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。

写C/C++程序,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。内存再大也是有限的,所以当程序不再需要使用某个变量的时候,就需要释放这个内存空间资源,好让别的变量来用它。在C/C++中,释放无用变量内存空间的事情要由程序员自己来解决。就是说当程序员认为变量没用了,就应当写一条代码,释放它占用的内存。这样才能最大程度地避免内存泄露和资源浪费。但是这样显然是非常繁琐的。程序比较大,变量多的时候往往程序员就忘记释放内存或者在不该释放的时候释放内存了。而且释放内存这种事情,从开发角度说,不应当是程序员所应当关注的。程序员所要做的应该是实现所需要的程序功能,而不是耗费大量精力在内存的分配释放上。

Java有了GC,就不需要程序员去人工释放内存空间。当Java虚拟机发觉内存资源紧张的时候,就会自动地去清理无用变量所占用的内存空间。当然,如果需要,程序员可以在Java程序中显式地使用System.gc()来强制进行一次立即的内存清理。

举2个例子:
1.GC(Grid Communication)网格通信 网格是一种新兴的技术,正处在不断发展和变化当中。目前学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有精确的定义和内容定位。比如国外媒体常用“下一代互联网”、“Internet2”、“下一代WEB”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。
2 .垃圾回收器 JAVA/.NET 中的垃圾收集器。Java是由c++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。而C#又借鉴了JAVA。 在老式的C/C++程序中,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。由于内存是有限的,所以当程序不再需要使用某个变量的时候,就需要销毁该对象并释放其所占用的内存资源,好重新利用这段空间。在C/C++中,释放无用变量内存空间的事情需要由程序员自己来处理。就是说当程序员认为变量没用了,就手动地释放其占用的内存。但是这样显然非常繁琐,如果有所遗漏,就可能造成资源浪费甚至内存泄露。当软件系统比较复杂,变量多的时候程序员往往就忘记释放内存或者在不该释放的时候释放内存了。 有了GC,程序员就不需要再手动的去控制内存的释放。当Java虚拟机(VM)或.NET CLI发觉内存资源紧张的时候,就会自动地去清理无用对象(没有被引用到的对象)所占用的内存空间(这里的说法略显粗略,事实上何时清理内存是个复杂的策略)。

GC是垃圾回收的意思(gabage collection),内存处理器是编程人员容易出现问题的地方,忘记或者错误的内存回收导致程序或者系统的不稳定甚至崩溃,java的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,java语言没有提供释放已分配内存的俄显示操作方法。

希望能帮到你,谢谢!

gc是指垃圾回收机制,当一个对象不能再被后续程序所引用到时,这个对象所占用的内存空间就没有存在的意义了,java虚拟机会不定时的去检测内存中这样的对象,然后回收这块内存空间。



强制立即回收垃圾,即释放内存。
java对内存的释放采取的垃圾自动回收机制,在编程的时候,java虚拟机可以自动判断出并收集的垃圾,但一般不会立即释放它们的内存空间,当然也可以通过调用 System.gc()方法,来强制垃圾回收,但是要注意的是,系统并不保证会立即进行释放内存

从前有个对象,他出生在一个叫Eden的幼儿园,他出生的时候发现身旁有好多跟自己差不多大小的小朋友,他们在这里开心的玩耍了一段时间,可是有一天,园长发现他的幼儿园已经人满为患了,再也放不下其他的小朋友了,我就被迫去到了一个叫From的中学,在那里也认识了很多朋友,我以为我是个不幸的孩子,被驱赶来这里,后来我发现每隔一段时间我就被赶去另一个叫to的中学,原来是校长和园长排查了那些中途辍学的对象,然后把他们的信息扔到了回收站,他们说会有从Eden新来的朋友,我们要和他们汇合,然后确实每次都会来一批人,然后我们汇合之后就被重新带回From中学,这样基本是每年一次,每次我也就大一岁了,不过我也发现有些朋友没有和我一起来接新同学,他们去了一个叫Old的大学,其实我也想去看看,不想一次又一次在From和To之间游荡,后来From的人终于也越来越多了,From中学也人满了,校长就说我们全部升级可以去Old大学了,然后我们就全体转移到了Old大学,From中学肯定很快会有新同学的加入,我在Old大学呆了20年后(每次GC加一岁)被回收

  • Java中1. &和&&有何区别? 2.GC是什么?为什么要有GC? 3. Error与Exceptio...
  • 答:1:&表示and,&&是逻辑运算符,返回ture 和flase 2:GC是垃圾收集器,java自带垃圾回收机制负责释放内存空间。没有GC就要像C语言一样手动释放。3:Error表示错误,Exception是异常,异常可以捕获处理,错误不能。4.2个对象。5.Scanner input=new Scanner(System.in);Int a=input.nextInt();System.out...

  • java gc是什么意思
  • 答:Java GC是指Java语言中的垃圾回收机制(Garbage Collection),它是Java虚拟机(JVM)提供的一种自动内存管理的方式。GC机制能够自动识别不再被程序所使用的对象并进行回收,从而避免了C/C++等语言中常见的内存泄漏和野指针等问题。下面将从三个方面介绍Java GC的相关知识。Java GC的原理 Java GC的原理是...

  • java中的垃圾回收是什么意思?
  • 答:垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对象。GC通过确定对象是否被活动对象引用来确定是否收集该对象。GC首先要判断该对象是否...

  • java中的gc是什么意思啊?
  • 答:GC全称为Garbage Collection,是Java语言中的一种自动内存管理机制。在Java程序运行时,由于动态分配内存,不同对象分配到不同的内存地址上,当某些对象不再被使用,但它们占用的内存没有被回收,就会产生内存泄漏,从而导致程序运行变慢或崩溃。为了解决这一问题,Java引入了GC机制,可以自动扫描并释放不再...

  • Java中 gc的作用是什么?
  • 答:System.gc()用来强制立即回收垃圾,即释放内存。java对内存的释放采取的垃圾自动回收机制,在编程的时候不用考虑变量不用时释放内存,java虚拟机可以自动判断出并收集到垃圾,但一般不会立即释放它们的内存空间,当然也可以在程序中使用System.gc()来强制垃圾回收,但是要注意的是,系统并不保证会立即进行...

  • java中GC指的是什么?
  • 答:gc是指垃圾回收机制,当一个对象不能再被后续程序所引用到时,这个对象所占用的内存空间就没有存在的意义了,java虚拟机会不定时的去检测内存中这样的对象,然后回收这块内存空间。GC的基本原理:对于程序员来说,用new关键字即在堆中分配了内存,我们称之为“可达”。对于GC来说,只要所有被引用的对象...

  • java 中的gc是怎么一回事,内部运行是什么样的??
  • 答:就是垃圾回收。在虚拟机中将对象分为新生代,旧生代和永生代,使用不同的算法进行回收。

  • java中gc是什么意思?
  • 答:Java中GC是什么意思?GC是指垃圾回收机制,是Java平台内存管理的一部分。它是一个后台线程,从堆中删除不再使用的、和可达性分析不到的对象。Java程序员不用手动分配和释放内存,GC会自动进行内存回收,使得Java程序更加安全和高效。GC的工作原理是在后台监控Java堆中的对象,当一个对象不再被引用时,GC...

  • gc是什么意思
  • 答:gc是Garbage Collection的缩写,是垃圾回收机制的意思。gc即垃圾回收机制,用于java堆的内存管理,在JVM中程序计数器,为了避免影响性能,java虚拟机会在程序运行过程中不断的进行自动的垃圾回收。java虚拟机栈,本地方法栈的生命周期跟随线程,栈帧的进栈和出栈等都能够实现自动清理。程序在运行时,会有...

  • ...&和&&有何区别? 2.GC是什么?为什么要有GC? 3. Error与Exception有...
  • 答:2.第二题 GC:Java的垃圾回收器。Java是由C++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。写C/C++程序,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。内存再大也是有限的,所以当程序不再需要使用某个变量的时候,就需要释放这个内存空间资源,好让...

    相关主题

      相关链接:
    户户网菜鸟学习
    联系邮箱
    返回顶部
    移动学习网