上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页
摘要: dubbo启动时默认有重试机制和超时机制。超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。 如果出现超时,通常是业务处理太慢,可在服务提供方执行:jstack PID 阅读全文
posted @ 2016-04-13 20:42 邴越 阅读(31824) 评论(0) 推荐(1) 编辑
摘要: 为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。 ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。 就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内 阅读全文
posted @ 2016-04-12 21:48 邴越 阅读(21850) 评论(1) 推荐(2) 编辑
摘要: 我们都知道,HashMap在并发环境下使用可能出现问题,但是具体表现,以及为什么出现并发问题,可能并不是所有人都了解,这篇文章记录一下HashMap在多线程环境下可能出现的问题以及如何避免。 在分析HashMap的并发问题前,先简单了解HashMap的put和get基本操作是如何实现的。 1.Has 阅读全文
posted @ 2016-04-05 09:24 邴越 阅读(12323) 评论(0) 推荐(12) 编辑
摘要: 1.线程的状态转换 线程的状态转换是线程控制的基础,下面这张图片非常直观的展示了线程的状态转换: 线程间的状态转换: 1. 新建(new):新创建了一个线程对象。2. 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程 阅读全文
posted @ 2016-04-03 17:44 邴越 阅读(1166) 评论(0) 推荐(1) 编辑
摘要: 回顾这两个关键字前,先考虑一个问题: Static变量存储在JVM中的位置,或者说static变量是如何被加载的? JVM会把类的静态方法和静态变量在类加载的过程中读入方法区(Method Area),相当于常驻内存,如果一个方法或者变量声明为static,可以节约内存,不必要为每个对象实例化的时候 阅读全文
posted @ 2016-04-02 17:31 邴越 阅读(1733) 评论(0) 推荐(2) 编辑
摘要: 关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题,有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性, 感兴趣的同学一起讨论。 1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基 阅读全文
posted @ 2016-04-01 19:08 邴越 阅读(92423) 评论(15) 推荐(28) 编辑
摘要: 我们知道Redis支持五种数据类型, 分别是字符串、哈希表(map)、列表(list)、集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据结构实也是不一样的。 1.Redis中的redisObject对象 Redis是使用C编写的,内部实现了一个struct结构体redisObj 阅读全文
posted @ 2016-03-31 20:59 邴越 阅读(9392) 评论(0) 推荐(0) 编辑
摘要: 看一下API中关于Object的介绍: 类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 那么Object中到底有哪些方法,各自有什么应用呢?这个问题也经常出现在面试中,如果平时没有关注,可能很难回答好,这里简单整理一下。 首先看一 阅读全文
posted @ 2016-03-24 21:33 邴越 阅读(1298) 评论(1) 推荐(1) 编辑
摘要: 1.PID、TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID、GID:~$ id bingyueuid=1000(bingyue) gid=1000(bingyue) gr 阅读全文
posted @ 2016-03-18 18:24 邴越 阅读(2094) 评论(0) 推荐(0) 编辑
摘要: 一、数组、链表和哈希表结构 数据结构中有数组和链表来实现对数据的存储,这两者有不同的应用场景,数组的特点是:寻址容易,插入和删除困难;链表的特点是:寻址困难,插入和删除容易;哈希表的实现结合了这两点,哈希表的实现方式有多种,在HashMap中使用的是链地址法,也就是拉链法。 拉链法实际上是一种链表数 阅读全文
posted @ 2016-03-16 20:01 邴越 阅读(623) 评论(0) 推荐(1) 编辑
摘要: 前面学习了ArrayList的源码,数组是顺序存储结构,存储区间是连续的,占用内存严重,故空间复杂度很大。但数组的二分查找时间复杂度小,为O(1),数组的特点是寻址容易,插入和删除困难。今天学习另外的一种常用数据结构LinkedList的实现,LinkedList使用链表作为存储结构,链表是线性存储 阅读全文
posted @ 2016-03-13 22:21 邴越 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 1.关于ArrayList ArrayList直接继承AbstractList,实现了List、 RandomAccess、Cloneable、Serializable接口,为什么叫"ArrayList",因为ArrayList内部是用一个数组存储元素值,相当于一个可变大小的数组,也就是动态数组。 阅读全文
posted @ 2016-03-12 20:11 邴越 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 结合项目里使用暴露出的问题,对并发较多的核心业务或者对请求失败敏感的业务场景不建议使用Dubbo, 如电商的购买行为,使用Dubbo最好阅读源码,熟悉相关机制,或者直接自己造轮子。 1.使用Dubbo踩过的坑 (1)Spring Cache在Service层对消费者不起作用原因是:Spring容器还 阅读全文
posted @ 2016-03-08 20:20 邴越 阅读(8830) 评论(0) 推荐(1) 编辑
摘要: 1.JNI和Native方法 Java中,通过JNI(Java Native Interface,java本地接口)来实现本地化,访问操作系统底层,如系统硬件等。 JNI的实现就是在Java里声明方法,然后编写C/C++实现该方法,步骤: 编写带有native声明的方法的java类,得到.java文 阅读全文
posted @ 2016-03-06 19:20 邴越 阅读(1112) 评论(0) 推荐(1) 编辑
摘要: 1.集合框架 Java集合框架包含了大部分Java开发中用到的数据结构,主要包括List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)几个部分。 2.Collection系列 画类图好麻烦,强烈推荐processon. 阅读全文
posted @ 2016-03-04 19:13 邴越 阅读(650) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 18 下一页