自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(638)
  • 论坛 (1)

原创 MySQL查看数据库及表容量大小

1.查看所有数据库容量大小select table_schema as '数据库',sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_sch...

2020-04-20 17:32:03 118

原创 log4j输出日志级别控制

log4j输出日志级别控制log4j.logger.XX ==> log4j.rootLoggerlog4j.appender.XX.Threshold决定了最低接收级别也就是说rootLogger首先决定所有log的输出级别,而log4j.logger.XX是对XX路径下的jar包的输出级别的修改,直接覆盖rootLogger但是对于不同的输出口,他们的接收级别是不同的。...

2020-01-03 14:51:48 278

原创 Hadoop常用端口和定义方法

Hadoop常用端口和定义方法Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着Hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。这里包含我们使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper: 组件 节点 ...

2020-01-03 10:35:22 87

转载 mapreduce 作业中 map/reduce 个数的计算

1. 问题描述当在hadoop集群提交mapreduce作业时,map 和 reduce 的个数是如何计算的?2. map个数的计算2.1map个数的计算和分片大小(splitSize)是有关系的,所以我们先看看splitSize的计算公式:long splitSize = Math.max(minSize, Math.min(maxSize, bloc...

2019-12-30 10:09:57 164

原创 依赖注入框架Google Guice

Spring框架的依赖注入是家喻户晓的,但是在实际的开发中我们想使用便捷的依赖注入功能,但是又不想引入Spring框架的复杂性,该怎么办呢?有了Google Guice,这个问题便简单了,首先在你的maven项目里引入官方文档里给出的例子又臭又长,我不使用官方的例子,下面我们来写个最简单的HelloWorld我们使用Guice创建了一个注射器Injector,然后从Inject...

2019-10-21 17:58:48 122

原创 JMX的用处及用法

JMX最常见的场景是监控Java程序的基本信息和运行情况,任何Java程序都可以开启JMX,然后使用JConsole或Visual VM进行预览。下图是使用Jconsle通过JMX查看Java程序的运行信息1.png为Java程序开启JMX很简单,只要在运行Java程序的命令后面指定如下命令即可-Djava.rmi.server.hostname=127.0.0.1-Dcom....

2019-10-21 11:34:40 152

原创 BTrace小试 - 动态日志跟踪

BTrace动态日志跟踪笔记BTrace是一个安全的JVM动态追踪工具,最初为原Sun公司Kenai项目下面的一个子项目。BTrace是一个很“有趣”的VisualVM插件,本身也是可以独立运行的程序。它的作用是在不停止目标程序运行的前提下,通过HotSpot虚拟机的HotSwap技术动态加入原本并不存在的调试代码。这项功能对实际生产中的程序很有意义:经常遇到程序出现问题,但排查错误的一...

2019-08-02 10:39:03 239

原创 mysql插入数据后返回自增ID

mysql插入数据后返回自增ID的方法mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢?方法一:是使用last_insert_idmysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中。这意...

2019-08-01 16:38:03 823

转载 Spring和SpringMVC父子容器关系初窥

一、背景  最近由于项目的包扫描出现了问题,在解决问题的过程中,偶然发现了Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和SpringMVC的父子容器关系并且给出Spring和SpringMVC配置文件中包扫描的官方推荐方式。二、概念理解和知识铺垫  在Spring整体框架的核心概念中,容器是核心思想,就是...

2019-07-30 15:56:59 48

转载 java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

java 异常捕捉 ( try catch finally ) 你真的掌握了吗?前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit() 方法怎么处理?当 catch 和 finally 体里同时遇上 return 怎么办?相信你在处理异常的时候不...

2019-07-05 11:33:18 1411

转载 junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

今天在写代码的时候想把老系统里面加上单元测试,所以用最近做的springmvc上的一个项目中的junit扒一个下来:junit-4.12.jar 但是很奇怪在原来系统中好好能运行的,放到现在的项目中就老是报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing。疯掉了后来查发现有人说换一个低版本的就行了,引入...

2019-07-05 11:12:23 588

转载 Java SPI机制简介

SPI 简介SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现,而后,把新加的实现描述给JDK知道就行啦(通过改一个文本文件即可) 公司内部,目前Dubbo框架就基于SPI机制提...

2019-07-05 11:03:24 64

转载 对TCP重传的进一步认识

一、看图说话1、基于套接字的TCP服务器/客户端程序流程2、TCP三次握手建立连接3、TCP四次交互断开连接4、TCP状态转移图这张图看不懂的话解释在计算机网络第四版P274。解释下MSL:最长分节生存周期,他代表了IP数据报载网络上的最长生命周期。保证该连接上的数据包在网络中全部消失。二、TCP重传1、重传的原因1)发...

2019-06-03 14:44:08 360

转载 Junit单元测试多线程的问题

今天下午很快完成了一个接口的监控功能,然后屁颠屁颠地用Junit开始单元测试。然后我就开始陷入崩溃的边缘...监控结束后需要将监控结果以邮件的形式发送给运营的小伙伴维护,前面测试还是很顺利,到了开多线程发邮件时就不行了,程序也不报错,也接收不到邮件。然后改代码再测试,再冥思一会儿,再改再测试,还是无果,最后选择度娘一下,结论是:Junit单元测试不支持多线程然后,整个人都不好了.....

2019-05-22 14:54:09 115

转载 Spring中使用注解@Value读取properties配置文件信息

Spring开发中经常设计调用各种资源的情况,包括普通文件、网址、配置文件、系统环境变量等,可以使用Spring的表达式语言实现资源的注入。示例演示:注入普通字符、系统属性、表达式运算结果、其他bean的属性、文件、网站内容、属性文件EIConfig.java配置类import org.apache.commons.io.IOUtils;import org.springframew...

2019-05-15 09:15:07 3066

原创 Mybatis根据数据库表自动生成实体类和xml映射文件及dao

通常在开发过程中,大家都会使用mybatis操作数据库。一般步骤都是先创建好数据库表,然后创建mybatis一套。实体类、相应的dao和mybatis mapper文件,都相当麻烦。mybatis提供了对应的插件工具,方便自动生成,不用手动敲代码了。下面以maven、idea开发环境下的操作步骤为示例:1. 配置pom文件spring及mybatis依赖包:<d...

2019-04-04 14:27:50 2672

转载 Java 注解及自定义注解处理器

注解介绍注解,也被称为元数据(所谓的元数据,就是描述数据的数据)。所以注解的主要作用就是给指定代码一些描述信息。这些指定代码可以是一个类、一个方法或者是一个属性。Java注解是在Java SE5中被引入进来的,在Java中内置了三种注解以及四种元注解。内置注解内置注解 说明 @Override 表示当前的方法定义将覆盖超类中的方法,如果方法名或者参数有误,那么编...

2019-03-29 10:54:56 376

转载 spring自定义schema学习

一、前言1. 最近在学习dubbo,里边很多如provider、consumer、registry的配置都是通过spring自定义Schema来实现的,为此,我也学习下如何自定义Schema。 2.学习目标完成自定义一个shema名称为test,节点名为user的例子。二、准备内容1.编写java bean2.编写xsd配置文件3.编写spring....

2019-03-28 16:43:34 130

转载 Annotation实战【自定义AbstractProcessor】

Annotation实战【自定义AbstractProcessor】前言在使用Java的过程中,每个开发人员都接触过@Override, @Deprecated等等各式各样的注解,这些东西是java最基础的一些原生定义好的annotation。本文通过一个实例演示如果自定义自己的annotation,使得在编译源码代码阶段进行额外操作。案例源码预热简单说一下annotation的基...

2019-03-22 17:27:15 288

转载 深入理解LinkedHashMap和LRU缓存

LinkedHashMap 概述笔者曾提到,HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap是无序的,也就是说,迭代HashMap所得到的元素顺序并不是它们最初放置到HashMap的顺序。HashMap的这一缺点往往会造成诸多不便,因为在有些场景中,我们确需要用到一个可以保...

2019-03-21 10:33:37 227

转载 java中的深复制和浅复制

java中的深复制和浅复制Java 语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单 的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度clone,认识它 们的区别、优点及缺点。 看到这个标题,是不是有点困惑...

2019-03-20 09:08:10 83

转载 getClassLoader()和getContextClassLoader()的区别

   区别一:           getClassLoader()是当前类加载器,而getContextClassLoader是当前线程的类加载器   区别二:         getClassLoader是使用双亲委派模型来加载类的,而getContextClassLoader就是为了避开双亲委派模型的加载方式的,也就是说它不是用这种方式来加载类当前类加载器加载和定义当前方法所...

2019-02-13 17:46:59 1502

转载 Maven Optional & Exclusions 使用区别

Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反。Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖才行。Exclusions则是主动排除子项目传递过来的依赖。用法区别Project-X -> Project-AProject-A -> Project-B&l...

2019-02-11 16:02:22 184

转载 java日志组件介绍

common-loggingcommon-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-...

2019-01-22 17:20:41 341

转载 elasticsearch配置详解

elasticsearch.yml是elasticsearch主要的配置文件,所有的配置都在这个文件里完成,一般情况下,默认的配置已经可以比较好地运行一个集群了,但你也可以对其进行微调。在环境变量中的参数可以用来作为配置参数的值,比如配置文件里举的一个例子为:node.rack: ${RACK_ENV_VAR},再比如${JAVA_HOME}等。下面对其配置参数作一说明。Ø  Cl...

2018-12-18 10:13:22 491

转载 Lombok 认知

一、Lombok是什么    现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可以,后面是对Lombok早期应用的介绍。通过这两句话不难理解lombok其实就是帮助我们编写g...

2018-11-21 17:40:44 103

原创 Java AES加密 Illegal key size异常

Java实现AES加密,抛出异常如下:java.security.InvalidKeyException: Illegal key size原因:Illegal key size or default parameters 是指密钥长度受限制,java运行时环境读到的是受限的policy文件。policy文件位于${java_home}/jre/lib/security 目录下。...

2018-11-11 16:54:12 2102

转载 Java 8 Lambda 异常处理

Java 8 Lambda 异常处理java8 lambda表达式利用函数式编程提供精简的方式表达行为。然而,JDK函数式接口没有很好地处理异常,使得处理异常代码非常臃肿和麻烦。本文探讨在lambda表达式中处理异常的一些方式。处理非检查异常首先我们通过示例来说明问题。有List和常量除,比如50和list中每个元素除并打印出结果:List<Integer> integer...

2018-10-30 17:20:42 770

转载 单源调用Single Call 模式

在进行面向对象得分析与设计的实践过程中我们经常会遇到聚合(Aggregations)与组合(Composition)这两种关系,聚合是一种关联形式,它指明一个聚集(整体)和组成部分之间的整体与部分的关系。组合是指一种带有很强主从关系,成分的生命期一致的聚集关联形式。一个部分可以仅属于一个组成。没有固定多重性的部分可以在组成创建后再被创建。但是一旦被创建,这些部分将与组成同时存在并同时消亡(共享生存...

2018-10-17 16:39:28 233

转载 mysql 数据库varchar存储汉字

具体还是要看版本的4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节) 5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。自己在数据库中建个表测试下可以放多少个汉字。示例:以5.0以上版本为例。新建表: CREATE T...

2018-09-27 18:19:52 4546

原创 HttpClient 重定向 302

使用HttpClient访问http地址,有时候会报302错误。通过上网搜索,发现问题所在,报302是因为访问的http地址在服务端做了访问重定向,需要请求重定向后的URI。1.简单实例,http访问返回302,此时需要获取重定向地址,继续进行重定向访问,以获取最终结果:public class TestLogin { public static void main(Str...

2018-09-27 18:17:20 5250

转载 HTTPClient使用

HttpClient常用HttpGet和HttpPost这两个类,分别对应Get方式和Post方式。无论是使用HttpGet,还是使用HttpPost,都必须通过如下3步来访问HTTP资源。           1.创建HttpGet或HttpPost对象,将要请求的URL通过构造方法传入HttpGet或HttpPost对象。           2.使用DefaultHttpClie...

2018-09-27 17:32:43 101

转载 java内存泄漏的定位与分析

1、为什么会发生内存泄漏Java如何检测内在泄漏呢?我们需要一些工具进行检测,并发现内存泄漏问题,不然很容易发生down机问题。编写java程序最为方便的地方就是我们不需要管理内存的分配和释放,一切由jvm来进行处理,当java对象不再被应用时,等到堆内存不够用时,jvm会进行垃圾回收,清除这些对象占用的堆内存空间,如果对象一直被应用,jvm无法对其进行回收,创建新的对象时,无法从Heap...

2018-09-10 09:56:04 279

转载 Apache POI

什么是Apache POI?Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件。这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它包含类和方法对用户输入数据或文件到MS Office文档进行解码。Apache POI组件Apache POI包含类和方法,来将MS Office...

2018-09-07 15:00:21 551

转载 JS断点调试技巧

JS调试技巧技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置右侧的Breakpoints会汇总你在JS文件所有打过的断点,点击跟checkbox同一行的会暂时取消这个断点,若是点击checkbox下一行的会直接跳转到该断点的位置技巧三:查看断点内部的作用范围【很实用】右侧的scope可以看到相当多实用的信息,比如this的指向,是否有值,断点是对象还是其他等。。 技巧4:监听事件断点右侧的...

2018-07-16 09:57:19 1360

转载 js实现sleep功能

js中一般用setTimeout或者setTimeInterval实现函数的延迟执行,但是这两个方法相当于开启的新的线程进行等待,而如果我们想让代码串行的进行等待,这两个函数就实现不了了。这时,可以自己写一个函数以实现串行等待的功能var t = Date.now(); function sleep(d){ while(Date.now() - t <= d);} sleep(1000);如...

2018-07-16 09:41:52 441 1

转载 Spring properties to map

Spring properties to map一个key-value形式的properties文件 以Map的形式注入到Spring的bean中properties文件形式RF09001=fooService#method1#name,phonespring 配置 <bean id="noMethodMap" class="org.springframework.beans.fact...

2018-07-13 11:22:10 1076

转载 Java 中的resultset详解

Java 中的resultset详解结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。   结果集读取数据的方法主要是getXXX() ,他的参数可以使整型表示第几列(是从1开始的),还可以是列名。返回的是对应的XXX类型的值。如果对应那列时空值,XXX是对象的话返...

2018-07-13 10:52:07 748

转载 解决UEditor样式被过滤问题实战

上周开发中有用到开源的富文本编辑器UEditor,在使用的过程中遇到了样式被过滤无法显示问题,经过一番折腾终解决,此外,还有一些关于获取前台界面元素的一些总结。1. UEditor样式被过滤无法显示问题         上周有用到百度开源的富文本编辑器----UEditor.不得不说这个富文本编辑器做的真的很赞,个人觉得比CKeditor要好用很多,效果也很不错。但是在使用的过程中,有遇到在向文本...

2018-07-13 09:32:34 3533 1

转载 Spring动态配置多数据源

Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据。Spring配置多数据源的方式和具体使用过程。 Spring对于多数据源,以数据库表为参照,大体上可以分成两大类情况...

2018-06-20 09:21:48 310

空空如也

Bill-Zhang的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也
提示
确定要删除当前文章?
取消 删除