Java
文章平均质量分 60
曾燕辉
高级开发、高级软件工程师
展开
-
IDEA快捷键
IDEA快捷键原创 2022-04-29 16:06:29 · 400 阅读 · 0 评论 -
IDEA自动导入包
IDEA自动导入包转载 2022-04-29 15:32:48 · 1484 阅读 · 0 评论 -
SpringBoot全局异常处理
SpringBoot全局异常处理原创 2022-04-27 16:38:42 · 847 阅读 · 0 评论 -
Springboot2.0解决跨域问题
Springboot2.0解决跨域问题转载 2022-04-08 16:37:44 · 979 阅读 · 0 评论 -
利用Spring Boot+zxing,生成二维码还能这么简单
在网站开发中,经常会遇到要生成二维码的情况,比如要使用微信支付、网页登录等,本文分享一个Spring Boot生成二维码的例子,这里用到了google的zxing工具类。1.引入jar包pom.xml中引入zxing的jar包。<!-- 二维码支持包 --><dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId&转载 2021-07-28 14:08:35 · 517 阅读 · 0 评论 -
spring整合springSecurity
转载自:spring整合springSecurity转载 2021-06-15 17:26:50 · 493 阅读 · 0 评论 -
IDEA如何打开参数名提示
原创 2021-04-29 11:00:48 · 2561 阅读 · 0 评论 -
在项目中使用Swagger文档
转载自:在项目中使用Swagger文档1.为什么要使用Swagger?前后端协作开发过程中,时间周期一长,接口文档就变得难以维护,而我们通过swagger 只需要平常在写代码的时候加上一些注解,就可以生成一个接口在线文档,进行一些简单的功能测试!2.如何使用Swagger?1).需要在pom.xml中引用jar包<!-- swagger start --><dependency> <groupId>io.springfox</group转载 2021-04-23 15:20:50 · 390 阅读 · 0 评论 -
Postman
今天通过视频教程,接触到了一款很强大的 API调试、Http请求的工具Postman原创 2019-10-12 22:13:04 · 112 阅读 · 0 评论 -
java nio解决半包 粘包问题
转载自:https://blog.csdn.net/nongfuyumin/article/details/78343999NIO socket是非阻塞的通讯模式,与IO阻塞式的通讯不同点在于NIO的数据要通过channel放到一个缓存池ByteBuffer中,然后再从这个缓存池中读出数据,由于服务端缓存池大小限制以及网速不均匀等原因,会造成服务端读取到缓冲池中的数据不完整,就形成了断包问题,当缓...转载 2018-07-02 16:14:15 · 1890 阅读 · 0 评论 -
深入理解JVM性能调优
转载自:https://blog.csdn.net/elvis_lfc/article/details/52313400我们知道,性能问题无非就这么几种:CPU、内存、磁盘IO、网络。那我们来逐一介绍以下相关的现象和一些可能出现的问题。一、CPU过高。查看CPU最简单的我们使用任务管理器查看,如下图所示,windows下使用任务管理器查看,Linux下使用top查看。一般我们的服务器都采用Linu...转载 2018-07-02 15:34:32 · 134 阅读 · 0 评论 -
JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
转载自:https://blog.csdn.net/defonds/article/details/52598018玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈。性能优化分为好几个层次,比如系统层次、算法层次、代码层次...JVM 的性能优化被认为是底层优化,门槛较高,精通这种技能的人比较少。笔者呆过几家技术力量不算弱的公司,每个公司内部真正能够进...转载 2018-07-02 15:28:08 · 193 阅读 · 0 评论 -
深入理解JVM—性能监控工具
源自博客园: http://www.cnblogs.com/duanxz/p/3712734.html我们知道,在JVM编译期和加载器,甚至运行期已经做了大量的调优操作,但是那些都是JVM针对Java程序所做的通用的、简单的优化,程序在运行时由于运行环境的复杂性、业务逻辑的复杂性,很多JVM是无法进行优化处理的,这就需要我们自己在写代码的时候就注意,以便我们的程序在特定的业务场景发挥到最佳性能。要...转载 2018-07-02 15:22:28 · 156 阅读 · 1 评论 -
无法连接java visualvm插件中心
打开Java VisualVM检查更新插件时,默认的连接连不上,通过浏览器访问之后发现默认的服务器已经404,新地址已经迁移到github,下面这个地址里面有不同版本jdk对应的插件中心地址。 https://visualvm.github.io/pluginscenters.html...原创 2018-06-26 00:54:19 · 4814 阅读 · 1 评论 -
调用System.gc没有立即执行的解决方法
转载自:https://blog.csdn.net/yewei02538/article/details/52386642查看源码当我们调用System.gc()的时候,其实并不会马上进行垃圾回收,甚至不一定会执行垃圾回收,查看系统源码可以看到 /** * Indicates to the VM that it would be a good time to run the ...转载 2018-06-25 23:57:39 · 775 阅读 · 0 评论 -
聊聊JVM的垃圾回收机制GC
1. jvm结构图hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了):2. jvm为什么分新生代和老年代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把...原创 2018-06-25 23:54:22 · 170 阅读 · 0 评论 -
JAVA -Xms -Xmx -XX:PermSize -XX:MaxPermSize 区别
java -Xms -Xmx -XX:PermSize -XX:MaxPermSize转载自:https://www.cnblogs.com/koik/p/4452029.html 在做java开发时尤其是大型软件开发时经常会遇到内存溢出的问题,比如说OutOfMemoryError等。这是个让开发人员很痛苦、也很纠结的问题,因为我们有时不知道什么样的操作导致了这种问题的发生。所以我们不得...转载 2018-06-25 16:38:34 · 255 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
转载自:https://www.cnblogs.com/su-feng/p/6659064.html最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的...转载 2018-06-25 12:12:02 · 138 阅读 · 0 评论 -
JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)
一、背景转载自:https://www.cnblogs.com/dennyzhangdd/p/6770188.html1.1 永久代(PermGen)在哪里?根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了):上图引自网络,但有个问题:方法区和heap堆都是线程共享的内存区域。关于方法区和永久代:在HotSpot JVM中,这次讨论的永久代,就是上图的方法区(JVM规范中称为方法...转载 2018-06-25 11:57:27 · 775 阅读 · 0 评论 -
java如何通过类加载器加载类和jar包
场景: 把项目中要用到的class文件和jar放到D:\loader\terry\codex目录下,如何让项目通过代码的方式实现加载和使用这些类呢?方案:通过URLClassLoader构造D:\loader\terry\codex这个路径下的类加载器,在通过Java反射机制进行实例化使用这些类例子: HelloWorld.java:原创 2017-12-03 16:00:19 · 4616 阅读 · 0 评论 -
Redis安装教程
转载自:http://blog.java1234.com/blog/articles/311.htmlRedis从一开始就只支持Linux,后面虽然有团队搞出Window版本,但是我还是建议大伙安装到Linux中。准备工作 VMware 以及Xshell redis官方安装教程,但是比较简单,不适合生产环境的安装部署;我们这边详细点,第一步:安装gccgcc编译c的,因为redis是c编写的,所以...转载 2018-07-11 16:01:27 · 501 阅读 · 1 评论 -
redis可视化工具redis desktop manager无法连接的解决办法
原因:因为redis有白名单设置,可以进行客户端IP地址限制,所以可以添加IP地址,如果不用进行客户端IP地址限制,则可以注释掉bind代码,如下:原创 2018-07-11 16:26:52 · 2373 阅读 · 0 评论 -
Redis客户端图形界面工具Redis Desktop Manager
下载地址:https://redisdesktop.com/download1)修改redis.conf配置文件注释掉bind代码,如下圈出:设置redis客户端连接密码,如下圈出:将redis服务器运行模式修改成后台运行,如下圈出:2)Redis Desktop Manager新建连接...原创 2018-07-11 16:32:00 · 10395 阅读 · 0 评论 -
Cannot change version of project facet Dynamic Web Module to 2.4原因&解决办法
Cannot change version of project facet Dynamic Web Module to 2.4 这个错误是指当前的web.xml 配置的j2ee版本和项目中的project facets 的j2ee版本不一致导致Web.Xml 中是2.4project facets 是3.0把project facets 中的 改成和web.xml中的一致2....原创 2019-10-11 18:21:36 · 169 阅读 · 0 评论 -
JMH各参数使用介绍
转载自:赵伊凡's Blog这里说道的基准测试Benchmark其实是微基准测试Micro-Benchmark。这里面的概念就不详细介绍了,反正就是JMH可以非常方便的帮助我们进行java代码的简单基准测试。有什么用可以对多组代码进行基准测试比较。很多人总说,这样用速度快,性能好,别听他们的,自己试过才知道。Java的基准测试需要注意的几个点测试前需要预热。防止无用代码进...转载 2018-11-04 16:26:57 · 3734 阅读 · 0 评论 -
使用JMH做吞吐量测试
转载自:《使用JMH做Java微基准测试》摘要: # 使用JMH做Java微基准测试 在使用Java编程过程中,我们对于一些代码调用的细节有多种编写方式,但是不确定它们性能时,往往采用重复多次计数的方式来解决。但是随着JVM不断的进化,随着代码执行次数的增加,JVM会不断的进行编译优化,使得重复多少次才能够得到一个稳定的测试结果变得让人疑惑,这时候有经验的同使用JMH做Jav...转载 2018-11-04 16:17:22 · 3123 阅读 · 3 评论 -
基于Maven的JMH的搭建和使用
转载自:《JMH使用说明》JMH使用说明一、概述JMH,即Java Microbenchmark Harness,是专门用于代码微基准测试的工具套件。何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测试,精度可以达到微秒级。当你定位到热点方法,希望进一步优化方法性能的时候,就可以使用JMH对优化的结果进行量化的分析。和其他竞品相比——如果有的话,JMH最有特色的地...转载 2018-11-04 15:32:57 · 3864 阅读 · 1 评论 -
史上最全最详细JNDI数据源配置说明
转载自:《史上最全最详细JNDI数据源配置说明》 环境:tomcat6.0+Maven要使用数据源就要知道数据源的由来:在java开发使用jdbc都要经历这四步①加载数据库驱动程序:(Class.forName(“数据库驱动类”);)②连接数据库(Connection con = DriverManager.getConnection();)③操作数据库(PreparedS...转载 2018-10-15 21:41:42 · 9524 阅读 · 0 评论 -
微基准测试工具JMH
转载自:《JMH使用说明》JMH使用说明一、概述JMH,即Java Microbenchmark Harness,是专门用于代码微基准测试的工具套件。何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测试,精度可以达到微秒级。当你定位到热点方法,希望进一步优化方法性能的时候,就可以使用JMH对优化的结果进行量化的分析。和其他竞品相比——如果有的话,JMH最有特色的地...转载 2018-10-14 18:37:54 · 531 阅读 · 0 评论 -
SpingMVC Filter + HttpServletRequestWrapper 实现后台修改Request请求参数
1、封装Request请求对象,对外暴露修改请求参数的方法package edu.mvcdemo.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax...原创 2018-10-13 15:59:51 · 2434 阅读 · 1 评论 -
Protostuff序列化和反序列化使用说明
转载自:《Protostuff序列化和反序列化使用说明》google原生的protobuffer使用起来相当麻烦,首先要写.proto文件,然后编译.proto文件,生成对应的.java文件,鄙人试了一次,发现真的很麻烦。而protostuff的官方网站(http://www.protostuff.io/documentation/runtime-schema/),对于智商比较低的小编来说也略...转载 2018-09-12 21:48:37 · 858 阅读 · 0 评论 -
使用 lombok 简化 Java 代码
转载自: https://einverne.github.io/post/2018/06/lombok.htmllombok 在编译器编译时通过操作 AST(抽象语法树)改变字节码生成。也就是说他可以改变 Java 语法。lombok 不像 Spring 的依赖注入是运行时的特性,而是编译时的特性。安装配置官网地址:https://projectlombok.org/添加 mave...转载 2018-08-25 23:41:15 · 247 阅读 · 0 评论 -
Eclipse安装Lombok插件
项目使用Lombok.jar(插件), 在编译时,往类字节码文件自动注入Getter、Setter、ToString、Constructor等代码,编译、运行和打包都没问题,但是在IDE(例如Ecipse、Intellij Idea等)中,会报“No Such Method”的错误,为了解决这个问题,就需要在IDE中安装Lombok插件,下面介绍在Eclipse中如何安装Lombok?注意:有...原创 2018-08-23 23:49:25 · 533 阅读 · 0 评论 -
Intellij Idea如何使用Extenal Tools反编译java类
1. 下载JD-GUI,你也可以下载其它的反编译工具 下载地址 http://jd.benow.ca/2. 配置External Tools File——》Settings——》Tools——》External——Tools,点击”+”添加,配置信息如下:配置项中的 $ClipboardContent$的意思是jd-gui.exe命令的运行参数为粘贴板中...原创 2018-08-23 23:29:00 · 7437 阅读 · 0 评论 -
Java通过泛型写通过方法
@Override public <T extends IMetaObjectImpl> T getEntityById( Class<T> t, Integer id ) { return commonService.getEntityById( t, id ); }原创 2018-07-19 22:29:01 · 383 阅读 · 0 评论 -
Java国际化,使用ResourceBundle的方式读取配置文件
如Struts,spring等框架以及Tomcat容器,都是通过ResourceBundle的方式从资源文件(如messages.properties)中自动读取并进行资源绑定的。java.util.ResourceBundle类非常地灵活,可以通过设置的Locale(语言环境)来选择读取的文件,进行国际化。最近在看Tomcat的源码,看到了Tomcat国际化的实现方式,下面将以一个例子介绍如原创 2017-12-03 18:56:12 · 4170 阅读 · 0 评论 -
Properties文件中文乱码解决
在很多使用Resource资源文件的情况下,如Struts,spring等框架中,通过ResourceBundle的方式从资源文件(如messages.properties)中自动读取并进行资源绑定。这时,如何解决中文乱码问题呢?其实,很简单,只要通过将中文写成Unicode就可以了!比如,hello=你好用unicode来写就是hello=/u4f60/u597d在JDK/B原创 2017-12-03 17:23:44 · 2421 阅读 · 1 评论 -
Java如何抓取ORACLE中调用函数接口的SQL
Oracle中查询调用函数接口,会存在各种性能问题。很多时候,公司经理或领导都要求我们对这些调接口函数的SQL进行优化,那么要怎么找出这些SQL呢?因为我们公司的业务都是写在package,最少几千行的代码,几百个package,自己用肉眼去看是非常费劲的,所以自己用JAVA写了个小程序,将这些SQL抓取出来。FindFuncSQL.java:package utils.orac原创 2017-10-14 21:10:42 · 688 阅读 · 0 评论 -
JAVA I/O 、NIO 文件读写性能对比
NIO将文件映射到内存进行读写的性能会比普通的IO读写块!原创 2017-06-14 12:00:42 · 1915 阅读 · 0 评论 -
对象的notify()和notifyAll()区别
wait()会让线程挂起,直到通知到它继续执行!挂起的线程会存放到等待队列中,按照wait的先后顺序存放。notify()通知等待队列中的第一个线程,notifyAll()通知的是等待队列中的所有线程举例:class Lock{ public synchronized void notifyOne(){ this.notify(); }原创 2017-06-26 00:37:27 · 1715 阅读 · 0 评论