自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(643)
  • 收藏
  • 关注

原创 jinjava模板引擎简单介绍

python有一个广受欢迎的jinja模板引擎,jinjava则是jinja模板引擎的java实现,让jinja模板语法实现了跨语言使用。

2023-11-13 14:04:51 328

原创 jinjava学习实战

可以看到,在模板文件test.xml中,使用的模板语法是python的,帅气。效果同python版的jinja2一致,厉害了。

2023-11-13 13:48:55 193

转载 Java-Stream详解

Stream是Java 8新增的接口,Stream可以认为是一个高级版本的 Iterator。

2023-10-26 10:58:27 152

转载 Clickhosue 强大的函数,argMin() 和argMax()函数

argMax():计算 ‘arg’ 最大值 ‘val’ 价值。如果有几个不同的值 ‘arg’ 对于最大值 ‘val’,遇到的第一个值是输出。argMin() 与argMax() 的功能正好是相反的,👇是Clickhouse官方文档对这个函数的解释,看官应该看知道这个函数是用途了吧。当然上图是argMin() 函数的简单案例,这里我想到的几个业务场景的使用案例,仅供参考。

2023-10-16 17:50:05 818

原创 一文总结Java获取文件后缀名的所有方法

Java是一种应用广泛的编程语言,可以通过多种方式来实现对文件的操作,如文件名后缀、文件扩展名等,下面这篇文章主要给大家介绍了关于Java获取文件后缀名的所有方法,需要的朋友可以参考下。

2023-10-16 17:27:07 4351

原创 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 476

原创 log4j输出日志级别控制

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

2020-01-03 14:51:48 1462

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

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

2020-01-03 10:35:22 470

转载 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 937

原创 依赖注入框架Google Guice

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

2019-10-21 17:58:48 352

原创 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 1141

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

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

2019-08-02 10:39:03 518

原创 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 3105

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

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

2019-07-30 15:56:59 172

转载 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 1694

转载 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 782

转载 Java SPI机制简介

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

2019-07-05 11:03:24 220

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

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

2019-06-03 14:44:08 2578

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

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

2019-05-22 14:54:09 429

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

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

2019-05-15 09:15:07 5780

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

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

2019-04-04 14:27:50 5515

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

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

2019-03-29 10:54:56 750

转载 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 311

转载 Annotation实战【自定义AbstractProcessor】

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

2019-03-22 17:27:15 673

转载 深入理解LinkedHashMap和LRU缓存

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

2019-03-21 10:33:37 510

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

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

2019-03-20 09:08:10 137

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

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

2019-02-13 17:46:59 7132 2

转载 Maven Optional & Exclusions 使用区别

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

2019-02-11 16:02:22 392

转载 java日志组件介绍

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

2019-01-22 17:20:41 831

转载 elasticsearch配置详解

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

2018-12-18 10:13:22 2098

转载 Lombok 认知

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

2018-11-21 17:40:44 181

原创 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 4910

转载 Java 8 Lambda 异常处理

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

2018-10-30 17:20:42 1272

转载 单源调用Single Call 模式

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

2018-10-17 16:39:28 474

转载 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 8949

原创 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 8133

转载 HTTPClient使用

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

2018-09-27 17:32:43 171

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

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

2018-09-10 09:56:04 443

转载 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 691

转载 JS断点调试技巧

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

2018-07-16 09:57:19 2186

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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