2015年3月25日

Linux Socket编程(不限Linux)

摘要: “一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的Q... 阅读全文

posted @ 2015-03-25 17:55 为努力骄傲 阅读(148) 评论(0) 推荐(0) 编辑

Java Socket编程

摘要: 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接... 阅读全文

posted @ 2015-03-25 17:52 为努力骄傲 阅读(180) 评论(0) 推荐(0) 编辑

揭开Socket编程的面纱

摘要: 对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission... 阅读全文

posted @ 2015-03-25 17:45 为努力骄傲 阅读(99) 评论(0) 推荐(0) 编辑

Java NIO框架Mina、Netty、Grizzly介绍与对比

摘要: Java NIO框架Mina、Netty、Grizzly介绍与对比原文链接:http://www.24xuexi.com/w/2011-11-14/98277.html原文日期:2011年11月14日MinaMina(Multipurpose Infrastructure for Network A... 阅读全文

posted @ 2015-03-25 17:34 为努力骄傲 阅读(269) 评论(0) 推荐(0) 编辑

Java的内存泄漏

摘要: Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内... 阅读全文

posted @ 2015-03-25 17:29 为努力骄傲 阅读(172) 评论(0) 推荐(0) 编辑

Java NIO原理图文分析及代码实现

摘要: 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现h... 阅读全文

posted @ 2015-03-25 17:23 为努力骄傲 阅读(978) 评论(0) 推荐(1) 编辑

JVM调优总结(十二)-参考资料

摘要: ·Java 理论与实践: 垃圾收集简史·Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning·Improving Java Application Performance and Scalability by Reducing... 阅读全文

posted @ 2015-03-25 17:05 为努力骄傲 阅读(98) 评论(0) 推荐(0) 编辑

JVM调优总结(十一)-反思

摘要: 垃圾回收的悖论 所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK... 阅读全文

posted @ 2015-03-25 16:57 为努力骄傲 阅读(137) 评论(0) 推荐(0) 编辑

JVM调优总结(十)-调优方法

摘要: JVM调优工具Jconsole,jProfile,VisualVMJconsole :jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里JProfiler:商业软件,需要付费。功能强大。详细说明参考这里VisualVM:JDK自带,功能强大,与... 阅读全文

posted @ 2015-03-25 16:40 为努力骄傲 阅读(231) 评论(0) 推荐(0) 编辑

浅谈java内存泄漏

摘要: 最近有朋友遇到个问题,tomcat在运行几天后就会报outofmemory,然后就死了,我就稍微总结了下内存泄漏的一些原因,纯属个人理解,欢迎大侠们劈砖:一.字符串问题这个也是一个常见的问题,我们相加两个字符串时有几种方法,如new String("test");、"A"+"B",或用StringB... 阅读全文

posted @ 2015-03-25 16:24 为努力骄傲 阅读(160) 评论(0) 推荐(0) 编辑

Garbage First介绍

摘要: 本文摘自《构建高性能的大型分布式Java应用》一书,Garbage First简称G1,它的目标是要做到尽量减少GC所导致的应用暂停的时间,让应用达到准实时的效果,同时保持JVM堆空间的利用率,将作为CMS的替代者在JDK 7中闪亮登场,其最大的特色在于允许指定在某个时间段内GC所导致的应用暂停的时... 阅读全文

posted @ 2015-03-25 16:11 为努力骄傲 阅读(291) 评论(0) 推荐(0) 编辑

JVM调优总结(九)-新一代的垃圾回收算法

摘要: 垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在... 阅读全文

posted @ 2015-03-25 16:09 为努力骄傲 阅读(154) 评论(0) 推荐(0) 编辑

JVM调优总结(八)-典型配置举例2

摘要: 常见配置汇总堆设置-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n:年轻代中Eden区与两个Su... 阅读全文

posted @ 2015-03-25 15:41 为努力骄傲 阅读(165) 评论(0) 推荐(0) 编辑

JVM调优总结(七)-典型配置举例1

摘要: 以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Serve... 阅读全文

posted @ 2015-03-25 15:27 为努力骄傲 阅读(206) 评论(0) 推荐(0) 编辑

JVM调优总结(六)-分代垃圾回收详述2

摘要: 分代垃圾回收流程示意选择合适的垃圾收集算法串行收集器用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。并... 阅读全文

posted @ 2015-03-25 15:17 为努力骄傲 阅读(130) 评论(0) 推荐(0) 编辑

JVM调优总结(五)-分代垃圾回收详述1

摘要: 为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对... 阅读全文

posted @ 2015-03-25 14:59 为努力骄傲 阅读(131) 评论(0) 推荐(0) 编辑

JVM调优总结(四)-垃圾回收面临的问题

摘要: 如何区分垃圾 上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,... 阅读全文

posted @ 2015-03-25 14:40 为努力骄傲 阅读(133) 评论(0) 推荐(0) 编辑

JVM调优总结(三)-基本垃圾回收算法

摘要: 可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Swee... 阅读全文

posted @ 2015-03-25 14:31 为努力骄傲 阅读(199) 评论(0) 推荐(0) 编辑

JVM调优总结(二)-一些概念

摘要: Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:Object ob = new Object(); 这样在程序中完... 阅读全文

posted @ 2015-03-25 14:23 为努力骄傲 阅读(145) 评论(0) 推荐(0) 编辑

JVM调优总结(一)-- 一些概念

摘要: 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,c... 阅读全文

posted @ 2015-03-25 14:13 为努力骄傲 阅读(171) 评论(0) 推荐(0) 编辑

导航