摘要: 类似物理上的计算机系统,Java虚拟机规范中也定义了一种Java内存模型,即Java Memory Model(JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。 现在最新的Java内存模型规范是JSR-133,即Java内存模型与线程规范, 阅读全文
posted @ 2015-11-03 19:55 邴越 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 内存查看与分析工具,下面是日常监控可以使用的一些工具, 在调试时应用比较多的是堆栈信息,查看这篇文章: Java Thread Dump 性能分析 gc日志输出 在jvm启动参数中加入 jvm将会按照这些参数顺序输出gc概要信息,详细信息,gc时间信息,gc造成的应用暂停时间。如果在刚才的参数后面加 阅读全文
posted @ 2015-11-01 19:39 邴越 阅读(885) 评论(0) 推荐(0) 编辑
摘要: JVM的类加载机制是指虚拟机 把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的实现过程。 类加载过程具体可以分成下面几个步骤: (1)装载:查找和导入Class文件; (2)链接:把类的二进制数据合并到JRE中; 校验:检查载 阅读全文
posted @ 2015-10-31 16:32 邴越 阅读(534) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域,不同的区域在内存不足时会抛出不同的异常。 一、运行时数据区域的划分 (1)程序计数器程序计数器(Program Counter Register)是一块比较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器;P 阅读全文
posted @ 2015-10-25 10:17 邴越 阅读(2032) 评论(0) 推荐(0) 编辑
摘要: 从一个问题引出 如何随机从n个对象中(这n个对象是按序排列的,但是在此之前你是不知道n的值的)随机选择一个对象?具体来说,如何在实现不知道文本文件行数的情况下读取该文件,从中随机选择并输出一行? 这是《编程珠玑》中的一个习题,如果我们知道n的值,那么问题就可以简单的用一个大随机数rand()%n得到 阅读全文
posted @ 2015-10-18 11:30 邴越 阅读(950) 评论(0) 推荐(1) 编辑
摘要: 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 1.MySQL主要存储引擎的区别 MySQL默认的存储引擎是MyIS 阅读全文
posted @ 2015-10-11 19:15 邴越 阅读(6790) 评论(0) 推荐(0) 编辑
摘要: 归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序在众多排序算法中既是稳定排序,效率也比较高,同时,归并排序不仅可以用于内排序,还可以用于外排序。 1 阅读全文
posted @ 2015-10-07 18:50 邴越 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能。 Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数据类型不支持嵌套。下面学习一下这五种数据类型的特点和简单应用。 1.String 字符串 Strin 阅读全文
posted @ 2015-10-05 18:16 邴越 阅读(1493) 评论(0) 推荐(0) 编辑
摘要: 模块拆分是Maven经常使用的功能,简单梳理一下如何使用Maven进行多模块拆分, 只做归纳总结,网上资料很多,不再一步一步实际创建和部署。 建立Maven多模块项目 一个简单的Java Web项目,Maven模块结构是这样的: 上述示意图中,有一个父项目(parent)聚合很多子项目(mytest 阅读全文
posted @ 2015-09-20 22:01 邴越 阅读(8162) 评论(0) 推荐(1) 编辑
摘要: 一、重构前系统面对的问题 随着分公司站点的建设,后台稿件的数量越来越多,加上自动签发的需求,大量的静态化请求非常容易造成系统宕机,于是引入消息队列做异步处理,平滑请求处理曲线。 二、静态化消息发送端工程 首先并不是全部的静态化请求都需要通过消息队列来处理,在项目配置文件中添加了一个static_mq 阅读全文
posted @ 2015-09-18 11:21 邴越 阅读(1178) 评论(0) 推荐(0) 编辑
摘要: 一、部署和启动ActiveMQ 去官网下载:http://activemq.apache.org/ 我下载的是apache-activemq-5.12.0-bin.tar.gz, 解压到本地目录,进入到bin路径下,运行activemq启动ActiveMQ。 运行方式:启动 ./activemq s 阅读全文
posted @ 2015-09-08 10:11 邴越 阅读(3025) 评论(0) 推荐(2) 编辑
摘要: 一、消息中间件 消息中间件即Message-oriented middleware(MOM),消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,消息中间件可以在分布式环境下扩展进程间的通信。消息中间件可以即支持同步方式, 阅读全文
posted @ 2015-09-05 18:45 邴越 阅读(3081) 评论(0) 推荐(0) 编辑
摘要: 什么是消息队列 消息是指在两个独立的系统间传递的数据,这两个系统可以是两台计算机,也可以是两个进程。 消息可以非常简单,可以是简单的字符串,也可以是保存了数据持久化的各种类型的文档集合。 队列是在消息的传输过程中的通道,是保存消息的容器,根据不同的情形,可以有先进先出,优先级队列等区别 。 为什么使 阅读全文
posted @ 2015-08-28 11:08 邴越 阅读(5150) 评论(0) 推荐(0) 编辑
摘要: Dubbo的架构 节点角色说明: Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。调用关系说明: 0. 服务容器负责启动 阅读全文
posted @ 2015-08-26 17:38 邴越 阅读(5392) 评论(0) 推荐(1) 编辑
摘要: Linux下的可执行文件 Linux下如何查找可执行文件,作为一个Linux小菜刚刚有了这个问题, 在windows中,可以通过后缀名判断是否是可执行文件,比如.exe,.bat等是可执行文件,但是在Linux下呢? Linux下不能简单根据文件后缀判断是否可执行。 linux下判断一个文件是否可执 阅读全文
posted @ 2015-08-06 15:42 邴越 阅读(14182) 评论(0) 推荐(1) 编辑