Java
ZHOUBANGDING
这个作者很懒,什么都没留下…
展开
-
Java总结篇系列:Java泛型
转自:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html#!comments一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) { List list转载 2016-12-12 11:17:15 · 268 阅读 · 0 评论 -
JVM调优总结(六)-分代垃圾回收详述2
转自:http://pengjiaheng.iteye.com/blog/528034分代垃圾回收流程示意 选择合适的垃圾收集算法串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-转载 2017-02-14 15:02:56 · 293 阅读 · 0 评论 -
JVM调优总结(七)-典型配置举例1
转自:http://pengjiaheng.iteye.com/blog/538582以下配置主要针对分代垃圾回收算法而言。 堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windo转载 2017-02-14 16:12:41 · 267 阅读 · 0 评论 -
JVM调优总结(八)-典型配置举例2
转自:http://pengjiaheng.iteye.com/blog/545015常见配置汇总堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:Survivo转载 2017-02-14 16:17:37 · 291 阅读 · 0 评论 -
JVM调优总结(九)-新一代的垃圾回收算法
转自:http://pengjiaheng.iteye.com/blog/548472垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时转载 2017-02-14 16:47:28 · 258 阅读 · 0 评论 -
JVM调优总结(十一)-反思
转自:http://pengjiaheng.iteye.com/blog/558619垃圾回收的悖论 所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收却成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的响应时间,造成拥塞或堆积。这也是后转载 2017-02-15 10:15:07 · 379 阅读 · 0 评论 -
Java虚拟机学习 - 垃圾收集器
转自:http://blog.csdn.net/java2000_wl/article/details/8030172HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial(串行GC)收集器Serial收集器是一个转载 2017-02-15 10:23:50 · 220 阅读 · 0 评论 -
深入分析Volatile的实现原理
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/ftf-java-volatile引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改转载 2017-02-16 10:17:18 · 774 阅读 · 0 评论 -
理解并发编程的几种"性" -- 可见性,有序性,原子性
转自:http://blog.sina.com.cn/s/blog_4adc4b090102whzx.html这篇的主题本应该放在最初的几篇,讨论的是并发编程最基础的几个核心概念,但是这几个概念又牵扯到很多的实际技术,比如Java内存模型,各种锁的实现,volatile的实现,原子变量等等,每一个都可以展开写很多,尤其是Java内存模型,网上已经能够有很几篇不错的文章,暂时不想转载 2017-02-16 11:08:41 · 674 阅读 · 0 评论 -
哪个对象才是锁?
转载自:http://ifeve.com/who-is-lock/我们都知道当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。这些基础也许大家都知道,但是很多人还是搞不清哪个对象才是锁?如果你能正确回答以下问题,那么才算你彻底搞明白了哪个对象才是锁?静态同步方法问题如下代码是两个静态同步方法Class A{ public static转载 2017-03-05 19:36:44 · 635 阅读 · 0 评论 -
2017最新Java基础面试笔试知识整理--java基础篇
转自:http://blog.csdn.net/chenbaige/article/details/57107337(1)Object有哪些公用方法protected Object clone()private native Object internalClone()public boolean equals(Object o)protected void finalize()转载 2017-03-10 12:30:05 · 567 阅读 · 0 评论 -
2017最新Java基础知识面试笔试整理--jvm基础篇
转自:http://blog.csdn.net/chenbaige/article/details/57115858(1)内存模型以及分区,需要详细到每个区放什么。堆:Java虚拟机管理内存中最大的一块,线程共享区域。所有对象实例和数组都在堆上分配内存空间。栈:线程私有,每个线程都会创建一个虚拟机栈,生命周期与线程相同。每个方法被执行的时候就会创建一个栈帧,用于存储局部变量表,转载 2017-03-10 12:43:23 · 847 阅读 · 0 评论 -
聊聊JVM的年轻代
1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会腾出转载 2017-02-14 14:29:27 · 263 阅读 · 0 评论 -
JVM调优总结(五)-分代垃圾回收详述1
转自:1.http://pengjiaheng.iteye.com/blog/5240242.http://ifeve.com/jvm-yong-generation/为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。其实不分代完全可以,分代的唯一理由就是优化GC性能,提转载 2017-02-14 14:24:42 · 308 阅读 · 0 评论 -
《站在巨著之上谈泛型》-- 第一节:Java语言中泛型的起源
人总是懒惰的,总想着一劳永逸。程序员也不例外,还美其名曰:追求程序的通用性。这种追求是孜孜不倦的,前仆后继的。梳理一下人们所进行的努力吧:第一阶段:在类和方法中,人们只能使用具体的类型:要么是基本类型,要么是自定义的类。这一阶段,程序的通用性很差。第二阶段:在面向对象编程语言中,使用多态机制。例如,可以将方法的参数类型设为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数。这样的方转载 2016-12-12 14:00:38 · 543 阅读 · 0 评论 -
浅析Java泛型的优点
软件代码的可重用性和可靠性是程序开发中需要考虑的关键问题。Java语言的泛型是JDK1.5(JavaDevelopmentKit,Java开发工具包)及以后版本引入的较大的新特性。不仅语言、类型系统和编译器有了较大的变化以支持泛型,而且类库也进行了大翻修,所以许多重要的类。它的主要优点有:一、代码重复性、可读性好首先我们看两个例子:public class StringVaa{转载 2016-12-12 13:20:22 · 971 阅读 · 0 评论 -
《站在巨著之上谈泛型》-- 第二节:泛型的用武之处
人们为什么要发明泛型呢?最引人注目的原因,应该就是为了创造容器类。容器,就是存放要使用对象的地方。数组也是如此,只不过数组非常简单。而容器类更加灵活,具备更多不同的功能。可能这么说,大家不一定都理解了。我再细说一下吧:(1)泛型T的作用就是:你提前定义一个类型,然后让编译器替你转型。让你转型的话,你可能随意转型,会发生错误。而编译器能避免这种错误的发生。而使用Object只能开发者自己转型,有转载 2016-12-12 14:21:27 · 566 阅读 · 0 评论 -
泛型实现排序算法的重用
假定我们有这样一个需求:写一个排序方法,能够对整形数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?/** * GenericComparator.java * * Copyright@2016 Brad. All rights reserved. * * 2016年12月12日 */package Generic;/** * GenericComparato原创 2016-12-12 15:29:06 · 546 阅读 · 0 评论 -
java 中 i=i++ 的解释
记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++和++i,i++表示的是先赋值后加1,++i是先加1后赋值,这样理解了很多年也没出现问题,直到遇到如下代码,我才怀疑我的理解是不是错了:public class Client { public static void main(String[] args) { int count =0; for(in转载 2017-01-06 11:15:00 · 937 阅读 · 0 评论 -
阿里面试回来,想和Java程序员谈一谈
转自:http://www.importnew.com/22056.html#comment-541171引言其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。转载 2017-02-19 20:14:45 · 2199 阅读 · 1 评论 -
面试的角度诠释Java工程师(一)
转自:http://www.importnew.com/23549.html前言:我相信每一个程序员都是为了生活而努力着的。很多人因为兴趣,从此踏上了这条‘烧脑大行动’的金桥;也有很多人因为梦想和执着,奋不顾身融入这个职业;还有很多人因为被现实逼得太无奈,不得不为自己、为家人、为未来谋这么一条坎坷的路。这里,我不去评价什么,再说我也没有资格去评价啊。言归正传,下面我转载 2017-02-19 20:31:21 · 1736 阅读 · 0 评论 -
面试的角度诠释Java工程师(二)
转自:http://www.importnew.com/23557.html续言:相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会说它们是一样的?简单思考一下……程序:程序是由某语言的工程师用一段段代码逻辑连贯出来的,或许当事人是看得懂滴,但是问题是你要让项目经转载 2017-02-19 20:35:33 · 635 阅读 · 0 评论 -
JVM调优总结(一)-- 一些概念
转自:http://pengjiaheng.iteye.com/blog/518623数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,lo转载 2017-02-14 09:25:23 · 236 阅读 · 0 评论 -
JVM调优总结(三)-基本垃圾回收算法
转自:http://pengjiaheng.iteye.com/blog/520228可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除转载 2017-02-14 11:17:40 · 340 阅读 · 0 评论 -
JVM调优总结(四)-垃圾回收面临的问题
如何区分垃圾 上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是真正进转载 2017-02-14 13:18:06 · 284 阅读 · 0 评论 -
Java虚拟机学习 - 类加载机制
转自:http://blog.csdn.net/java2000_wl/article/details/8040633类加载机制 JVM把class文件加载的内存,并对数据进行校验、转换解析和初始化,最终形成JVM可以直接使用的Java类型的过程就是加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的生命周期包括了:加载(Loading)、验转载 2017-03-10 12:52:11 · 456 阅读 · 0 评论