![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
涌动的
这个作者很懒,什么都没留下…
展开
-
java8 JVM堆内存(heap) 新生代 老年代 永久代垃圾回收详解
装载于:https://blog.51cto.com/lizhenliang/2164876?wx=JAVA堆内存管理是影响性能主要因素之一。堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的。先看下JAVA堆内存是如何划分的,如图:JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old...转载 2019-10-30 18:38:08 · 3199 阅读 · 0 评论 -
Maven远程仓库的各种配置
1.远程仓库的配置在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他远程仓库中有,如JBoss Maven仓库。这时,可以在pom.xml中配置该仓库,代码如下: 1 <!-- 配置远程仓库 --> 2 <reposit...转载 2019-03-12 09:27:39 · 146 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解 二....转载 2019-03-12 10:21:02 · 118 阅读 · 0 评论 -
maven跳过单元测试-maven.test.skip和skipTests的区别
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。一 使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码...转载 2019-03-12 10:23:16 · 686 阅读 · 0 评论 -
sonar自定义规则
Sonar并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。sonarqubue默认的对java的检测规则不一定适合我们,可以自己去自定义rules。禁用rulesRules-Quality Prof...转载 2019-03-12 10:45:53 · 1148 阅读 · 0 评论 -
常用 Java 静态代码分析工具的分析与比较
简介:本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能、特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中。引言在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发...转载 2019-03-12 10:52:18 · 866 阅读 · 0 评论 -
Java 类加载机制
(1)阿里的面试官问我,可以不可以自己写个String类答案:不可以,因为 根据类加载的双亲委派机制,会去加载父类,父类发现冲突了String就不再加载了;(2)能否在加载类的时候,对类的字节码进行修改答案:可以,使用Java探针技术,可以参考:Java探针-Java Agent技术-阿里面试题阅读目录 什么是类加载器 类加载器与类的”相同“判断 类加载器种类...转载 2019-03-12 10:56:44 · 220 阅读 · 0 评论 -
Swagger 入门和实战
Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。Swagger 可以贯穿于整个 API 生态,如 API 的设计、编写 API 文档、测试和部署。Swagger 是一种通用的,和编程语言无关的 API 描述规范。应用场景如果你的 RESTful API 接口都开发完成了,你可以用 Swagge...转载 2019-03-14 09:43:07 · 464 阅读 · 0 评论 -
Gerrit代码审核服务器搭建与使用
gerrit的安装与使用的官方文档地址:https://gerrit-documentation.storage.googleapis.com/Documentation/2.16.6/index.html谷歌的Android开源项目在Git的使用上有两个重要的创新,一个是为多版本库协同而引入的 repo,另外一个重要的创新就是 Gerrit —— 代码审核服务器。Gerrit 为g...转载 2019-03-14 09:44:08 · 2099 阅读 · 0 评论 -
Java并发:深入分析volatile的实现原理
通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地...转载 2019-03-14 09:44:15 · 116 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
今天发一篇"水文",可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不...转载 2019-03-14 09:44:24 · 110 阅读 · 0 评论 -
Java8 中 ConcurrentHashMap工作原理的要点分析
简介:本文主要介绍Java8中的并发容器ConcurrentHashMap的工作原理,和其它文章不同的是,本文重点分析了不同线程的各类并发操作如get,put,remove之间是如何同步的,以及这些操作和扩容操作之间同步可能出现的各种情况。由于源代码的分析肯定会有所纰漏,希望大家积极指出错误。1.Java8中 ConcurrentHashMap的结构图片来源(http://www....转载 2019-03-14 09:44:31 · 202 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? ...转载 2019-03-14 09:44:48 · 125 阅读 · 0 评论 -
BIO、NIO和AIO的区别(简明版)
一:事件分离器 在IO读写时,把 IO请求 与 读写操作 分离调配进行,需要用到事件分离器。根据处理机制的不同,事件分离器又分为:同步的Reactor和异步的Proactor。 Reactor模型: - 应用程序在事件分离器注册 读就绪事件 和 读就绪事件处理器 - 事件分离器等待读就绪事件发生 - 读就绪事件发生,激活事件分离器,...转载 2019-03-27 09:56:04 · 192 阅读 · 0 评论 -
Java8 - 使用 Comparator.comparing 进行排序
Java8 - 使用 Comparator.comparing 进行比较排序使用外部比较器Comparator进行排序当我们需要对集合的元素进行排序的时候,可以使用java.util.Comparator创建一个比较器来进行排序。Comparator接口同样也是一个函数式接口,我们可以把使用lambda表达式。如下示例,package com.common;import jav...转载 2019-03-27 09:55:50 · 25955 阅读 · 1 评论 -
分布式锁的几种实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...转载 2019-03-27 09:55:38 · 175 阅读 · 0 评论 -
JVM 性能调优监控工具
企业级应用开发中经常会遇到以下问题,可以使用工具对JVM进行监管,以便及时查找问题所在。 内存不足OutOfMemory(大对象没有gc等),内存泄露; 线程死锁,线程数过多; 锁争用(Lock Contention),资源未及时释放(数据库); Java进程CPU消耗过高.一、Java自带工具 Java安装目录的bin文件加下有一些工具可以用来监控JVM性能,如jcon...转载 2019-03-27 09:54:57 · 193 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale lo...转载 2019-03-29 20:03:03 · 348 阅读 · 0 评论 -
Enum(枚举类)详解、示例
有的人说,不推荐使用枚举。有的人说,枚举很好用。究竟怎么使用,如何使用,仁者见仁智者见智。总之,先学会再说~为什么要引入枚举类一个小案例你写了一个小程序,不过好久不用了,突然有一天,你想使用一下它。程序要想正确运行,需要将今天星期几存到数据库里。这个时候,你开始犯难了。当初的你还很年轻,不懂程序界的险恶,设计这个程序的时候,傻不拉几把这个字段设计为int类型的,用0代表周日,1代表周...转载 2019-03-11 17:43:51 · 808 阅读 · 1 评论 -
sonarQube之平台搭建及sonar-scanner扫描
SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描...转载 2019-03-11 17:30:05 · 367 阅读 · 0 评论 -
疯狂java讲义第3版-java基础大纲
Level 1 Level 2 Level 3 疯狂Java讲义第3版 第1章 Java语言概述 与开发环境 1.1 Java语言的发展简史 1.2 Java的竞争对手及各自优势 1.2.1 C#简介和优势 1.2.2 Ruby简介和优势 1.2.3 Python简介和优势 1.3 Java程序运行机制 1.3...原创 2019-03-06 14:51:13 · 627 阅读 · 0 评论 -
Gradle教程
Gradle中文教程:https://www.yiibai.com/gradle/how-install-gradle-windows.html原创 2019-03-06 16:04:33 · 1524 阅读 · 0 评论 -
maven内部运行原理解析
maven至今还是Java编程语言构建的事实标准,大部分项目还在使用maven来进行构建,因此了解maven内部运行的原理对定位和分析问题还是很有裨益的。本篇文章主要介绍一些maven内部运行过程中的一些基本概念,相信看完后,对那么些刚刚接触maven的读者来说maven将不再陌生。 在具体分析项目构建的过程前,需要了解maven的一些基本概念,这些概念十分重要,请务必理解清楚后再看下文。基本...转载 2019-03-24 21:05:06 · 243 阅读 · 0 评论 -
使用AES算法对文件进行加密/解密的操作(JAVA)
很简单,直接上代码。/** * 初始化 AES Cipher * @param sKey * @param cipherMode * @return */ public Cipher initAESCipher(String sKey, int cipherMode) { //创建Key gen KeyG...转载 2019-03-24 21:04:49 · 4308 阅读 · 0 评论 -
POI中设置Excel单元格格式
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:先获取工作薄对象:HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet();HSSFCellStyle setBorder = wb.createCellStyle();一、设置背景色:setBorder.setFillFore...转载 2019-03-24 21:04:39 · 330 阅读 · 0 评论 -
java base64 转码和解码
Java Base64 这是一个用于编码和解码(encode/decode )base64字符串和数据流的Java开源类库。Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。可用来作为电子邮件或WebService附件的传输编码.使用方法: 把类库javabase64-1.2.jar设置到编译路径中。示例代码: String类型 进行Base64编码...转载 2019-03-24 21:04:31 · 1118 阅读 · 0 评论 -
ExecutorService生命周期
ExecutorService接口继承了Executor接口,定义了一些生命周期的方法Java代码publicinterfaceExecutorServiceextendsExecutor{ voidshutdown(); List<Runnable>shutdownNow(); booleanisShutdown(); bool...转载 2019-03-24 21:04:21 · 139 阅读 · 0 评论 -
UML类图几种关系的总结
转载于https://blog.csdn.net/tianhai110/article/details/6339565转载 2019-03-24 21:04:08 · 114 阅读 · 0 评论 -
Ebean ORM for Java
Ebean java实现的开源ORM:http://avaje.com/原创 2019-03-07 13:48:41 · 814 阅读 · 0 评论 -
Java 使用JGit获取Git代码
package com.sf.sgs.smp.manager.test;import org.eclipse.jgit.api.*;import org.eclipse.jgit.api.errors.GitAPIException;import org.eclipse.jgit.api.errors.JGitInternalException;import org.eclipse.jg...转载 2019-03-07 14:00:22 · 7140 阅读 · 0 评论 -
Java操作zip压缩和解压缩文件工具类
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Outpu...转载 2019-03-10 22:56:48 · 641 阅读 · 0 评论 -
java 执行bat批处理文件 并关闭cmd窗口
importjava.io.IOException;publicclassCmdMain {publicstaticvoidmain(String[] args){//执行批处理文件String strcmd="cmd /c start D:\\antrelease.bat";Runtime rt = Runtime.getRunti...转载 2019-03-10 22:59:27 · 2115 阅读 · 0 评论 -
SpringBoot Schedule 配置
1. 定时任务实现方式定时任务实现方式:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,有空介...转载 2019-03-10 23:04:54 · 264 阅读 · 0 评论 -
SwaggerUI+SpringMVC——构建RestFul API的可视化界面
今天给大家介绍一款工具,这个工具目前可预见的好处是:自动维护最新的接口文档。我们都知道,接口文档是非常重要的,但是随着代码的不断更新,文档却很难持续跟着更新,今天要介绍的工具,完美的解决了这个问题。而且,对于要使用我们接口的人来说,不需要在给他提供文档,告诉他地址,一目了然。最近项目中一直有跟接口打交道,恰好又接触到了一个新的接口工具,拿出来跟大家分享一下。关于REST接口,我在上篇文章中已...转载 2019-03-10 23:08:04 · 178 阅读 · 0 评论 -
springboot集成mongodb,实现文件上传下载-mongodb安装
一、linux上安装mongodb1、下载安装包:https://www.mongodb.com/download-center#atlas,上传包mongodb-linux-x86_64-rhel70-3.6.5.tgz到服务器2、创建mongodb文件夹,作为安装目标文件夹cd /usr/local;mkdir mongodb3、解压,移动解压缩后的文件夹下的所有文件到mo...转载 2019-03-11 16:21:42 · 1463 阅读 · 1 评论 -
Java中net.sf.json包关于JSON与对象互转的坑
在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递。数据的格式通常有2种:1、xml;2、JSON。通常来说都是使用JSON来传递数据。本文正是介绍在Java中JSON与对象之间互相转换时遇到的几个问题以及相关的建议。 首先明确对于JSON有两个概念: JSON对象(JavaScript Object Notation,JavaScri...转载 2019-03-11 17:27:34 · 745 阅读 · 0 评论