- 博客(26)
- 收藏
- 关注
原创 java判断字符串是否为数字或中文或字母
*各种字符的unicode编码的范围: * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869]) * 数字:[0x30,0x39](或十进制[48, 57]) *小写字母:[0x61,0x7a](或十进制[97, 122]) * 大写字母:[0x41,0x5a](或十进制[65, 90])public static bo...
2018-08-31 16:55:11
949
原创 JAVA多线程实现的四种方式
Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。 1、继承Thread类创建线程Thread类本质上是实现了Ru...
2018-08-31 14:26:25
128
原创 spring 注解
声明Bean的注解:@Component : 组件,没有明确的角色@Service : 在业务逻辑层(service层)使用@Repository : 在数据访问层(dao层)使用.@Controller : 在展现层(MVC--SpringMVC)使用注入Bean的注解:@Aautowired : Spring提供的注解.@Inject : JSR-330提供的注...
2017-10-23 09:59:20
112
原创 分布式锁
分布式锁1 Java常用技术方案前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。所以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。希望这篇文章可以方便自己以后查阅,同时要是能帮助到他人那也是很好的。 =======================...
2017-09-06 15:27:23
151
原创 java线程池
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。...
2017-08-30 09:15:57
67
原创 java内存管理与垃圾回收
1、Java虚拟机运行时的数据区这里写图片描述2、常用的内存区域调节参数-Xms:初始堆大小,默认为物理内存的1/64(= eden space的一半大小,如是就直接在老生代上分配; 默认情况下的垃圾回收规则: 1、在回收前PS GC会先检测之前每次PS GC时,晋升到老生代的平均大小是否大于老生代的剩余空间,如大于则直接触发full GC; 2、...
2017-07-25 15:01:14
151
原创 jstat的用法
jstat的用法用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建...
2017-07-25 10:15:08
93
原创 JVM 调优参数详解
GC有两种类型:Scavenge GC 和Full GC1、Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就会触发Scavenge GC,堆的Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor的两个区中。2、Full GC 对整个堆进行整理,包括Young、Tenured和Perm。Full GC 比Scave...
2017-07-24 14:05:43
114
原创 JVM参数调优技巧
JVM参数调优实例解析关于JVM参数调优,对于很多程序员来说都是很头痛的问题,如果设置的不好,JVM不断执行FullGC,将导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了。这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题就暴露出来了,要想配置好JVM参数,需要对年轻代、年老代、救助空间和永久代有一定了解,还要了解JV...
2017-07-24 14:02:40
96
原创 Elasticsearch使用基础教程
基础概念 Elasticsearch有几个核心概念。从一开始理解这些概念会对整个学习过程有莫大的帮助。 接近实时(NRT) Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)。 集群(cluster) 一个集群就是由...
2017-06-25 15:28:37
138
原创 kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafka is a distributed,partitioned,replicate...
2017-06-22 15:38:51
141
原创 Kafka剖析(一):Kafka背景及架构介绍
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。InfoQ一直在紧密关注Kafka的应用以及发展,“Kafka剖析”专栏将会从架构设计、实现、应用场景、性能等方面深度解析Kafka。背景介绍Kafka创建背景...
2017-06-22 15:15:49
67
原创 Quartz集成springMVC (持久化任务、集群和分布式)
Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等。 Quartz核心是调度器,还采用多线程管理。 1.持久化任务:当应用程序停止运行时,所有调度信息不被丢失,当你重新启动时,调度信息还存在,这就是持久化任务。 2.集群和分布式处理:当在集群环境下,当有配置Quartz的多个客户端时(节点),采用Quartz的集群和分布式处理时...
2017-06-22 11:15:11
702
原创 Linux上常用性能测试工具
性能测试的关注点 QPS(QueryPerSecond)每秒查询率,即每秒处理请求的个数 该值过小说明,应用处理能力不够,或者并发不够,没有充分利用cpu TPR(Time per request)每个请求的平均响应时间 该值过小说明,应用处理能力不够 median 中位数,即50%请求的响应时间 TR(Transfer rate)网络传输率 改值过...
2017-06-22 09:41:17
920
原创 JAVA 实现XML与JSON 相互转换
1.把XML转为JSON格式 [java] view plain copy @SuppressWarnings("rawtypes") public static String xmlToJSON(String xml,int jsonType) { JSONObject obj = new J...
2017-06-22 09:22:07
284
原创 hive语法详解
Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用S...
2016-09-29 16:35:30
134
原创 使用elasticsearch遇到的一些问题以及解决方法
1.由gc引起节点脱离集群 因为gc时会使jvm停止工作,如果某个节点gc时间过长,master ping3次(zen discovery默认ping失败重试3次)不通后就会把该节点剔除出集群,从而导致索引进行重新分配。解决方法:(1)优化gc,减少gc时间。(2)调大zen discovery的重试次数(es参数:ping_retries)和超时时间(es参数:ping_...
2016-09-21 16:14:33
155
原创 分布式系统之消息中间件rabbitmq
既然要做分布式系统,就不得不说分布式消息通信系统。分布式系统的基础是各个分布式单元能够以各种方式互相通信,分布式消息中间件比较有名的开源实现有rabbitMQ,zeroMQ(库),ActiveMQ等,本篇先考察一下著名的消息中间件rabbitmq rabbitmq在2010年4月被SpringSource收购,后者是vmware的一个部门,就是说,rabbitmq目前已经是vmware的了...
2016-09-21 09:49:24
88
原创 强大的分布式消息中间件——kafka
在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题:l 我想分析一下用户行为(pageviews),以便我能设计出更好的广告位l 我想对用户的搜索关键词进行统计,分析出当前的流行趋势。这个很有意思,在经济学上有个长裙理论,就是说,如果长裙的销量高了,说明经济不景气了,因为姑娘们没钱买各种丝袜了。l 有些数据,我觉得存数据库浪费,直接存硬盘又...
2016-09-21 09:45:51
195
原创 RabbitMq、ActiveMq、ZeroMq、kafka之间的比较
MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。第一部分:RabbitMQ,ActiveMq,ZeroMq比较1、 TPS比较 一ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这篇文章。...
2016-09-21 09:42:30
378
原创 java(3)内存区域和GC机制
目录Java垃圾回收概况Java内存区域Java对象的访问方式Java内存分配机制Java GC机制垃圾收集器Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样...
2016-09-19 10:27:46
93
原创 java(2)RTTI和反射机制
目录前言传统的RTTI反射反射的实现方式反射的性能反射与设计模式前言并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这就是RTTI(Runtime Type Information,运行时类型信息)。在java中,有两种RTTI的方式,一种是传统的,即假设在编译时已经知道了所有的类型;...
2016-09-18 15:51:27
91
原创 java(1)类加载与初始化
目录类加载器动态加载链接初始化示例类加载器在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用。每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只...
2016-09-17 17:47:18
58
原创 jvm监控与调优系列
目录参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例 光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之。通过学习,我觉得JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。下面就将针对这3点进行学习。 (如果您对Java的内存区域划分和内存回收机制尚不明确,那在阅...
2016-08-31 09:44:04
97
原创 jvm监控与调优
[img]http://dl2.iteye.com/upload/attachment/0119/7113/233cc709-612a-3ff2-9372-36191174fc39.jpeg[/img]一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm) 其中N...
2016-08-31 09:31:04
139
原创 elasticsearch以及其常用插件安装
博客分类: elasticsearch elasticsearchesmarvelsqljdbc 1. install jdk1.8 2. edit hosts 3. install elasticsearcha) tar –xvf elasticsearch-2.3.3.tar.gzb) edit /etc/profile,append E...
2016-07-18 15:58:09
102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人