札记

Java反射学习

  java反射机制听起来似乎很神奇,在自己编程的时候却很少用到,但是在框架中却频繁的使用。以前自己看过一些java反射的内容,但是也没有搞得十分透彻,今天再重新学习一遍,争取把这个问题彻底搞清楚。 一、反射——并不神奇   运行时类型信息(RTTI)可以告诉我们运行时某个对象的类型,只要这个类在编译时已经加载。那么如果在编译阶段我们无法获取某个类的信息,却需要使用类对象怎么办呢?这看起来...

排序算法整理

  一直都想写写排序,今天终于有时间了。记得刚刚开始接触算法的时候,遇到的第一问题往往就是排序问题。因为排序很自然,我们每天都要接触,而排序算法十分丰富,可以让初学者大开眼界的同时对算法复杂度和分治思想有一定的认识。今天我也回顾下自己了解的排序算法,算是做个记录吧。   排序问题如何去分呢?首先应该分为基于比较的排序和非基于比较的排序。基于比较的排序有理论的最优时间复杂度O(N*logN)...

数据库优化

参考美团内部分享,原ppt作者:房晓乐 一、优化相关概念   优化,首先要明确我们需要优化什么,数据库优化其实主要就是优化性能、响应时间和吞吐量。 性能:衡量完成特定任务的速度或者效率。 相应时间:衡量系统与用户交互时多久能够收到响应。 吞吐量:衡量系统在单位时间里可以完成的任务量。   一些内部数据制作的图表不方便贴出来,直接总结下规律吧。对于每个系统,都会有自己的瓶...

缓存机制

  缓存原意是指高速数据交换存储器。现在这一概念已经被扩充,不仅在CPU与主内存之间存在缓存, 而且在内存和硬盘之间也有缓存。缓存有三个要素:命中率、缓存更新策略、缓存最大数据量。 一、缓存三要素 1、命中率   通常通过命中率衡量缓存机制的好坏和效率。 命中率请求缓存的次数和缓存返回正确结果的次数的比例,比例越高,证明缓存的使用率越高。 2、缓存更新策略   MySql内置了查询缓...

Memcached学习

  Memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以及提高动态Web应用的速度和可扩展性。Memcached有如下特点: 协议简单 基于libevent的事件处理机制 内置内存存储方式 采用不互相通信的分布式   Memcached以守护程序的方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由多种语言编...

闭锁、栅栏、futuretask和信号量

  同步工具类可以是任何一个对象,只要它根据自身的状态来协调线程的控制流。阻塞队列可以作为同步类工具,其他类型的同步工具类还包括信号量、闭锁、栅栏和FutureTask。所有的同步工具类都包含一些特定的结构化属性:他们封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,此外还提供了一些方法对状态进行操作,以及另一些方法用于高效地等待同步工具类进入语气的状态。 一、闭锁  ...

对session和cookie的理解

今天学习了下cookie和session,简单谈谈自己的理解。 一、Cookie   Cookie是在远程浏览器中存储数据并以此跟踪和识别用户的机制。从实现上来说, Cookie是存储在客户端上的一小段数据,浏览器通过HTTP协议和服务器端进行Cookie交互。 数据的具体的存储方式根据浏览器的不同会有所不同。   好吧,上面的那段话还是有点绕的,Cookie就是服务器存在客户端的一些键...

线程安全性

  要编写线程安全的代码,其核心在于对对象状态的访问进行管理,特别是对共享的和可变的状态的访问。一提到java同步,除了想到synchronized加锁方式,还应该想到volatile变量,显示锁以及原子变量。 一、线程的安全性   当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都能够表现出正确的行为,...

Trending Tags