自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

Java线程安全问答(草稿)

什么是线程安全?如果一个类在多线程执行中,在不考虑运行环境的调度干预,也不需要调用代码的协调同步,仍然保证正确地运行,那么这个类就是线程安全的也就是说,多线程环境下,线程安全的类总是有正确的行为。但是这种类在实际情况中是很少的。实际情况下的类一般分为5个类别(Java Concurrency in Practice》的作者Brian Goetz给出):不可变的 这篇文章比较详细的...

2014-09-24 14:42:00 96

JAVA上传图像时图像处理的基本方法

 一,form表单类型<form id="xxForm" action="xx.htm" method="post" enctype ="multipart/form-data" >则请求头含有:formdata-----------------------------14471729621574Content-Disposition: form-data; name...

2014-09-22 17:11:00 156

深入分析 Java I/O 的工作机制

原网页:http://www.ibm.com/developerworks/cn/java/j-lo-javaio/原网页文后有部分不错的文章。 I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分...

2014-09-19 10:22:00 88

Apache POI 创建Excel文件实例

需要达到的效果图如下:上代码: /** * Copyright (c) 2004-2014 All Rights Reserved. */import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.uti...

2014-09-10 17:22:00 108

设计模式是什么

什么是设计模式设计模式有甚多不同的表述:设计模式是一种对问题本质的通用解决方案。从设计或重构的角度来讲:设计模式是对软件中可变性封装的通用的框架(可变性是软件中容易变化的部分)。软件设计的目标是可扩展性,可插入性,灵活性。可扩展性:新的功能可以很容易的加入到系统中去。可插入性:可以很容易的将一个类抽出去,同时将另外一个有同样接口的类加入进来。灵活性:可以允许平稳的...

2014-08-31 15:28:00 69

成为Java GC专家系列(1) ——Java垃圾回收机制

原文地址:http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/翻译原文:http://www.importnew.com/1993.html注:次系列文章是我在ImportNew的基础上进行整理翻译的(主要是格式修改和翻译校对)。 对于Java开发人员来说,了解垃圾回收机制(GC)有哪...

2014-05-13 13:23:00 88

JVM GC调优总结

 一、基本收集算法 1. 复制:将堆内分成两个相同空间,从根(ThreadLocal的对象,静态对象)开始访问每一个关联的活跃对象,将空间A的活跃对象全部复制到空间B,然后一次性回收整个空间A。 因为只访问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去访问死对象,所以遍历空间的成本较小,但需要巨大的复制成本和较多的内存。优点:只访问活跃对象,遍历快缺点:需要内存比较...

2014-05-03 16:44:00 320

JDK5.0垃圾收集优化之--Don't Pause

作者:江南白衣,最新版链接:http://blog.csdn.net/calvinxiu/archive/2007/05/18/1614473.aspx,版权所有,转载请保留原文链接。原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。 Java开发Server最大的障碍,就是JDK1.4版之前的的串行垃圾收集机制会引起长时间的服务暂停,明白原理后,想想那些用JDK1.3写S...

2014-05-03 11:13:00 60

JVM系列四:生产环境参数实例及分析【生产环境实例增加中】

原文可能有更新,点击 java application项目(非web项目)改进前:-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.lo...

2014-05-03 10:52:00 72

JVM系列五:JVM监测&工具[整理中]

