`
Deo
  • 浏览: 30952 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
         公司业务扩张,最近经常面试新员工,也经常遇到新入行的同事、朋友问一下java相关的问题,从基础、高级特性到架构应用都有涉及。回首展望自己近十年一路跌跌撞撞走来的点点滴滴,准备把自己汇总的东西整理一下分享给大家,希望能帮到前行路上的你,也希望能得到各路大神的指点。希望我们都能尽快成神--Java界的大神!         本文作为成长之路的开篇介绍,也作为以后整理的线路指导。后续会在本文中陆续更新接下来要整理分享的内容,请大家多多关注、多多指点,在此先表示深深感谢!     一、Java底层知识 字节码、class文件格式 CPU缓存,L1,L2,L3和伪共享 尾 ...
最近在执行DB2数据库SQL脚本时报错如下: DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL0010N The string constant beginning with "'场景号')" does not have an ending string delimiter. SQLSTATE=42603。   场 ...
    在java中我们无须关心内存的释放,JVM提供了内存管理机制,有GC回收不需要的对象。但实际使用中仍然会导致一系列的内存问题,常见的就是内存泄漏和内存溢出。     内存泄漏(leak of memory): 是指为一个对象分配内存 ...

Redis实现任务队列

   实现任务队列之前,我们先了解一下使用任务队列有哪些好处:    1. 松耦合。生产者和消费者无需知道彼此的实现细节,只需要约定好任务的描述格式。这使得生产者和消费者可以由不同的团队使用不同的编程语言编写。    2. 易于扩展。消费者可以由多个,而且可以分布在不同的服务器中,借此可以轻易地降低单台服务器的负载。       要实现队列很自然就想到Redis的列表类型,以及LPUSH和RPOP命令。如果要实现任务队列,只需要让生产者将任务使用LPUSH命令加入到某个键中,另一边让消费者不断的使用RPOP命令从该键中取出任务即可。Redis的伪代码实现如下: # 无限循环读取任务 ...
    现在系统中由于各种需要,经常遇到一种场景:需要限定每个IP地址每分钟最大访问次数类似的需求。下面是使用Redis实现范文频率限制的一种方式。     场景:要限制每分钟每个用户最多只能访问100个页面。     思路:1. 对每个用户使用一个名为“rate.limiting:用户IP”的字符串类型键;                2. 每次用户访问,使用INCR命令递增该键的键值                3. 如果递增后的值是1(第一次访问页面),则同时还要设置该键的生存时间为1分钟                4. 这样每次访问页面时都读取该键的键值,如果超过了 ...
Java面试中经常会遇到一个问题:final、finally、finalize的区别? 今天我只谈大家回答的最不准确也误解最深的一个 —— finalize。谈finalize() 方法之前需要先了解一下Java垃圾回收机制。 Java有垃圾回收期负责回收无用对象占据的 ...
对于基础知识的学习和理解,请参看两者的官方网站: JSON: http://www.json.org/ BSON: http://bsonspec.org/   这里主要介绍两者对于POJO的转换方式以及效率比对。 选择 Jackson JSON Processor 和 bson4jackson 来作为转换器,是因为这两款产品在开发中用的最多。   1. JSON Jackson提供三种方法处理JSON: Streaming API :reads and writes JSON content as discrete events. 该方式效率最高(相比于其他两种方式 ...
        今天在网上找了一天,都在找怎么才给eclipse添加新的windows 系统里面的字体,看了好多人都采用的是更改eclipse 下面的 plugins 里面的org.eclipse.jface_3.7.0.v20110928-1505.jar 把它打开然后进入到/org/eclipse/jface/resources这个目录, ...
在内建数据类型的情况下,效率没有区别; 在自定义数据类型的情况下,++i效率更高! 分析1: (在自定义数据类型的情况下) ++i返回对象的引用; i++ 总是要创建一个临时对象,在退出函数时还要销毁它,而且返回临时对象的值时还会调用其拷贝构造函数。 分析2: i++由于是在使用当前值之后再 +1, 所以需要一个临时变量来转储,而++i 则直接 +1,不存在临时变量的问题。 测试: 【Java code:】 public class Main{ public static void main(String[] args){ int i = ...
斐波纳契数列(Fibonacci Sequence),又称黄金分割数列。 意大利的数学家列昂那多·斐波那契在1202年研究兔子产崽问题时发现了此数列,故又称为“兔子数列”. 设一对大兔子每月生一对小兔子,每对新生兔在出生一个月后又下崽(小兔子长到第三个月后每个月又生一对兔子),假若兔子都不死亡,问每个月的兔子总数为多少? 分析一下:     第一个月小兔子没有繁殖能力,所以还是一对;     两个月后,生下一对小兔对数共有两对;     三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;现在大兔子有三对,小兔子两对;     ------ 依次类推可以列 ...
Global site tag (gtag.js) - Google Analytics