- 博客(19)
- 资源 (7)
- 收藏
- 关注
原创 堆排序实现
一、堆排序应用1、海量数据找TopK2、优先级队列优先队列首先是一个队列,队列具有先进先出的特性,在优先队列中,给数据加了一个权值(优先级),此时就不是先进先出了,而是优先级最高的最先出队。可以看出,堆和优先队列非常相似。一个堆就可以看作一个优先级队列。在优先级队列中插入一个元素,就相当于往堆中插入一个元素,从优先级队列中取出优先级最高的元素,就相当于取出堆顶元素。JDK中Priori...
2019-05-15 11:21:03
112
原创 java学习
1.内存划分新生代(eden、survivor1,survivor2)98%的对象朝生夕死,在eden、surviror1分配,如果仍然存活会转移到s2,每一次MinorGC年龄加1,到达阈值后转移到老年代老年代 分配大对象和长期存活对象; 永久代,-方法区; CMS收集器,有停顿,标记-清除算法; 2.线程volatile 原理:缓存一致性协议;作用:保...
2016-02-15 22:30:44
126
索引知识
MYSQL索引类型:B+索引:叶子结点顺序地存储了键值,适用于全键值、键值范围、键前缀查找;HASH索引:存储引擎会对索引列计算一个hash code,hash code存储在索引中,同事在哈希表中保持指向每个数据行的指针;全文索引:用于查找文本中的关键词。聚簇索引:一种数据存储方式,数据行存放在索引的叶子页中。聚簇索引把相关数据保存在一起,这样查找更快。因为无法同时把数据行存放...
2015-08-02 10:57:35
147
数据库事务隔离级别
数据库事务隔离级别:1.未提交读(脏读)。在本事务过程中读了其他事务没有提交的数据;2.提交读(不可重复读)。在本事务中第一次读某个数据的值跟第二次读的值不一样,因为其他事务在这个时间段提交了事务。ORACLE默认级别3.可重复读。只读别人提交的数据,这样就不会读同一条记录出现不同结果的情况。但是避免不了别人新加入了一条记录,出现多读记录的情况,即幻读。MYSQL默认级别4.可串行化。 每行数...
2015-07-22 22:08:14
112
原创 并发模型(一)
java线程与锁模型通过锁解决竞态条件,锁有内置锁,读写锁缺点: 内存可见性,如果读写线程不进行同步就不能保证可见性 存在乱序执行(编译器优化,JVM动态优化,硬件性能提升优化); 死锁; ...
2015-07-05 09:58:11
82
原创 同步与异步 阻塞与非阻塞
同步与异步,描述请求方;同步即发送请求后一直等到对方发回响应后才接着发送下一个请求,而异步机制不需要等到当前请求响应就可以继续发送下一个请求阻塞与非阻塞,描述处理方;阻塞即调用结果返回之前,当前处理线程从运行状态被挂起,直到调用结果返回,非阻塞方式调用结果不能立即返回,当前线程也不会被挂起,而是立即返回执行下一个调用java BIO 即阻塞IO,一个socket套接字需要使用一个线程来...
2015-06-13 22:55:31
93
原创 springmvc与struts2
1.springmvc,DispatcherServlet,根据请求url从HandlerMapping找到controller(controller被封装在HandlerExecutionChain中,HandlerExecutionChain中包含控制器以及拦截器),controller处理请求返回ModelAndView,Didaptcher解析视图并呈现,最后将视图返回客户端2.st...
2015-06-13 21:54:21
89
原创 前端性能问题
1.减少HTTP请求的数量。每一个HTTP请求除了有TCP开销以外,还包含了大量的头信息。2.缓存,设置静态资源过期时间,Expires,Cache-Control(HTTP1.1)3.源码压缩,Gzip,HTTP1.1支持4.CDN,提供静态资源内容服务,部署多个CDN服务器,用户可以从就近的服务器得到响应资源...
2015-06-06 22:36:14
115
原创 实时web技术
1.客户端轮询,缺点:有延迟、对服务器造成压力2.comet(永久帧、xhr流、htmlfile、长轮询),缺点:性能问题无法解决,向服务器发送的每个连接都带有完整的http头信息,延迟较高3.浏览器插件和jaava,基于tcp直接和服务器建立socket连接,缺点:需要所有浏览器安装插件、容易被防火墙拦截4.html5规范-- webSocket,缺点:有些浏览器不支持,如IE,部分实现有安全...
2015-06-06 22:14:51
144
原创 Nginx learning
正向代理,局域网内客户端通过代理访问外网反向代理,把站点的资源发布,让外网客户端访问。反向代理指令,proxy_pass,设置被代理服务器的地址Proxy cache,设置缓存信息负载均衡静态负载均衡:一般轮询法,基于比率的加权轮询法,基于优先级的加权轮询法动态负载均衡:最少连接优先,基于性能的最快响应优先算法,预测算法及动态性能分配算法Niginx,对特定资...
2015-05-31 20:23:20
110
原创 高性能之应用层优化
高性能之应用层优化不要使用web服务器来做静态内容服务,或者减少和动态服务使用不同的实例。请求一个css文件或图片没必要用一个固定占用50或100M的线程。用静态内容服务器做代替,Nginx,lighttp 使用缓存代理服务器,比如squid或varnish,esi(edge side includes)将部分页面中小块的动态内容潜入到静态缓存中缓存过期策略,主动缓存,将...
2015-05-31 20:21:46
389
原创 2015面试
1.现在的项目情况,架构技术方面:前端jquery,后端java,spring,hibernate,OSGI,多级数据中心部署,集群部署。业务方面:监控各个业务系统的数据,根据数据模型实时抽取到olap库,然后在模型上设定检查规则,检查异常数据。2.工作职责开发经理,检查下级代码。根据详细设计,业务逻辑,开发规范,最佳实践检查代码。3.遇到的困难goorvy做公式计算。计算
2015-04-25 22:15:41
420
原创 简化条件判断式,少写IF/ELSE
有人说过:写太多if/else 的代码不是好代码。写了几年的代码,感觉这句话很有道理。如果一段代码有太多的if/else,起码有以下问题。第一阅读性差。可能自己当时看的懂,过了一段时间估计自己也看不懂了,更何况其他程序员来理解这段代码。第二维护性差:写太多的if/else,如果稍有不慎,出错几率很大,特别是当其他程序员来改这段代码,那么可能引起新的bug。第三,可能反映出你面向对象思想不深刻,有些
2012-12-20 22:45:23
4510
原创 JAVA线程池介绍
在JAVA1.5中加入了java.util.concurrent包,这个包提供了很多多线程处理类。本文简单介绍下线程池的使用,更多信息请查看JDK1.5API。1.线程池的作用在生产环境中,如果为每个人任务分配一个线程,例如客户端每一次请求都在服务端发起一个线程处理,由于线程的创建与销毁会付出一定的代价,且消耗时间、内存,那么如果请求非常多可能导致服务器崩溃。线程池可以限制无限制的
2012-11-22 20:24:31
346
原创 ORACLE 索引
相信大家都知道20/80规则,比如财富论中80%的人掌握世上20%的人的财富,20%的人掌握世上80%的人的财富,80%的人用脖子以下赚钱20%的人用脖子以上赚钱。在ORACLE性能优化方法论中也有这个规则:(1)数据库体系结构设计和应用设计对系统性能的影响能占到80%,而硬件配置、参数调整、系统软件Bug等系统方面因素只占到20%。(2)80%的性能问题是由20%的应用导致的。如少量大表
2012-11-01 23:13:35
433
原创 有一种设计模式叫回调
一、回调是一种常见的程序设计模式。在这种模式中,可以指出某个特定事件发生时应该采取的动作。例如,可以指出在按下鼠标或选择某个菜单项时应该采取什么行动。1.在C#中,我们会定义一个委托用来传递回调函数,请看下面代码,在A类里面调用B类的ShowAssociateRuleView的方法时传递了一个匿名委托(即回调函数),在ShowAssociateRuleView方法中触发了传过来的onCom
2012-11-01 19:09:11
597
原创 什么是线程安全性
线程安全性是多线程开发中经常讨论的一个概念,是一个基本且很重要的概念,掌握了这个概念才能为后续沟通与开发铺扫除障碍。本人初学多线程作下总结,难免有误,还望本文能抛砖引玉。1.什么是线程安全性?定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。定义的核心就
2012-11-01 19:07:16
794
原创 我和你
你是谁?也许你是我的朋友,给我力量与信心;也许正是因为有了你,我才知道自己活着的理由,存在的价值,然而你还是需要我去深入了解。我是谁?我是一个还不能认清自我的我。也许我在成功与失败、自信与自卑间徘徊;也许我很卑微渺小,但是我还是有可能创造奇迹,前提是我要认清自己。
2008-09-02 22:31:00
290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人