本文是转载文 前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法。需要监测的数据:(内存使用情况 谁使用了...

2014-05-03 10:50:00 66

JVM系列三:JVM参数设置、分析

不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配...

2014-05-03 10:47:00 58

JVM系列二:GC策略&内存申请、对象衰老

JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured ...

2014-05-03 10:45:00 64

JVM系列 HotSpot VM GC 的种类

collector种类GC在 HotSpot VM 5.0里有四种:incremental (sometimes called train) low pause collector已被废弃,不在介绍.类别serial collectorparallel collector(throughput collector)concurrent collec...

2014-05-03 10:42:00 69

JVM系列一:JVM内存组成及分配

java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用...

2014-05-03 10:40:00 55

Android开发指南整理

android基本框架,打包流程http://note.youdao.com/share/?id=a098fa7bf48009737a52209c6fc5b7a7&type=note 应用程序组件http://note.youdao.com/share/?id=7e01683fbda9f31824ff63fb008b3540&type=note Activ...

2014-01-02 17:54:00 74

类似Lazy Android的插件,根据layout的xml文件自动生成findViewById代码

自己开发了一个插件链接:http://awjiyvyzrt.l5.yunpan.cn/lk/Q96Iqf76iSfnJ最好自己学习使用androidannotations:http://androidannotations.org/ 直接放到plugins目录下面 ,如果有dropins目录,下面新建plugins目录然后放到下面。 功能图示:1.选择layout文件,前...

2013-11-05 19:27:00 216

轻量级业务逻辑处理框架

编写程序的时候,随着需求和业务的增加,代码的维护会越来越困难,如何做到可扩展,易维护呢?一个比较好的方案就是提高代码的复用率,抽取易变的部分统一维护,以降耦。 代码框架一般可以分为两类,一类是业务逻辑的抽象,主要用于提高业务逻辑代码的复用率,比如不同业务对某个规则的验证。另外一类是处理流程的抽象,主要用于降耦,即对修改关闭,对扩展开放。新增的业务不影响原来的业务。当然,更多的是将两者的合...

2012-12-14 19:39:00 171

Java中ClassLoader笔记

http://note.youdao.com/share/?id=1ff65eabed0a07e5c8189a2a881b97f4&type=notejava中类的载入方式:1.预先载入预先载入基本库,减少IO操作2.依需载入 依需载入所需类,减少内存占用。java(1.6)继承关系中类和接口的载入顺序以上三个类,四个接口的载入顺序:...

2012-11-08 18:34:00 77

java生成exe文件

主要是使用exe4j软件将jar文件生成exe文件1.将工程导出为jar包。2.下载并打开exe4j软件3.需要注意第二步和第五步4.完成页面5,最终结果

2012-10-16 12:57:00 73

spring mvc 处理流程图

2012-09-02 17:11:00 69

原创 重拾UML

UML 统一建模语言提供给产品经理,开发人员的沟通桥梁。UML 经历了四个版本,0.9,1.0,1.1和最新的2.0.UML中包含四种关系:依赖,关联,泛化和实现。关联关系包括关联,组合,聚合。聚合是一种强关联关系,比组合更紧密。区分组合与聚合的一个关键点是,一个事物与另一个事物有一个整体与部分的概念。组合关系中,整体事物没有了,部分事物还可以单独存在。但是在聚合关...

2011-12-23 19:55:20 55

Java内存溢出 及 解决方案

一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen spaceJVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设...

2011-11-25 10:59:00 75

Java栈和栈桢

原文应该也是在JavaEye中的博客,找不到了。在原文基础了做了增删,以方便理解。Java中的栈每当线程调用一个Java方法时,JVM就会在该线程对应的栈中压入一个帧,这个帧自然就成了当前帧。当执行这个方法时,它使用这个帧来存储参数、局部变量、中间运算结果等等。Java栈上的所有数据都是私有的。任何线程都不能访问另一个线程的栈数据。所以我们不用考虑多线程情况下栈数据访问同步...

2011-11-24 14:14:00 175

Java常量池

理解Java常量池JVM运行时数据区的内存模型由五部分组成:【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈对于String s = "haha" ,它的虚拟机指令:0: ldc #16; //String haha 2: astore_1 3: return对于上面虚拟机指令,其各自的指令流程在《深入JAVA虚拟机》这...

2011-11-24 10:26:00 51

Java GC 相关的4种引用

1. Strong ReferenceStrongReference 是 Java 的默认引用实现,它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时Java GC 执行后将会被回收@Test publicvoidstrongReference(){ Objectreferent=newObject(); /** *通过赋值创建St...

2011-11-23 17:01:00 96

Collection 简介

线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable...

2011-11-23 11:25:00 112

解析Java finally

问题分析 首先来问大家一个问题:finally 语句块一定会执行吗? 很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。清单 1.publicclassTest{publicstaticvoidmain(String[]args){System.out...

2011-11-21 16:09:00 79

重构项列表

重构项列表: 下表从Eclipse帮助中提取,列出了各种重构支持的Java资源类型,对应的快捷键。名字可应用的Java元素快捷键Undo在一次重构后可执行Alt + Shift + ZRedo在一次撤销重构后可执行Alt + Shift + Y...

2011-05-26 15:11:00 62

成为高效程序员的搜索技巧

  对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。  如果不借助搜索技术、网络及集体智慧,现代化高效编程是难以想象的。因此,搜索技巧对高效程序员变得愈发重要。  现在,我们不需要了解和记住如何解决众多的编程问题,...

2011-05-20 10:11:00 52

anti-pattern 反面模式

[前言]design pattern是设计模式,通常是前人在软件开发过程中积累出来的解决一些问题的现成套路,按它们来做可获益无穷。anti-pattern也是一些现成的套路,但它们是现成的错误套路,避免它们则亦可获益无穷。本文译者Korner Hill的更多其它翻译和原创文章可在blog上找到http://blog.csdn.net/KornerHill。计算机领域内的很多词汇...

2011-03-31 14:44:00 88

android google map 的简单使用

Google map 是android platform中众多应用程序中的一员。在移动开发中有两种方法使用google map。第一种是使用web版本的map.实际实现是通过发送链接google 地图网站的intent,启动浏览器访问googlemap.没多大用处。注意:使用此方法需在AndroidManifest.xml中加入相应的访问权限<uses-permission an...

2011-01-28 10:56:00 69

Software Design

Software Design principles: such as:1)Abstraction2)Decomposition and Modularization3)Coupling and Cohesion4)Encapsulation5)Sufficiency,completeness and primitiveness(sufficiency and comp...

2010-11-26 10:23:00 65

链接

Scala:http://www.scala-lang.org/node/960API:http://www.scala-lang.org/api/current/index.htmlScalaIDE for Eclipse:http://download.scala-ide.org/http://download.scala-ide.org/nightly-update-...

2010-11-18 17:33:00 38

Scala-面向对象的函数编程

您永远不会忘记您的初恋!对于我来说,她的名字是 Tabinda (Bindi) Khan。那是一段愉快的少年时光,准确地说是在七年级。她很美丽、聪明,而最好的是,她常常因我的笨拙的笑话而乐不可支。在七年级和八年级的时间里,我们经常 “出去走走”(那时我们是这么说的)。但到了九年级,我们分开了,文雅一点的说法是,她厌倦了连续两年听到同样的笨拙的男孩笑话。我永远都不会忘记她(特别是因为我们在高...

2010-11-18 16:35:00 36

Pattern rlx

1设计模式的原则:1)单一职责原则(Single Responsibility Principle):一个类应该仅有一个职责。每个职责代表一个类变化的方向。如果一个类承担了多个职责,那么当需求改变的时候,这个类需要改变的可能性就增大了,这些交互增加了类之间的耦合性。这一个原则也可以理解为,模块中的每个类的设计要有高的内聚性。2)开闭原则(open closed principle):软件...

2010-11-01 17:25:00 83

Linux基础

Linux 笔记系统中的每一个进程用一个称为进程识别号(process identity number,PID)的唯一的整数值来加以识别。在Linux系统中,只有现存的进程一分为二时才能建立新的进程。新进程称为现存进程的子进程,而现存的进程则变为双亲进程。一个单独的双亲进程可以产生许多子进程,而这些子进程又可以产生他们自己的子进程。这表示所有在Linux机器上运行的进程从子进程,双亲进程到...

2010-11-01 16:00:00 46

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除