- 博客(70)
- 资源 (16)
- 收藏
- 关注
原创 java在处理大数据的时候一些小技巧
众所周知,java在处理数据量比较大的时候,加载到内存必然会导致内存溢出,而在一些数据处理中我们不得不去处理海量数据,在做数据处理中,我们常见的手段是分解,压缩,并行,临时文件等方法;例如,我们要将数据库(不论是什么数据库)的数据导出到一个文件,一般是Excel或文本格式的CSV;对于Excel来讲,对于POI和JXL的接口,你很多时候没有办法去控制内存什么时候向磁盘写入,很恶心,而且
2012-07-06 13:33:28
21079
13
原创 java之架构基础-动态代理&cglib
本文核心主要参数动态代理和cglib;在以前的文章中,有提及到动态代理,它要解决的就是,当我们的某些代码前面或后面都需要一些处理的时候,如写日志、事务控制、做agent、自动化代码跟踪等,此时会给你带来无限的方便,这是JVM级别的提供的一种代理机制,不过在这种机制下调用方法在JVM7出来前还没有invokeDynamic的时候,调用的效率是很低的,此时方法调用都是通过method的invoke
2012-06-01 17:30:29
6115
原创 java之HeapByteBuffer&DirectByteBuffer以及回收DirectByteBuffer
byte buffer一般在网络交互过程中java使用得比较多,尤其是以NIO的框架中;看名字就知道是以字节码作为缓冲的,先buffer一段,然后flush到终端。而本文要说的一个重点就是HeapByteBuffer与DirectByteBuffer,以及如何合理使用DirectByteBuffer。1、HeapByteBuffer与DirectByteBuffer,在原理上,
2012-05-08 20:12:40
29848
11
原创 java也能写出点点算法-像C++一样去优化核心并发的代码例子1
java其实更多用来写业务代码,代码写得好不好,关键看抽象能力如何,不过如果你要用java写很核心的插件和高并发的片段,那么可能还是需要注意一些写法,那种写法可能会更好,才能使得并发量提高,而且更少的使用CPU和内存;我最近在一段采集系统访问的java代码,通过过滤器切入到应用中,遇到的一些小细节的调整,感觉还有点意思,以下为收集信息中碰到的两个需要判定的地方(对java优化没有任何要求的,本文纯
2012-03-23 17:54:02
4609
原创 java之httpclient点点补充-登录问题
本来有点不太想写这篇文章,原因是写了这个,就感觉WEB应用怎么都可以自己写代码访问内部的资源信息!不过出于技术本身的我还是考虑些点点东西,而且即使我不写,这玩意也有,呵呵,前面一篇文章我提及到双方要约定token来进行认证交互等等,如果你想访问某个网站内部的资源,而且是需要登录的,但是又想通过本地程序直接蹦进去,怎么蹦呢?办法不是没有,其实httpclient就是模拟一个浏览器的功能,
2012-01-19 15:10:04
5302
1
原创 java之httpclient的一些破事
本文偏重使用,简单讲述httpclient,其实在网络编程中,基于java的实现几乎都是包装了socket的通信,然后来模拟各种各样的协议;httpclient其实就是模拟浏览器发起想服务器端的请求,而这种更加类似于JS的请求或页面的POST、GET,不过这种数据的返回一般需要得到有意义的数据,才方便做其他的交互,否则得到一个页面结果,全是标签了,毕竟不是浏览器,所以我们用httpclient更多
2012-01-06 21:29:23
25765
10
原创 如何精确地测量java对象的大小-底层instrument API
关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象的大小是可行的,不过未必是完全准确的,因为过程中包含对象本身的开销,也许你运气好,正好能碰上,差不多,不过这种测试往往显得十分的笨重,因为要写一堆代码才能测试一点点东西,而且只能在本地测试玩玩,要真正测试实际的系统的对象大小这样可就不行了,本文说说java一些比较偏底层的知识
2011-12-13 22:18:49
11008
13
原创 系统架构-性能篇章2(系统拆分2-问题)
在文章《系统架构-性能篇章2(系统拆分1)》有提及到过关于系统在什么情况下会拆分,拆分的目之类的问题,本文会阐述一些关于拆分过程中遇到的各种各样的常见问题进行分析,和上一个文章中提及到的一样,讲解的目录如下:1、负载均衡设备的问题。2、不同系统之间的通信问题。3、数据写入和查找的问题。4、跨数据库事务问题。5、跨数据库序列问题。6、不同应用的本地缓存问题。7、系统之间的
2011-11-15 22:59:00
4292
原创 java小技巧-关于乱码的那些个破事
这篇文章说难不难,说简单不简单,其实更多的在乎与经验,不过就本文来说,我更多的想阐述为什么会产生乱码,什么情况下会产生乱码,然后如何去解决乱码,对于有哪些乱码情况非常多,并不一定是那一种情况导致的,清楚了过程和原理,那么乱码都不在乎是什么大问题: 本文纲要:1、乱码的来源与本质。2、什么时候会产生乱码?3、如何分析乱码和解决乱码?4、我所遇到过的乱码情况。 第一部分
2011-10-30 19:54:30
6129
1
原创 Java基础小技巧回顾--浅析String
其实本文非常简单,不过有很多朋友经常问,网上很多例子也写个大概,很多人也只是知道和大概,就本文而来读起来非常的轻松,不过算是一些小技巧;但是我们的程序中相信用得最多的就是char数组和byte[]数组,而String就是由char[]数组组成的,一般情况下我们就可以认为String用得是最多的对象之一。有关Sring的空间利用率方面,这里不想多说,只能说很低很低,尤其是你定义的Stri
2011-10-10 19:35:06
5907
18
原创 系统架构-性能篇章2(系统拆分1)
系统为什么拆分?系统做大了,并发量无法扛得住,如何做?业务做复杂了,单个应用中不能个性化,如何做?模块和逻辑对各类资源开销非常特殊,如何做?。。。。。。拆分、拆分、再拆分。由 全世界用一个系统表达全世界所有的企业和公司的业务开始,注定系统做大后必然拆分的走
2011-09-30 21:25:16
8426
6
原创 系统架构-性能篇章1(应用系统性能2-OOM&参数配置)
对于JVM的内存写过的文章已经有点多了,而且有点烂了,不过说那么多大多数在解决OOM的情况,于此,本文就只阐述这个内容,携带一些分析和理解和部分扩展内容,也就是JVM宕机中的一些问题,OK,下面说下OOM的常见情况(本文基于jdk 1.6系列版本来编写,其余的版本未必完全适用): 第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出:那什么样的情况就是堆栈溢出呢?当
2011-09-14 21:35:22
8237
原创 系统架构-性能篇章1(应用系统性能1)
在前面的文章中,说了很多JVM和数据库方面的东西,我所描述的内容大多偏重于技术本身,和实际的业务系统结合的比较少,本文开始进入实际的系统设计中应当注意的方方面面(文章偏重于访问量高,但是每次访问量并不是很大的系统),而偏重点在于性能和效率本身,由于这个知识涉及的基础和面很广,所以
2011-08-19 20:09:04
3741
原创 JVM第三篇(简单demo)
本来写完前面两篇JVM,已经不再想写这类似的东西,因为很多知识点很难吃透,即使写出来也很难让人理解,即使理解还不如看官方资料,不过还是鼓起勇气写下这篇文章,本文主要是demo去理解一些JVM的内存知识,版本为hotspot的1.6.24版本,不过本文不讲指令,只是模拟一些东西,类似于出题目,和大家一起来做下;本文几个简单实验不能说明所有问题,仅仅是分享一下理解JVM的内在和一些不可告人的秘密,以及
2011-08-19 16:21:20
5197
3
原创 认识JVM--第二篇-java对象内存模型
前一段写了一篇《认识JVM》,不过在一些方面可以继续阐述的,在这里继续探讨一下,本文重点在于在heap区域内部对象之间的组织关系,以及各种粒度之间的关系,以及JVM常见优化方法,文章目录如下所示:1、回顾--java基础的对象大概有哪些特征2、上一节中提到的Class加载是如何加载的3、一个对象放在内存中的是如何存放的4、调用的指令分析5、对象宽度对其问题及空间浪费6、指令
2011-07-03 23:57:14
7495
8
原创 认识JVM--第一篇-对象分配&回收算法
本来标题党想写成《深入JVM》,不过不太敢写,我想一小篇博客我想还不足以说明JVM,在本文中,会就我所知给大家介绍JVM的很多内部知识,概念会相对较粗,因为太细的内容要写,这里肯定写不出来;本文主要偏重理论,没有什么实践,中间除一些官方资料外,还有部分自身的理解,所以请大家不要完全信任本文内容;另外本文会有一小部分纠正以前一篇文章对于intern()使用方法的错误,本文会在其中说明使用错误的原因,
2011-06-18 16:26:00
8945
16
原创 系统架构-基础篇-(高性能基础建设说明与选型条件)
本文牵扯的面积可能会比较泛,或者说比较大,在这个层面很多人也有自己的见解,所以我这也仅仅是抛砖引玉,结合前面讲述的一些基础技术,从思想中阐述更为深入的架构思想基础,因为最好的架构思想是架构师结合实际情况思考出来最适合的架构,这里仅仅说明下一些常用的原理和思想,主要包含的内容有(内容很泛,所以都是简单阐述入门知识,具体后续深入探讨):1、app切分集群组扩展2、app集群组负载均衡3、Memcached原理4、db cache应用5、db存储类型以及存储cache说明6、存储条带思想7、数据库集群8、数据库分
2011-05-15 05:27:00
6952
2
原创 从JAVA多线程理解到集群分布式和网络设计的浅析
由于最近工作原因,很久没有在CSDN上留下些啥,今天在这些篇文章,是关于java多线程的。对于JAVA多线程的应用非常广泛,现在的系统没有多线程几乎什么也做不了,很多时候我们在何种场合如何应用多线程成为一种首先需要选择的问题,另外关于java多线程的知识也是非常的多,本文中先介绍和说明一些常用的,在后续文章中如果有必要再说明更加复杂的吧,本文主要说明多线程的一下几个内容:1、在应用开发中什么时候选择多线程?2、多线程应该注意些什么?3、状态转换控制,如何解决死锁?4、如何设计一个具有可扩展性的多线程处理器?
2011-04-29 09:51:00
5539
原创 Java网络编程(一)
关于JAVA网络编程的技术非常繁多,如:SOCKET、RMI、EJB、WEBSERVICE、MQ、中间数据等等方法,但是万变都是源于基础中通信原理,有些是轻量级的、有重量级的;有实时调用、有异步调用;这么多的技术可以说什么都可以用,关键在什么场合用什么最适合你,这些技术主要用于多个子系统之间相互通信的方法,如一个大型的软件应用分多个子系统,它们可能由不同的厂商来完成,这些子系统最终需要整合为一个系
2010-08-31 19:51:00
4775
原创 ORACLE--逻辑架构(二)
上一文中对ORACLE逻辑架构的基本体系做了说明,这部分是专门对SEGMENT部分进行说明,因为段才是管理对象的关键点,也是管理对象的基本,本文主要写 1、TABLE SEGMENT2、INDEX SEGMENT3、UNDO SEGMENT4、LOBSEGMENT、LOB PARTITION、LOBINDEX、INDEX PARTITION下
2010-08-11 14:10:00
5817
原创 ORACLE--逻辑架构(一)
上一次在说到数据库体系架构时已经提及数据库逻辑架构,逻辑架构主要包含:tablespace->segment->extent->block->os-block以及datafile,也说明了其中数据文件的部分管理方式,这里接着从这里开始说起比较好:1、系统提供每一个表空间说明2、大文件表空间3、表空间文件主从关系4、EXTENTS与SEGMENTS5、高水位线介绍6、DELETE、TRUNCATE、DROP、SHRINK SPACE区别7、BLOCK存储原理8、FREELIST、PCTFREE、PCTUSED
2010-07-30 02:56:00
6797
原创 ORACLE常用后台进程说明
<br />本文相对较为简单,简单介绍一下ORACLE后台进程(ORACLE的INSTANCE主体是由内存+后台进程组成),其中部分也是备份与恢复的关键点,本文主要说一下ORACLE后台进程的工作原理,首要分类的是将ORACLE后台进程分为:独立模式、共享模式,我们一般采用独立模式,也就是会话的后台进程是独立的,共享模式相对来说有一个分配资源和并行处理的,所以用于MTS系统中,暂时不考虑这方面的问题,简单说下进程吧:<br /> <br />1、ORACLE进程查询介绍<br />2、核心进程PMON说明<
2010-07-23 16:52:00
6184
原创 JAVA核心层--反射--动态代理
本文发表于2010年,时间较早,部分问题解释不是十分准确,所以需要进一步了解,请参看2012年版本:java之架构基础-动态代理&cglib要在JAVA技术上突破普通的层面,并拥有一翻设计理念的高度,除了要有很好的设计思维之外,反射在适当的使用下,将会把框架做得非常清晰,并且代码编写也非常简便。在面向对象的编程中,我们为什么要忌讳去大量使用if else switch语句,因为
2010-07-06 21:49:00
4553
3
原创 ORACLE体系结构-真正的数据库-文件系统
前面文章,对于ORACLE部分前面主要阐述的是INSTANCE实例内部的一些东西,主要从共享池、数据缓冲区两大块去讲解,其实对于细节的说明还有一些知识点,如RMAN中的大池应用或PGA中的后台线程会在后面逐步说明,本文以ORACLE物理结构来讲解点点物理层的东西,其实这也是真正的数据库了,其余的都是实例,为此先明白一个在ORACLE数据库上容易误会的名词:INSTANCE(实例)和DATABASE(数据库),数据库是一组文件结构,而INSTANCE是一段内存结构,包含了对文件结构的操作过程和中间件,保证高效
2010-06-11 14:47:00
4192
原创 析JAVA之垃圾回收机制
本文为2010年编写,所以有很多看法不是很准确,有一定的参考价值,如需要更加深入细节,请参看,2012年编写的关于JVM的文章:认识JVM--第一篇-对象生成&回收算法认识JVM--第二篇-java对象内存模型JVM第三篇(简单demo)系统架构-性能篇章1(应用系统性能2-OOM&参数配置)相继的还会有更多的java深入的知识和机制。对于J
2010-05-22 22:03:00
5056
2
原创 ORACLE--SGA之数据缓冲区(Data Buffer)
暨上通过预编译阐述道共享池最后到SGA,这里进一步说明一下SGA中另一个大块,数据缓冲区,携带提及一点数据文件和表空间,后续专门会说明这块。 首先了解下SGA种大致有那些东西,这些东西随着数据库版本的增加会有所增加,不过大致上应该一致,这也是基本所有的体系结构都会描述的东西: 在认识数据缓冲区前,先记住几个常用的视图:X$BH、GV$BH、V$BH、V$FIXED_TABLE、
2010-05-02 15:50:00
4909
原创 SUN核心解析--常规程序编写--集合类
上次关于JAVA的文章《SUN核心解析--常规程序--基本类》从简单基本类简单说名了JAVA的部分原理以及JAVA的底层对于编写优秀代码的重要性,但是就知识面是较窄的,包括今天说的集合类,也只是皮毛而已,只是从我个人的角度,由一点点实践希望可以在这方面起到一点抛砖引玉的作用,下面进入正题: 首先我从自己的角度来说,对于JAVA的内存管理思想(因为从我的角度来说不知道内存大致怎么样的,学习集
2010-04-17 22:00:00
4701
2
原创 ORACLE--预编译与共享池--SGA基本介绍
我们暂时先不说其他的,我们先做一个简单的实验来证明来看出一些问题,最后通过为什么来说明实验的结论,并介绍原理和常规查看方式,好了,我们先看看下面三段代码分别执行的结果。首先为了测试,我们需要创建一张表:CREATE TABLE PRE_TEST_TABLE( C1 NUMBER, C2 VARCHAR2(100));好了,我们做一个插入操作的对比:代码段1:BEGI
2010-04-08 18:59:00
5911
1
原创 我从学习计算机到现在(2013年初补充版)
毕业快4年了,这个文章该改改了,我从学习计算机开始(2004)到现在应该还不到8年时间,也许对于很多人来说这个时间较短的了,但是这几年以来对于我来说算是对于人生的改变,从一个地方的小农村没见过电脑考入一个“很戳”的师范大学内部新办的一个软件学院,但是对于当时的我来说只要有大学读就不错了,我也没考虑太多,就决定去念了,当时对于电脑的概念是盲目的,没有任何概念,几乎可以说是一无所知,我还记得和同学一起
2010-04-02 10:13:00
7083
67
原创 简单ORACLE分区表、分区索引
前一段听说CSDN.COM里面很多好东西,同事建议看看合适自己也可以写一写,呵呵,今天第一次开通博客,随便写点东西,就以第一印象分区表简单写第一个吧。 ORACLE对于分区表方式其实就是将表分段存储,一般普通表格是一个段存储,而分区表会分成多个段,所以查找数据过程都是先定位根据查询条件定位分区范围,即数据在那个分区或那几个内部,然后在分区内部去查找数据,一个分区一般保证四十多万条数据
2010-03-31 14:03:00
49265
14
lucene 2.0开发包
2011-08-05
velocity开发包vm模板引擎
2011-07-04
htmlparser 2.1
2013-08-27
httpclient开发包
2011-07-04
httpclient开发包
2011-07-04
hibernate 3开发包
2011-07-04
strtus2开发包
2011-07-07
DWR开发包常规客户端服务器端面向对象编程
2010-04-17
httpclient 4.1.3&3.1
2013-03-30
webservice-xfire相关(xfire&wsdl4j;&jaxrpc;&jdom;)
2012-08-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