您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 向后可达性 >

java GC垃圾回收面试总结

发布时间:2019-09-06 08:58 来源:未知 编辑:admin

  c的垃圾回收是人工的,工作量大,但是可控性高。 java是自动化的,但是可控性很差,甚至有时会出现内存溢出的情况,   内存溢出也就是jvm分配的内存中对象过多,超出了最大可分配内存的大小。

  System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间。它将尝试释放被丢弃对象占用的内存。 System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用。 System.gc()并不能说是完美主动进行了垃圾回收。

  1jvm怎么确定哪些对象应该进行回收 2jvm会在什么时候进行垃圾回收的动作 3jvm到底是怎么清楚垃圾对象的

  实现方式:每个对象有引用计数器,每当有引用对他进行引用时,计数器的值就加1,当引用失效,也就是不在执行此对象是,他的计数器的值就减1,若某一个对象的计数器的值为0,那么表示这个对象没有人对他进行引用,也就是意味着是一个失效的垃圾对象,就会被gc进行回收。

  缺点:这种简单的算法在当前的jvm中并没有采用,原因是他并不能解决对象之间循环引用的问题。

  假设有A和B两个对象之间互相引用,也就是说A对象中的一个属性是B,B中的一个属性时A,这种情况下由于他们的相互引用,从而是垃圾回收机制无法识别。

  只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系,可以显示的将强引用赋值为null,这样一来,JVM就可以适时的回收对象了

  软引用是用来描述一些非必需但仍有用的对象。在内存足够的时候,软引用对象不会被回收,只有在内存不足时,系统则会回收软引用对象,如果回收了软引用对象之后仍然没有足够的内存,才会抛出内存溢出异常。这种特性常常被用来实现缓存技术,比如网页缓存,图片缓存等。

  弱引用的引用强度比软引用要更弱一些,无论内存是否足够,只要 JVM 开始进行垃圾回收,那些被弱引用关联的对象都会被回收。在 JDK1.2 之后,用 java.lang.ref.WeakReference 来表示弱引用。

  虚引用是最弱的一种引用关系,如果一个对象仅持有虚引用,那么它就和没有任何引用一样,它随时可能会被回收,在 JDK1.2 之后,用 PhantomReference 类来表示,通过查看这个类的源码,发现它只有一个构造函数和一个 get() 方法,而且它的 get() 方法仅仅是返回一个null,也就是说将永远无法通过虚引用来获取对象,虚引用必须要和 ReferenceQueue 引用队列一起使用。

  通过判断对象的引用链是否可达来决定对象是否可以被回收。可达性分析算法是从离散数学中的图论引入的,程序把所有的引用关系看作一张图,通过一系列的名为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GC Roots 没有任何引用链相连(就是从 GC Roots 到这个对象不可达)时,则证明此对象是不可用的。

  1. 会在cpu空闲的时候自动进行回收 2. 在堆内存存储满了之后 3. 主动调用System.gc()后尝试进行回收

  如何回收说的也就是垃圾收集的算法。 算法又有四个:标记-清除算法,复制算法,标记-整理算法,分代收集算法

  掉哪些带有标记的对象。 优点: 简单 缺点: 1. 效率问题   2.空间问题,标记清除之后会产生大量不连续的内存碎片,当程序在以后的运行过程中需要分配较大对象时无法找到足够的连续内存而 造成内存空间浪费

  复制将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。这样使得每次都是对其中的一块进行内存回收,内存分配时也就不用考虑内存碎片等复杂情况。只是这种算法的代价是将内存缩小为原来的一半。

  分代收集算法是一种比较智能的算法,也是现在jvm使用最多的一种算法,他本身其实不是一个新的算法,而是他会在具体的场景自动选择以上三种算法进行垃圾对象回收。

  那么现在的重点就是分代收集算法中说的自动根据具体场景进行选择。这个具体场景到底是什么场景。 场景其实指的是针对jvm的哪一个区域,1.7之前jvm把内存分为三个区域:新生代,老年代,永久代

  既然有了GC ,那么还需要手动释放资源吗?什么情况下要用阿?请详细说说好吗论坛

  gc 回收 rn1 浏览root 标记 无引用对象 rn2 清理无引用对象 rn3 压缩空间 rn这其中 主要开销来至哪步?如果2代堆 和 大对象堆增大 ,应该会对第一步产生影响,这个影响多大?一个比较大的程序 0代gc 一般多少毫秒? 1代gc 多少毫秒?(普通双核 1g内存的程序)rn有没有办法 对程序内的 某写方法 运行一个完全独立的gc ?rnrn论坛

  当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。除了释放没用的对象,垃圾收集也可以清除内存记录碎片。1、引用计数法(ReferenceCountingCollector)...博文来自:Ferrerooo 成长

  Quatz几种实现方式JDK自带的Timer类,允许调度一个TimerTask任务,按照某一个频度执行,但不能在指定时间运行。Quartz框架:需要配置文件Job接口,一个任务接口JobDetail,...博文来自:lin5254520的博客

  前段时间看了一些关于GC的论文、书和源码。源码指的是Boehm的保守GC ,论文也主要是围绕这个GC相关的算法,另外还包括一些survey和性能分析的论文。而其他关于GC的一些东西主要是从其他两本书上看来,一本是谢之易老大翻译的垃圾收集 ,目前唯一一本关于GC算法的书,还有就是仔细阅读了C# via CLR 中关于.net GC的部分。原本想做个GC算法上的总结,但前几天在实验室做了个关于GC in C++的介绍,发现其他的一些关于GC的基本问题比算法更需要好好分析。rnrn关于GC in C++,g9老大已经做了一篇漂亮的概述 。我想做的就是按我的逻辑做一下梳理,欢迎大家抄板砖,^_^。rnrnrn第一个问题,为什么我们需要GC?rnrn或者说,在C++中,GC能给我们带来什么。很多的时候,一说起GC,就陷入一场关于性能的讨论。诚然,食堂卖饭mm(or JJ, or 阿姨, or 大妈, or 婆婆...)的pp程度对胃口有很大影响,但对于一个身心正常(if 花痴 or 别用用心者 then throw btException)且饥肠辘辘的人来说,优先考虑的肯定是口味和性价比。对于GC in C++来说,等同于口味和价格的应该是以下因素:rnrn1. 比人肉管理更简单、安全。对于人肉内存管理Meyers对其不安全性有了很多的描述 ,通常一个大的人肉C++程序,没有资源泄露应该是不可能的吧。而C++的new/delete模式,对于很多非C++程序员来说还是非常复杂的。如果你 做的是一个二次开发平台,未来的开发人员很多都是非C++程序员,逼着人家了解如此这般的内存管理模式,是不人道的,也是不安全。而如果是一个全GC的程 序,安全(前提是GC器是安全的...)和易用都是手到擒来的。rnrn2. 可理解性更好。在人肉C++中,咱都需要付出大量的精力去检查和编写内存管理部分,new和delete混杂在代码当中,稍有不慎,调你个半身不遂。特别 是类似于A * GetA()这样的接口(delete or not),没有文档的帮助,几乎是不可理解的(而文档常常又跟不上要求)。而在GC的程序中,代码更为清晰,接口也不会存在puzzle。rnrn所以,在你决定是否使用GC之前,先考虑一下,你是否有以上两点需求。如果你正撑的半死或者对ppmm的渴望超过了一切,那么忘了它吧,GC不是你 碗里的菜。如果,OK,这正是你所需要的。那么接下来考虑的才是GC这盘味道不错的菜是否也秀色可餐、才貌双全呢?是否有其他类似的菜也让我蠢蠢欲动了。 换成地球人的语言就是说,GC的效率、可兼容性等等其他方面如何?有没有其他的方案,也满足上面两点需求,并且在其他方面也表现不凡?rnrnrn第二个问题,我们为什么害怕GC?rnrn拒绝GC的理由,往往不是以上两个原因。之所以要详细的说上面那些,是因为很多人在考虑下面的问题的时候,经常忘记了上面这些巨大的好处(lude me),而掉进了某个井中痴痴的望着天空。恩...这样的井应该包括以下这些:rnrn1. GC的效率低下rnrn2. GC的内存占用率高rnrn3. Stop-the-world的工作模式很可怕rnrn4. 把内存管理这样的大事交给GC不安全rnrn5. 无法与人肉管理的代码兼容rnrn6. 内存回收不够及时rnrn7. 其他我不知道的... (排名不分先后^_^)rnrn这些都是人们害怕,或拒绝使用GC的原因。如果考虑一个最最简单的GC模型,可能以上这些问题都存在。但是,GC已经被研究了N多年,光GC in C++都被研究超过了20年。三日不见,当刮目相看,何况是如此多年,女大也该十八变了。rnrn首要需要解决的问题应该就是分配效率。GC的分配性能一般都考量分摊性能,通常基于追踪的垃圾收集算法,都会是分配快回收慢。基于缩并的(即可移动 的一种)内存分配,比如.net的GC分配都是常量级的损耗,而基于非移动的,由于有冗余,一般也不会慢。关键在于事后追踪的时间会比较长。在Boehm 的GC中,很多的算法都是出于提高标记效率,这种提高不只是从算法复杂度上考虑(代龄可以看成是优化标记复杂度的做法),更多的是从缺页率和cache miss率上来提高。在92年zorn对Boehm GC做的一篇评测中可以看到(现在的GC在分配效率、丢页率和cache miss率上都应该会有更好的表现,但找不到相关paper×_×),哪怕保守GC分配效率也是非常出色的了。而云风前辈在网易游戏中的GC应用 ,可以看成是特定GC的设计之道(不能做通用库用,但实现简单),我相信这会有更好的效率表现。特别是随着多核的普及,基于并发的GC 算法效率更是出类拔萃。所以,分配效率(当然,只能说在大部分的应用场合)不会成为拒绝的理由。rnrn但我想内存占用率会成为一个问题(2、6其实是差不多的问题,占用率高主要就是预分配和延交还)。从zorn的那篇评测可以看到,Beohm GC在内存占用率方面是一般人肉分配器的一倍左右。其实,仔细思考一下GC的原理就可以理解,没有内存的冗余,几乎做不成GC的(分配一次起一次GC,还 算GC么?),当然操作系统有时也作冗余(查找表),但应该会比GC做的保守的多。尽管如此,但我觉得如此大的内存占用率是和Boehm GC的分配器相关,由于是用的Mark-Sweep(标记清扫,非移动的GC算法)算法,可能会出现内存空洞(一大块内存被少量真实使用内存占据,其他部 分不能被不等大的对象使用),并且由于是对齐到2^n的边界再分配,这里就可能会有约为50%的内存损失。因此,我想如果改善该内存分配器(我们有必要做 内存分配器吗?当然,因为我们在托管堆上分配,操作系统已有的分配器再好,对我们也没有帮助),应该有一定的内存占用率降低。并且,如果采用的是Mark -Compact(标记缩并算法,比如.net GC)不会有对齐的损失,冗余的内存块可以更好满足虚拟内存的模式(不用的放一起,用的放一起),这样应该也会降低内存占用率。rnrnStop-the-world是大部分主流GC都会出现的情况(对,基于计数的GC不会有这个问题,但是...),在某些场合(高交互性?)可能会 成为一个大问题。个人觉得这也是一个不可避免的问题,就像你不可能用跑一百米的速度跑1w一样(你100m跑2?OK...算我没说)。但是,大牛们做 了很多工作来降低这种停顿。在Boehm GC中,就有延迟清扫、并行、代龄等手段。而.net GC更把一次GC启动的停顿的目标设在1ms,也就是一个缺页的损失,不知道实测的情况是否能达到。如果能的话,我想大部分情况都可以忍受了吧。rnrn内存交给GC安全么?恩,在C++中这是个问题。因为C++在运行期无法进行类型的识别,就这一条害得N多大牛一碗一碗的吐血的问题。Boehm为 此可以说是无招不用,但无论如何,在理论上都不可能杜绝GC犯错的可能(除非有程序员的帮助^_^)。但我想,这年头,最不安全的还是人本身吧*_^。rnrn兼容性的问题。恩...一个大问题。先举个例子(Its real...)。在项目中,有一部分内存是人肉分配,有另一部分是GC分配。当栈中一个非GC对象指向堆中一个非GC对象时,这个堆对象不会被扫描(因 为栈中对象所指地址GC不可识别),如果这个堆对象指向另外一个托管堆中的GC对象(并且没有别人再引用),这个对象不会被Mark,也就是说GC起来会 把它给收了,这就导致可怕的结果(当...程序Game over了)。为了避免这种情况,最好的办法是要保证所有对象并处于可追踪或可回收的状态。在源码可改的状况下,理论只要重载所有相关的分配器就可以了 (包括全局的,重载的,STL的...)。但有一个问题我想不清楚,如果是多根的情况(比如一个MFC程序,所有类派生自CObject),就是可以修改 源码,这个问题也不好解决(CObject的分配器可关么?请教ing...),更不提其他源码不受控的情况了(看看g9老大列举的吧...但解决之道一 样,保证处于两个状态下)。rnrn最后,我们拿另一盘可选的菜,计数指针来比较一下。俗话说,不怕不识货就怕货比货。其实把计数指针放在这做比较有点不公平,因为它不能提供GC能够 提供的最基本的好处(味道有点酸酸的...),因为它易用性不足够强(指针不是人,不会自觉的穿衣服...),也会把代码搞乱。从效率上看,计数指针直接 Game Over,但从内存利用率和延迟性来看,计数指针会好一些。安全性上,计数指针还是依靠人;兼容性上,半斤对八两。So,两个东西不用拼得你死我活,你走 你的阳关道我过我的独木桥就好(不过我一点多不觉得同时使用它们是一个好主意...)。rnrn rnrn第三个问题,C++中需要GC么?rnrn至此我们可以总结一下。应用GC的好处是可以提供更安全的、更可理解的代码,并且不需要付出太多额外的代价,内存管理也更为简单。其缺点包含,可能会有的分配性能较低,内存占用率更多,停顿依然不可完全避免,还存在一些安全隐患,不是和老C++如此亲密无间。rnrn然后,我们需要在C++中用GC么。这分两个步骤来回答,首先我们需要C++做一些项目,这些项目不适合用其他语言来做;另外,在这些项目中我们可以忍受上述缺点,并很需要上述优点。存在这样的项目么?看一些g9老大的blog和Boehm GC的应用状况吧。rnrn大部分时候,我们把GC的应用局限在了做内存管理上,其实GC的使用方法很多。你可以在项目的某个部分用GC管理内存,你可以用GC作泄漏检测器,甚至你可以用GC作Debugger。这样一来,C++中就更需要GC了。rnrn rnrn第四个问题,GC进C++0x有什么好处?rnrn看了上面的内容,这个问题基本成了废话。我们在C++中用GC怕什么?上述那些缺点吧。GC进C++0x有什么好处?它能解决上述大部分缺点(效率、安全、兼容性),因为这些缺点本不属于GC,只属于GC in C++。rnrn rnrn第五个问题,我们需要怎样的GC进C++0x?rnrn大致看了一遍GC的Proposes,看的出来,老大们为了GC进C++0x花了很多力气,有兴趣的自己可以查看一下。个人感觉GC进C++0x可以从三个方面来考量。一个是库,一个是编译器,一个是语法支持。rnrn我觉得GC库是最基本的,Boehm GC算是一个标准,基于复制的库也可以考察。但如果没有任何编译器层面的调整的话,所有的GC库都还会存在上面那些问题。在编译期层面上的支持,最可能的就像云风前辈设想的那样, 提供一个编译开关,当GC开启的时候,将对象变为运行时可识别类型的,这将会完成保证GC(指纯GC)的安全性,并大大提高效率(手动设置原子类也可以, 但这毕竟增加了编写的负担)。如果不存在和老代码兼容,且只想搭建一个纯GC的C++程序(或库)的话,这是非常可行的(当然,会付出更多内存的代价)。rnrn但最不理想的情况就是存在于人肉C++交互的情况,老大们想出了一堆关键字和使用方法其实都只针对这种情况(如果不存在这种情况,几乎不用提供新的 关键字,且只需要扩展new和finalization相关的函数就好),当然这会在使用上带来更为复杂的情况。但是,只要你不愿意,你可以不用GC,因 为一切都是可选的。rnrn所以,我觉得目前GC进C++0x的方式还是很好的。大部分情况满足需求,如果有少量与老家伙们交互的情况已经可以应付了,再如果有更复杂的情况出现,不使用GC,这个世界就还是很原来一样了。rnrnrnPS:Sutter老大说GC在C++0x的基本状况是:rnrnrnGarbage collection: For C++0x, were not going to add explicit support for garbage collection, and only intend to find ways to remove blocking issues like pointer hiding that make it difficult to add garbage collection in a C++ implementation. In particular, the scope of this feature is expected to be constrained as follows:rnrnC++0x will include making some uses of disguised pointers #ff0000, and providing a small set of functions to exempt specific objects from this restriction and to designate pointer-free regions of memory (where these functions would have trivial implementations in a non-collected conforming implementation).rnC++0x will not include explicit syntax or functions for garbage collection or related features such as finalization. These could well be considered again after C++0x ships.rnrn你觉得呢?rnrn rnrn文献列表:rnrn rnrn[Boehm, 1992] A proposal for garbage collector safe C Compilation.rnrn[a] 解释了为什么在C编译器开启优化时,保守垃圾收集为什么是不安全的。这种不安全主要来自于对指针的判定,编译器有时会采取一些极端手段来处理指针,以达到 最优效率,导致指针的特征不明显。文中还提出了避免了这种不安全需要注意的内容。在实际实现的时候用到了Blacklist的技术。rnrn[Boehm, 2002] Bounding space usage of conservative garbage collectors.rnrn[a] 为了避免判定指针失误,保守垃圾收集器需要用很大的空间来判定指针,为了将此利用率限定在一定范围内,本文提出了弱健壮性的概念,即对指针的使用进行一定的限定从而可将利用率限定在一定范围内,作者做出了数学证明。rnrn[Boehm, 2000] Fast Multiprocessor Memory Allocation and Garbage Collection.rnrn[a] 对Boehm GC在多线程多处理器上的回收实现以及表现进行了详尽的分析和比较。rnrn[Boehm, 1988] Garbage collection in an uncooperative environment.rnrn[a] 对Boehm GC的基本算法,概念做了详尽的介绍。rnrn[Boehm, 1993] Space Efficient Conservative Garbage Collection.rnrn[a] 对如何进行高效的指针扫描和判定进行了分析,讨论了可能出现的指针判定错误,已经采取的策略。rnrn[Boehm, 1996] Simple garbage collector safety.rnrn[a] 讨论了在编译器层面上导致的垃圾回收不安全问题。rnrn[Boehm, 2000] Reducing garbage collector cache misses.rnrn[a] 介绍Boehm GC中提高Cache命中率所采用的方法。rnrn[Henderson, 2002] Accurate garbage collection in an uncooperative environment.rnrn[a] 在Boehm的GC为代表的保守GC中,需要遍历栈和寄存器来判定根指针。而这种判定没有任何的类型保证,存在判定失误导致内存溢出的危险。为了避免这种 危险,本文从另一个角度出发,在编译器生成C代码的阶段,为C代码添加GC相关的信息,使得栈中的指针可以更精确的被辨识。rnrn[Ellis, 1993] Safe, efficient garbage collection for C++.rnrn[a] 介绍了一种GC in C++的方法,并概述了一下之前的相关工作,比较详尽。rnrn[Wilson, 1992] Uniprocessor Garbage Collection Techniques.rnrn[a] 一篇Survey,介绍了几种基本的垃圾回收算法,和渐进、代龄技术。rnrn[Hertz, 2005] Garbage Collection Without Pagingrnrn[a] 提出了减少分页的垃圾回收算法。rnrn[Berger, 2000] Hoard: A Scalable Memory Allocator for Multithreaded Applications.rnrn[a] 介绍一种多处理器多线程的内存分配器。rnrn[Hertz, 2005] Quantifying the performance of garbage collection vs. explicit memory management.rnrn[a] 垃圾收集与人肉回收的性能比较。论坛

  GC的三种基本方式1.标记清除从根开始扫描,标记存活对象,清除不使用对象。缺点:当分配大量对象时,消耗时间大大超过必要值。2.复制收集从根开始扫描,把使用对象复制到新空间,不使用的对象清除。缺点:复制...博文来自:gtfaww的博客

  在java中如果一个对象不被引用,那么这个对象会被回收rnrn那如果一个对象不被引用,但其内部成员对象还在被引用,那这时的回收机制是什么?我网上找了很久,没有相关资料论坛

  比如说流操作结束后, 为什么一定要close掉.rnjava有垃圾回收器, 这样做不就是多此一举吗.?论坛

  “知识块多线程算法冒泡排序快速排序二分查找常见问题Java支持的数据类型有哪些?什么是自动拆装箱?问题JDK源码设计模式单例模式策略模式工厂模式AOP与IOC的概念(即spring的核心)多线程操作系...博文来自:Java大土豆的博客

  JVM结构图类加载器把字节码文件(.class)文件加载JVM虚拟机中的过程以上是Java虚拟机的结构,和编译加载流程。JVM内存管理Java栈区:作用:它存放的是Java方法执行时的所有的数据组成:...博文来自:weixin_39079048的博客

  对于java面试时常见的问题的总结,内容有《《1:servlet生命周期?2:get和post区别?3:mybatis中连接数据库的方法?。。。。。》》等等一系列的问题。包括问题的答案。

  一. Java基础部分 7 1、一个.java源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何...

  Java面试知识总结 ,java基础知识,java的常见集合,高并发编程(JUC包),JVM的内存管理,java8 的知识点,网络协议相关知识,数据库相关,MVC框架相关知识,大数据相关知识,Linux的常用命令。

  java面试常用,需要的可以下载看看,里面都是java面试常见的基础知识,其实java也就那点事。。。

  一、集合类1.arraylist:采用了数组的结构,查询快,增删慢(需要维护下标),线.linkedlist:采用了链表的结构,增删快,查询慢3.vector:数组结构,线.has...博文来自:hightrees的博客

  @作者博客到目前为止,我已经面试了6家左右说句实在的,都不怎么样,虽然拿到一个office,但是不是很喜欢,我也不清楚是为啥,所以,来总一下问题昨天,上午一家是杭州华卓科技有限公司,进公司的第一感觉,...博文来自:Chcvn

  1、同步异步区别同步:发送一个请求,等待返回,然后再发送下一个请求。异步:发送一个请求,不等待返回,随时可以再发送下一个请求。并发:同时发送多个请求同步可以避免出现死锁,一般共享某一资源的时候用,如果...博文来自:yangshaojun1992的博客

  1.Java数据结构有哪些?Java工具包提供了强大的数据结构,在Java中的数据结构主要包括以下几种接口和类:枚举(Enumeration)位集合(BitSet)向量(Vector)栈(Stack)...博文来自:的博客

  1、static变量与实体变量的区别?static是静态变量,static可以通过类名直接访问内存方面的不同:static在定义的时候jvm就会分配空间,而实体变量只有在创建对象的时候才会去分配空间2...博文来自:weixin_30407099的博客

  1、面向对象 (1)什么是面向对象? (2)面向对象的特性?2、集合 (1)hashMap的底层实现? (2)hashTable与hashMapde区别?3、多线)多线)ja...博文来自:明月的博客

  java面试总结2今天又去了一家公司面试,别的不说单说技术,个人觉得早已超出了实习水平的问答了,难道这是和公司的规模有关系吗?但是同时这也让我意识到了自己还有需要要学习的和基础部分的不足。虽然问题问的...博文来自:melody_sy博客

  1、Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?答:sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定...博文来自:hht927的专栏

  1.Spring的核心是控制反转(IoC)和面向切面(AOP)控制反转:IOC和DI是Spring的两个核心概念,虽然两个说的是同一回事,但是他们却不完全相同。IOC(InversionofContr...博文来自:Draven__的博客

  亮点1、公司系统架构2、业务架构说明3、个人其它技术对方公司了解 1、规划阶段行业选定公司背景 2、执行阶段跳槽准备用户包括四个,具体应对策略如下:技术经理:技术架构师:谈技术架构,谈业务架构。cto...博文来自:microsoft_love的专栏

  1.Collection和Collections的区别。Collection是集合类的上级接口,继承与他的接口主要有Set和List.Collections是针对集合类的一个帮助类,他提供一系列静态方...博文来自:的博客

  1.什么是Java的反射?有什么作用?所谓反射,就是根据一个已经实例化了的对象来还原类的完整信息。作用如下:1)在运行时判断任意一个对象所属的类。2)在运行时构造任意一个类的对象。3)在运行时判断任意...博文来自:的博客

  今天面试完一个Java实习生岗位,趁着余热将知识点记下来。以下知识并非原创,皆是网上找的答案:一.String类String不是基本数据类型,底层代码中String被final字段修饰,是不可被继承的...博文来自:Edson121的博客

  Java面试总结分类总结博客快速导航Java面试之基础篇Java面试之集合篇Java面试之多线程篇Java面试之JVM篇Java面试之数据结构篇Java面试之算法篇Java面试之框架篇Java面试之数...博文来自:的博客

  Java面试总结(第一篇)Java面试总结(第二篇)博文来自:濃墨淡写的博客

  Gozs_cs_dn:感谢分享, 亲测有效!!! 而且还发现配置 host 映射后, 连接时长提升了将近`20倍`

  :赞,其他的文章都是说防火墙的问题,但是一般搭建集群时都关了防火墙的,看了你的文章才找到我的错,真的很感谢

http://chinoamobi.com/xianghoukedaxing/450.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有