JAVA综合
文章平均质量分 51
googitest
这个作者很懒,什么都没留下…
展开
-
excel大数据量处理小结(excel07)
前端时间因为项目中excel(2007)上传下载的所要支持的数据量剧增,所以研究学习了下大数据量excel的处理方式,并应用到product上去,这里简单recap下.主要有三点。一 excel2003跟excel2007的区别。 03的excel是基于biff8格式的(项目目前不要求支持,所以这里不探讨),而到07,微软已经将其转换为基于开放式的 XML实现了,所以07的大数据量...原创 2012-05-17 21:46:12 · 404 阅读 · 0 评论 -
Java多线程发展简史(转)
转载自:http://www.raychase.net/698这是篇关于并发的文章,其实一看到标题我就知道是篇不错的文章,因为知道一个技术点的发展历史,将来的规划,在整个技术蓝图中占的是什么位置,这会对我们更全面的了解这个技术点有很大的帮助。是凡这类的文章,我看过的基本上都是不错的,因为是从一个更高的角度的看待一项技术了,ok,开始吧。 这篇文章,大部分内容,是周五我做的一个关于如何进行J...原创 2012-10-08 13:49:00 · 77 阅读 · 0 评论 -
分支预测(Branch Prediction)
在写代码的时候,有时会遇到在循环遍历一个数组时,如果代码块里有做if判断的操作时,我们有个优化的经验,就是先将数组先排序,然后再进行遍历比较操作时,效率会有比较大的提升。 一个简单的测试: import java.util.ArrayList; import java.util.Collections; import java.util.List; import...原创 2012-12-24 15:36:08 · 769 阅读 · 0 评论 -
货币组合问题的实现
问题:有1元,5元,10元,50元,100元的五种货币,任给定一个数额,求所有可能的组合数. 思路:是用排列组合中思想做出的一个计算所有排列数量的算法思想是,数额321,以100元单位为例,总组合数量是下面两种情况之和:1.组合里包含100元,即至少有100元1张,那么321-100=221元由这5种组合的数量2.组合里不包含100原,那就是321由前四种组合的数量 java实现:...原创 2012-12-17 16:37:58 · 245 阅读 · 0 评论 -
笔记-再读深入浅出设计模式
代码复用à经验复用 如果每次新的需求一来,都会使某方面的代码发生变化,那么你就可以确定,这部分的代码需要被抽出来,和其他稳定的代码有所区分. 我们全都使用别人设计好的库和框架,我们谈论库与框架,利用它们的API编译成我们的程序,享受运用别人的代码所带来的优点.看看Java API及它所带来的功能:网络,GUI,IO等.库与框架长久以来,一直扮演着软件开发过程的重要角色,我们从中挑选所要的组...原创 2012-12-14 15:23:52 · 141 阅读 · 0 评论 -
Guava学习2
PART3. Concurrency 加了个ListenableFuture接口: [code] ListenableFuture extends Future{ void addListener(Runnable paramRunnable, Executor paramExecutor); } [/code] 代码实例: [code] L...原创 2013-05-21 16:10:03 · 142 阅读 · 0 评论 -
CLH锁学习
CLH锁即Craig, Landin, and Hagersten (CLH) locks,CLH锁是一个自旋锁,能确保无饥饿性,提供先来先服务的公平性。 何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度...原创 2012-11-28 13:46:46 · 170 阅读 · 0 评论 -
Guava学习1
Guava项目涵括了好几个Google开发的JAVA项目所依赖的核心库,像: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等. 项目开发需要,所以学习一下。 PART1. Basic Utilities ...原创 2013-05-14 15:07:45 · 100 阅读 · 0 评论 -
Spring MVC学习
DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:1、文件上传解析,如果请求类型是multipart将通过MultipartResolver 进行文件上传解析;2、通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor 拦截器);3、通过 Ha...原创 2013-05-10 14:08:19 · 83 阅读 · 0 评论 -
读《分布式java应用:基础与实践》
最近将林昊大牛的《分布式java应用:基础与实践》好好读了遍,总体感觉还是很有收获,就像大牛在书一开始说的,经过几年的实践,一套相应的技术蓝图浮现出来,也就是书里的相应的一系列关于分布式java的技术结构。我是很赞同这种说法的,因为平时我们大多时候研究或学习实践应用的很多技术框架相对独立,我之前我花比较多的时间有学习JVM相应的知识,并发和nio的jdk实现及相应的一些框架(mina等...原创 2012-08-14 16:59:55 · 167 阅读 · 0 评论 -
java语言的线程安全级别
java中一个类可能支持的线程安全性级别: 1.非可变的 这个类的实例是不会改变的,即所谓的immutable class,不需要额外的同步操作,如String,BigDecimal,BigDecimal,原始类型的封装类等。 2.线程安全的 这个类不是immutable class,但是所有的方法都包含足够的同步手段,所以这些实例可以被并发使用,无需外部同步。 3.有条件的线程安全 ...原创 2012-10-26 14:02:12 · 136 阅读 · 0 评论 -
Java 并发和NIO的学习计划
基础还是很重要的,并且必须要扎实,同时还要适当延伸出一定的宽度,这段时间相对不那么忙了,抓紧时间把JUC和NIO补补了,大致定的学习线路: IO方面: JAVA IO -> NIO(异步,非阻塞) -> Mina, Netty(并发NIO的框架) 并发方法: JAVA内存模型 -> synchronized, wait, notify -> 不变类, v...原创 2012-07-05 14:27:46 · 71 阅读 · 0 评论 -
同步与异步 阻塞与非阻塞型I/O(转)
同步阻塞IO 在这个模型中,应用程序(application)为了执行这个read操作,会调用相应的一个system call,将系统控制权交给kernel,然后就进行等待(这其实就是被阻塞了)。kernel开始执行这个system call,执行完毕后会向应用程序返回响应,应用程序得到响应后,就不再阻塞,并进行后面的工作。 同步阻塞IO 例如,“在调用 read 系统调用时,应...原创 2012-07-04 10:57:47 · 76 阅读 · 0 评论 -
Java 线程/内存模型的缺陷和增强(转)
Java在语言层次上实现了对线程的支持。它提供了Thread/Runnable/ThreadGroup等一系列封装的类和接口,让程序员可以高效的开发Java多线程应用。为了实现同步,Java提供了synchronize关键字以及object的wait()/notify()机制,可是在简单易用的背后,应藏着更为复杂的玄机,很多问题就是由此而起。 一、Java内存模型 在了解Java的...原创 2012-06-01 22:08:42 · 97 阅读 · 0 评论 -
读《你的灯亮着吗》
这几天翻读了下《你的灯亮着吗》,这本书主要是启发如何解决问题的,用书中的话就是教会你一种分析问题的全新思路,让你轻轻松松解决问题的。书读起来的确很轻松,也随之思考了自己平时解决问题的方式,确实还是不够成熟,书里的一些观点还是入木三分的分析了人在思考解决问题的一些盲点。这里摘录一些里面重点的语录便于以后回顾: 动手去解决问题之前,好好想想问题的来源 站在各个角度来看待面临的问题,以能...原创 2012-05-25 20:33:20 · 88 阅读 · 0 评论 -
JUC AQS
一个基于AQS的Synchronizer所执行的基本操作,是一些不同形式的获取(acquire)和释放(release).获取操作是状态依赖的操作,总能够阻塞。借助锁和信号量,“获取”的含义变得相当直观--获取锁或者许可--并且调用者可能不得不去等待,直到Synchronizer处于可发生的状态。CountDownLatch的请求意味着“等待,直到闭锁到达它的终止...原创 2013-01-24 09:07:47 · 119 阅读 · 0 评论