- 博客(36)
- 收藏
- 关注
Java线程安全问答(草稿)
什么是线程安全? 如果一个类在多线程执行中,在不考虑运行环境的调度干预,也不需要调用代码的协调同步,仍然保证正确地运行,那么这个类就是线程安全的也就是说,多线程环境下,线程安全的类总是有正确的行为。但是这种类在实际情况中是很少的。实际情况下的类一般分为5个类别(Java Concurrency in Practice》的作者Brian Goetz给出): 不可变的 这篇文章比较详细的...
2014-09-24 14:42:00
150
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
211
深入分析 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
133
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
215
设计模式是什么
什么是设计模式 设计模式有甚多不同的表述: 设计模式是一种对问题本质的通用解决方案。 从设计或重构的角度来讲: 设计模式是对软件中可变性封装的通用的框架(可变性是软件中容易变化的部分)。 软件设计的目标是可扩展性,可插入性,灵活性。 可扩展性:新的功能可以很容易的加入到系统中去。 可插入性:可以很容易的将一个类抽出去,同时将另外一个有同样接口的类加入进来。 灵活性:可以允许平稳的...
2014-08-31 15:28:00
109
成为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
125
JVM GC调优总结
一、基本收集算法 1. 复制:将堆内分成两个相同空间,从根(ThreadLocal的对象,静态对象)开始访问每一个关联的活跃对象,将空间A的活跃对象全部复制到空间B,然后一次性回收整个空间A。 因为只访问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去访问死对象,所以遍历空间的成本较小,但需要巨大的复制成本和较多的内存。 优点:只访问活跃对象,遍历快 缺点:需要内存比较...
2014-05-03 16:44:00
378
JDK5.0垃圾收集优化之--Don't Pause
作者:江南白衣,最新版链接:http://blog.youkuaiyun.com/calvinxiu/archive/2007/05/18/1614473.aspx,版权所有,转载请保留原文链接。 原本想把题目更简单的定为--《不要停》的,但还是自己YY一下就算了。 Java开发Server最大的障碍,就是JDK1.4版之前的的串行垃圾收集机制会引起长时间的服务暂停,明白原理后,想想那些用JDK1.3写S...
2014-05-03 11:13:00
101
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
101
JVM系列五:JVM监测&工具[整理中]
本文是转载文 前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法。 需要监测的数据:(内存使用情况 谁使用了...
2014-05-03 10:50:00
101
JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配...
2014-05-03 10:47:00
95
JVM系列二:GC策略&内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured ...
2014-05-03 10:45:00
94
JVM系列 HotSpot VM GC 的种类
collector种类 GC在 HotSpot VM 5.0里有四种: incremental (sometimes called train) low pause collector已被废弃,不在介绍. 类别 serial collector parallel collector(throughput collector) concurrent collec...
2014-05-03 10:42:00
107
JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用...
2014-05-03 10:40:00
87
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
111
类似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
284
轻量级业务逻辑处理框架
编写程序的时候,随着需求和业务的增加,代码的维护会越来越困难,如何做到可扩展,易维护呢?一个比较好的方案就是提高代码的复用率,抽取易变的部分统一维护,以降耦。 代码框架一般可以分为两类,一类是业务逻辑的抽象,主要用于提高业务逻辑代码的复用率,比如不同业务对某个规则的验证。另外一类是处理流程的抽象,主要用于降耦,即对修改关闭,对扩展开放。新增的业务不影响原来的业务。当然,更多的是将两者的合...
2012-12-14 19:39:00
254
Java中ClassLoader笔记
http://note.youdao.com/share/?id=1ff65eabed0a07e5c8189a2a881b97f4&type=note java中类的载入方式: 1.预先载入 预先载入基本库,减少IO操作 2.依需载入 依需载入所需类,减少内存占用。 java(1.6)继承关系中类和接口的载入顺序 以上三个类,四个接口的载入顺序: ...
2012-11-08 18:34:00
116
java生成exe文件
主要是使用exe4j软件将jar文件生成exe文件 1.将工程导出为jar包。 2.下载并打开exe4j软件 3.需要注意第二步和第五步 4.完成页面 5,最终结果
2012-10-16 12:57:00
97
原创 重拾UML
UML 统一建模语言 提供给产品经理,开发人员的沟通桥梁。 UML 经历了四个版本,0.9,1.0,1.1和最新的2.0. UML中包含四种关系:依赖,关联,泛化和实现。 关联关系包括关联,组合,聚合。 聚合是一种强关联关系,比组合更紧密。 区分组合与聚合的一个关键点是,一个事物与另一个事物有一个整体与部分的概念。 组合关系中,整体事物没有了,部分事物还可以单独存在。但是在聚合关...
2011-12-23 19:55:20
91
Java内存溢出 及 解决方案
一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设...
2011-11-25 10:59:00
99
Java栈和栈桢
原文应该也是在JavaEye中的博客,找不到了。 在原文基础了做了增删,以方便理解。 Java中的栈 每当线程调用一个Java方法时,JVM就会在该线程对应的栈中压入一个帧,这个帧自然就成了当前帧。当执行这个方法时,它使用这个帧来存储参数、局部变量、中间运算结果等等。 Java栈上的所有数据都是私有的。任何线程都不能访问另一个线程的栈数据。所以我们不用考虑多线程情况下栈数据访问同步...
2011-11-24 14:14:00
312
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
71
Java GC 相关的4种引用
1. Strong Reference StrongReference 是 Java 的默认引用实现,它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时Java GC 执行后将会被回收 @Test publicvoidstrongReference(){ Objectreferent=newObject(); /** *通过赋值创建St...
2011-11-23 17:01:00
140
Collection 简介
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable...
2011-11-23 11:25:00
172
解析Java finally
问题分析 首先来问大家一个问题:finally 语句块一定会执行吗? 很多人都认为 finally 语句块是肯定要执行的,其中也包括一些很有经验的 Java 程序员。可惜并不像大多人所认为的那样,对于这个问题,答案当然是否定的,我们先来看下面这个例子。清单 1. publicclassTest{ publicstaticvoidmain(String[]args){ System.out...
2011-11-21 16:09:00
118
重构项列表
重构项列表: 下表从Eclipse帮助中提取,列出了各种重构支持的Java资源类型,对应的快捷键。 名字 可应用的Java元素 快捷键 Undo 在一次重构后可执行 Alt + Shift + Z Redo 在一次撤销重构后可执行 Alt + Shift + Y ...
2011-05-26 15:11:00
86
成为高效程序员的搜索技巧
对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。 如果不借助搜索技术、网络及集体智慧,现代化高效编程是难以想象的。因此,搜索技巧对高效程序员变得愈发重要。 现在,我们不需要了解和记住如何解决众多的编程问题,...
2011-05-20 10:11:00
81
anti-pattern 反面模式
[前言] design pattern是设计模式,通常是前人在软件开发过程中积累出来的解决一些问题 的现成套路,按它们来做可获益无穷。anti-pattern也是一些现成的套路,但它们是现成的 错误套路,避免它们则亦可获益无穷。本文译者Korner Hill的更多其它翻译和原创文章可 在blog上找到http://blog.youkuaiyun.com/KornerHill。 计算机领域内的很多词汇...
2011-03-31 14:44:00
137
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
106
Software Design
Software Design principles: such as: 1)Abstraction 2)Decomposition and Modularization 3)Coupling and Cohesion 4)Encapsulation 5)Sufficiency,completeness and primitiveness (sufficiency and comp...
2010-11-26 10:23:00
89
链接
Scala: http://www.scala-lang.org/node/960 API: http://www.scala-lang.org/api/current/index.html ScalaIDE for Eclipse: http://download.scala-ide.org/ http://download.scala-ide.org/nightly-update-...
2010-11-18 17:33:00
65
Scala-面向对象的函数编程
您永远不会忘记您的初恋! 对于我来说,她的名字是 Tabinda (Bindi) Khan。那是一段愉快的少年时光,准确地说是在七年级。她很美丽、聪明,而最好的是,她常常因我的笨拙的笑话而乐不可支。在七年级和八年级的时间里,我们经常 “出去走走”(那时我们是这么说的)。但到了九年级,我们分开了,文雅一点的说法是,她厌倦了连续两年听到同样的笨拙的男孩笑话。我永远都不会忘记她(特别是因为我们在高...
2010-11-18 16:35:00
61
Pattern rlx
1设计模式的原则: 1)单一职责原则(Single Responsibility Principle):一个类应该仅有一个职责。每个职责代表一个类变化的方向。如果一个类承担了多个职责,那么当需求改变的时候,这个类需要改变的可能性就增大了,这些交互增加了类之间的耦合性。这一个原则也可以理解为,模块中的每个类的设计要有高的内聚性。 2)开闭原则(open closed principle):软件...
2010-11-01 17:25:00
127
Linux基础
Linux 笔记 系统中的每一个进程用一个称为进程识别号(process identity number,PID)的唯一的整数值来加以识别。 在Linux系统中,只有现存的进程一分为二时才能建立新的进程。新进程称为现存进程的子进程,而现存的进程则变为双亲进程。一个单独的双亲进程可以产生许多子进程,而这些子进程又可以产生他们自己的子进程。这表示所有在Linux机器上运行的进程从子进程,双亲进程到...
2010-11-01 16:00:00
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人