`
greemranqq
  • 浏览: 978916 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论
文章列表
一、序言        JMS 相关的东西已经出来了很久,本想使用阿里的rocketMQ 发现很多没遵循JMS 规范,暂时就用用activeMq,做一些常用的系统解耦 协同工作,这里还是和spring 进行集成,spring 和JMS 配合还是挺好的。   二、场景        A系统产生了一笔订单,那么我们其他B C 系统会拿到订单的基本信息,然后进行金额的计算 以及 用户资料的分析 等等操作,以前的方法是 写个定时任务 扫描最新订单,但是实时性 就没那么高了,而且随着需求得越来越多,导致新进来一笔订单,就会有N个任务进行扫描 分析,扩展很死板,维护也麻烦。     三、实 ...
          今天有个需求,要求用户登录的时候展示一些信息,但是这些信息跨系统反复调用,比较慢,因此做数据缓存。有些系统不大,就ehcache 就可以了。但是因为有个子系统发布比较平凡,不希望重启之后缓存数据丢失,因此做持久化处理。框架是jfinal+spring+ehcache ,东西没啥区别。          下面是遇到的几个问题:          1.同一个类里面,A方法  上面加上注解 缓存,然后B方法 去调用,缓存无效..             解决:隔离开,A B方法放两个不同的类里面。             2.持久化的数据无法恢复。           ...
这篇文章,可以对才入换联网,还没形成整体概念的人,提供一些基础入门,特别从请求开始到结束部分,了解了解 还是不错的。 原文地址:http://www.csdn.net/article/2014-09-30/2821940   什么是性能 有人说性能就是访问速度快慢,这是最直观的说法,也是用户的真实体验。一个用户从输入网址到按下回车键,看到网页的快慢,这就是性能。对于我们来说,需要去挖掘这个过程,因为这决定我们怎么去做性能优化。 这中间发生了什么? 用户访问网站的整个流程:用户输入网站域名,通过DNS解析,找到目标服务器IP,请求数据经互联网达到目标服务器,目标服务器收到请求数据 ...
一、序言        数据库用了很久了,期间也遇到过很多麻烦的SQL,以前一直没好好记录,自己也记不住,挺遗憾的,这次分享的是一个简单的分段统计的问题:student 表{id,name,score} 字段,统计各个分数段的人数。       规则:60以下不及格,60-70差,70-80中,80-90良,90-100优。(好熟悉的感觉....)        二、代码:         SELECT sum(CASE when score<60 then 1 else 0 end) AS '不及格', sum(CASE when score>= ...
  consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛; 1 基本场景 比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N ...
一、序言        作为程序员,难免要和数据库打交道,一般情况下,我们不是DBA ,但是又要写很多SQL,因此SQL效率就成了很大的问题。关于SQL效率优化,除了要掌握一定优化技巧外, 还得有很多经验的积累,但是这里我们可以通过执行计划对SQL进行分析,能快速找到优化的地方,这是一种很不错的方式,介绍给大家,大部分我是翻译而来,原文地址:http://dev.mysql.com/doc/refman/5.6/en/explain-output.html     二、执行计划输出列的含义:      Column Meaning
一、序言        每一次面试都能看到自己的不足,能让自己的视野变得开阔,能让自己在前进的路上看得很清晰,同时我也希望这些能点亮我生活的经验,能给予大家一些光和热。   二、面试过程        曾经:我参加过几家公司的面试,具体的名字我就不介绍,基本上的过程都是先大概介绍一些自己,介绍一下自己的项目信息,然后就对技术的狂轰乱砸,直到你头晕眼花!我相信很多人和我的经历差不多,然后我们可以从面试中看到自己技能方面的不足,深入不够,然后奋发图强...          技术真的那么重要吗?        对于这个问题,对于技术宅来说,是肯定重要的,对于销售、市场的人员来说,技术 ...
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5}  找出出现次数为奇数的数字.   我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。   还有人觉 ...
一、序言         关于NIO 相关介绍也很多了,这里主要目的还是通过自己的学习,分享一部分自己的理解,计划从基本概念到原理、到使用、到一些源码底层的分析,也回顾和总结自己的学习历程,今天先介绍概念。     ...
 一、序言         IO操作,才程序中比较普遍,JAVA 中提出了IO/NIO 的概念,也一直在说NIO 比IO快,一直不知道原因,就想memcache 和ehcache 比较优劣一样,这些东西得自己看看如何实现的,才 知道区别,从而才知道优劣以及试用范围,而不仅仅是“听说”!这里我可以先了解下JAVA 如何操作IO的。   二、代码示例        我们先看看简单文件操作:         // 这是将文件转换成输入流的的一种方式,获得了流我们就能干很多事 FileInputStream in = new FileInputStream(new File(&qu ...
一、序言        数据结构在大学都学过,由于大学认识不够,对这个有点酱油了,很多东西都是知道其概念,当然基本的应用也会,但是偶尔的面试等一些地方的应用,还是不够,这里再复习一些知识,给大家分享,知识来源于数据结构的书和网上的东西。   二、抽象数据类型        ADT(abstract data type)是带有一组操作的的的一些对象的集合。对于集合的ADT,我的理解是:拥有对数据的存放结构的定义(比如Node、List),是一种自定义的数据结构,同时含有对这些元素进行操作的描述(比如:add、remove、insert),这些都是没有具体实现,但是可以通过这些定义和描述我 ...
一、序言        这里主要介绍一下我们在读文件流,如何转换成byte[],从而引出这几种写法的一些原理和应用场景的区别。   二、测试代码       2.1 我们先看代码,代码的作用是获得将文件流转换成byte 数组,我们暂时不管它的正确性,代码也精简了很多。        // 这个用缓冲流 public static byte[] getByte1(String name) throws IOException{ FileInputStream is = null; is = new FileInputStream(new File(name)); ...
一、序言         先啰嗦一下,上次,阿里面试的时候问到能否加载一个java.lang.xx 的类,我的回答的是不能- -!当然答案是正确的,但是不知道为什么。         还有一个问题:如果加载两个jar,里面含有相同路径的类,是可以的吗?我还是回答不能- -,估计会冲突,但是原因也是模模糊糊,这里我再回顾一自定义加载类的方法吧,至于原理和细节的介绍,在JVM 目录下有。     二、自定义类加载器:        这里还是先写一个简单的加载器,方便测试吧!         /** * 自定义加载器的工具类 * 临时写的,暂时不做过多控制 * @aut ...
一、序言        上一篇,介绍了线程池的基本工作原理,这里会介绍一些里面的一些饱和策略和几个常用的线程池方法的实现原理。   二、源码分析        线程池极力推荐我们用Executors 提供车的各种工厂,来创建我们的线程池,提供了我们常用的几种创建线程池的方式:       newCachedThreadPool():无界线程池,可以自己进行回收。 newFixedThreadPool(int):固定线程池大小       newSingleThreadExecutor():单个线程           我们来看看里面是如何实现的。        // 无 ...
一、序言        关于“池”的概念,我的理解是它是为了让我们更快的获得资源,节省时间,在我所知的所有池(线程池、连接池、常量池、缓存池、对象池等等),都是这个作用,这里我们仅仅分享线程池的相关理解。        1.我们什么时候要用线程池?        在JAVA 里面我们一切都是对象,线程(Thread)同样也是对象,只要是对象那么就要涉及创建、使用、回收等三个主要步骤。通常情况下,创建线程的时间 和 回收(销毁)线程的时间的开销,由JVM控制,而使用过程由我们控制。假设我们在使用时间很短,并且发生频率很高的情况下,那么线程的频繁创建和销毁就会占用大量的的时间,为了减少这种 ...
Global site tag (gtag.js) - Google Analytics