Java 开发
文章平均质量分 53
^果然好^
这个作者很懒,什么都没留下…
展开
-
dump相关
dump 相关分析原创 2022-08-09 13:48:03 · 217 阅读 · 1 评论 -
java22种设计模式
Java设计模式(1)工厂模式(Factory模式) - Coda - 博客园原创 2022-04-28 21:49:17 · 733 阅读 · 0 评论 -
Java GC 学习笔记
1、GC触发条件总的来说,有两个条件会触发主GC:(1)当应用程序空闲时,即没有应用线程在运行时,GC会被调用。因为GC在优先级最低的线程中进行,所以当应用忙时,GC线程就不会被调用,但以下条件除外。(2)Java堆内存不足时,GC会被调用。当应用线程在运行,并在运行过程中创建新对象,若这时内存空间不足,JVM就会强制地调用GC线程,以便回收内存用于新的分配。若GC一次之后仍不能满足内存分配的要求,JVM会再进行两次GC作进一步的尝试,若仍无法满足要求,则 JVM将报“out of memory原创 2021-12-29 19:43:24 · 185 阅读 · 0 评论 -
Exception总结
Java中用于处理异常的方式自行处理:可能引发异常的语句封入在try内,而处理异常的相应语句则封入catch块内回避异常:在方法声明中包含throws子句,通知潜在调用者,如果发生了异常,必须由调用者处理。在Java中除了RuntimeException及其任何子类,其他异常类都被Java的异常强制处理机制强制异常处理。关于那些被强制异常处理的代码块,必须进行异常处理,否则编译器会提示“Unhandled exception type Exception”错误警告。以下为对比:不报错...原创 2021-12-13 16:20:18 · 335 阅读 · 0 评论 -
Java代理CGLIB
1、前言在我的另一篇文章里讲了使用Java的动态代理CGLIB和Java动态代理的区别:Java动态代理只能够对接口进行代理,不能对普通的类进行代理(因为所有生成的代理类的父类为Proxy,Java类继承机制不允许多重继承);CGLIB能够代理普通类; Java动态代理使用Java原生的反射API进行操作,在生成类上比较高效;CGLIB使用ASM框架直接对字节码进行操作,在类的执行过程中比较高效2、实现2.1、EnhancerEnhancer是cglib中使用频率很高的一个类,它是一原创 2021-12-10 14:55:39 · 1210 阅读 · 0 评论 -
log4j2配置详解、自定义规则
1、配置详解配置详解上:https://www.cnblogs.com/sa-dan/p/6837225.html配置详解下:https://www.cnblogs.com/sa-dan/p/6837232.html2、自定义规则原创 2021-11-30 13:55:09 · 1040 阅读 · 0 评论 -
logback配置详解、自定义规则
public class CusMessageConverter extends MessageConverter { @Override public String convert(ILoggingEvent event) { return enhance(super.convert(event)); } // implement your "hook ... to at least alter the message text" private String enhan.原创 2021-11-25 20:17:06 · 1887 阅读 · 0 评论 -
Logback 实践
1、概念Logback是要与SLF4J结合起来2、简单配置<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60" debug="false"> <!-- 自定义属性 --> <property name="pattern" value="%X{thread} [%date{yyyy-MM-dd HH:mm:ss.SSS}] %原创 2021-11-08 16:41:12 · 137 阅读 · 0 评论 -
Java动态代理InvocationHandler、Proxy
目录1、概念2、实例1、概念java动态代理机制需要实现:InvocationHandler(接口) Proxy(类)1.InvocationHandler接口是proxy代理实例的调用处理程序实现的一个接口,每一个proxy代理实例都有一个关联的调用处理程序;在代理实例调用方法时,方法调用被编码分派到调用处理程序的invoke方法。 {@code InvocationHandler} is the interface implemented by the &原创 2021-11-30 14:20:45 · 643 阅读 · 0 评论 -
Java正则脱敏
part1+part2实现Part1java.util.regex.Pattern的应用正则表达式的一种已编译的实现。正则表达式通常以字符串的形式出现,它首先必须被编译为Pattern类的一个实例。结果模型可以用来生成一个Matcher,它(生成的Macher实例)可以匹配根据这个正则表达式生成的任意字符序列。在实现一个匹配器中的匹配时包括了任意多的情况,并且多个匹配器可以共享同一个匹配模式。下面是一个典型的调用次序:Pattern p = Pattern.compile("a*b"原创 2021-11-26 15:47:03 · 1566 阅读 · 0 评论 -
maven 设置scope、optional
Maven optional关键字透彻图解 - 日拱一兵 - 博客园原创 2021-11-27 18:37:10 · 297 阅读 · 0 评论 -
Idea 整合maven+ssi(spring+struts2+ibatis)
目录1、项目目录1、pom.xml2、web.xml3、struts.xml4、ibatis代码4.1、User4.2、UserDao4.3、UserDaoImpl4.4、UserSqlMap.xml4.5.1、涉及jdbc.properties4.5.2、涉及sqlMapConfig.xml5、service1、项目目录其中applicationContext-action.xml 可以为空,暂无啥用1、pom.xml&...原创 2021-10-20 17:21:11 · 407 阅读 · 0 评论 -
Idea 整合maven+ssi(spring+springmvc+ibatis)
参考:史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)_宜春-CSDN博客_ssm框架idea整合代码原创 2021-10-19 22:29:35 · 200 阅读 · 0 评论 -
(2)dubbo实践-dubbo高级特性
目录1、序列化2、地址缓存3、超时 4、重试5、多版本5.1、服务提供方5.2、服务调用方6、负载均衡6.1、Random6.2 其他三种7、集群容错8、服务降级1、序列化序列化目的:把对象序列化成流在生产者和消费者之间进行传输2、地址缓存3、超时怎么设置:可以写在提供方的@Service上也可以写在调用方的@Reference上提供方:消费方:一般建议在...原创 2021-10-17 15:32:04 · 207 阅读 · 0 评论 -
(1)dubbo实践-快速入门
1、先建一个普通的springmvc项目2、然后对其进行改造-dubbo-service <properties> <spring.version>5.1.9.RELEASE</spring.version> <dubbo.version>2.7.4.1</dubbo.version> <zookeeper.version>4.0.0</zookeeper.ver原创 2021-10-17 11:48:19 · 223 阅读 · 0 评论 -
(4)Struts2-使用拦截器实现登录
1、LoginInterceptor.javapublic class LoginInterceptor implements Interceptor { @Override public void destroy() { } @Override public void init() { } @Override public String intercept(ActionInvocation actionInvocation) t原创 2021-10-09 12:32:15 · 209 阅读 · 0 评论 -
(3)Struts2-参数传递、Json返回、拦截器
1、参数传递入参:set出参:get代码:public class HelloAction4 implements Action { //入参 private String name; public void setName(String name) { this.name = name; } //出参 private String message; public String getMessage() .原创 2021-10-09 11:28:14 · 341 阅读 · 0 评论 -
(2)Struts2-基于Maven创建
1、创建maven项目2、配置tomcat如果上一步没有可选,则:上面URL改为/xyz,然后启动:http://localhost:8080/xyz/3、配置web.xml<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-ap...原创 2021-10-05 20:20:15 · 398 阅读 · 1 评论 -
(1)Struts2-Idea 2020.3 创建Struts2
1、安装插件2、创建项目官网下载lib:然后选择下载的lib(8个):再次点击File--->Project Structure,右键选择put into/Web-INF/libhttp://localhost:8080/struts1_war_exploded/原创 2021-10-05 11:54:22 · 291 阅读 · 0 评论 -
VO、DTO、DO 的区别
原创 2021-05-21 11:26:06 · 121 阅读 · 0 评论 -
全网最通俗易懂的Java8版本新特性知识汇总
参考:全网最通俗易懂的Java8版本新特性知识汇总原创 2021-05-20 10:26:58 · 72 阅读 · 0 评论 -
swagger转doc
https://github.com/woshihoujinxin/swagger-gendoc原创 2020-12-18 10:24:41 · 1006 阅读 · 0 评论 -
idea Project Structure详解
转自:https://blog.csdn.net/weixin_39578092/article/details/90039726转载 2019-12-30 20:18:56 · 798 阅读 · 0 评论 -
idea 使用汇总
idea中的插件svn设置忽略文件 https://blog.csdn.net/luoqiang616477607/article/details/80599132插件位置 热部署-Jrebel原创 2019-08-07 15:05:23 · 98 阅读 · 0 评论 -
idea 项目提交至 gitee
1、安装gitee 插件重启idea2、idea 先设定好gitee 账号3、项目分享至gitee选中要同步的项目,点击菜单【VCS】-【Import into Version Control】-【Share Project on Gitee】4、查看结果...原创 2019-08-28 16:31:30 · 1623 阅读 · 0 评论 -
easy-mock安装(docker-compose)
Mock参考参考:https://www.jianshu.com/p/397c35c6f5cb安装本安装基于docker-compose安装,简单,不需要额外安装mongodb、Redis。Step1、https://github.com/easy-mockStep2、安装gityum install -y gitStep3、安装do...原创 2019-03-13 11:31:00 · 3710 阅读 · 2 评论 -
spring webFlux的认识
参考:https://www.cnblogs.com/wjp1122/p/9628503.html原创 2019-08-14 20:53:50 · 225 阅读 · 0 评论 -
大型企业微服务架构实践与运营-学习笔记
注:本文章是自学笔记,根据自己的需求有选择的记录。目录构建微服务架构构建企业级微服务架构打造下一代基础架构平台构建微服务架构云原生三大特征容器化 为服务 DevOps让“大象”跳舞搭建微服务平台 按业务逻辑拆分业务系统 容器化封装应用 消息框架、数据库、故障自愈、全链路监控、灰度发布日志采集两种模式侵入式(业务代码中实现) 非侵入式(A...原创 2019-11-28 16:22:56 · 918 阅读 · 0 评论 -
Java - 线程池 + Runnable、Callable、FutureTask
ExecutorService五种线程池的适应场景newCachedThreadPool:用来创建一个可以无限扩大的线程池,适用于服务器负载较轻,执行很多短期异步任务。 newFixedThreadPool:创建一个固定大小的线程池,因为采用无界的阻塞队列,所以实际线程数量永远不会变化,适用于可以预测线程数量的业务中,或者服务器负载较重,对当前线程数量进行限制。 newSingleThreadExecutor:创建一个单线程的线程池,适用于需要保证顺序执行各个任务,并且在任意时间点,不会有多个线原创 2020-08-31 16:14:42 · 344 阅读 · 0 评论 -
Java - 并发之CountDownLatch、CyclicBarrier、Semaphore
目录CountDownLatchCyclicBarrierSemaphoreJAVA并发包中有三个类用于同步一批线程的行为,分别是CountDownLatch、Semaphore和CyclicBarrier。CountDownLatchCountDownLatch是一个计数器闭锁(线程闭锁),通过它可以完成类似于阻塞当前线程的功能,即:一个线程或多个线程一直等待,直到其他线程执行的操作完成。CountDownLatch用一个给定的计数器来初始化,该计数器的操作是原子操作,即同原创 2020-08-31 11:34:28 · 140 阅读 · 0 评论 -
Java-HashMap、HashTable、ConcurrentHashMap区别
HashMap底层数组+链表实现,可以存储null键和null值,线程不安全 初始size为16,扩容:newsize = oldsize*2,size一定为2的n次幂 扩容针对整个Map,每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize原创 2020-08-31 10:22:30 · 107 阅读 · 0 评论 -
Java - Tess4J文字识别
概念Tess4J是对Tesseract OCR API的Java JNA 封装。tesseract是跨平台的OCR(Optical Character Recognition,光学字符识别)引擎,让开发者非常容易的集成OCR能力到他们自己的应用。通过强大的API从图片中识别和提取文本内容。Tess4J支持主流的图片格式,如TIFF,JPEG,GIF,PNG,BMP,and PDF。JNA可以让你像调用一般java方法一样直接调用本地方法。jna封装的 那些 c++写的 动态类库 dll文件 已经在原创 2020-08-04 14:24:38 · 927 阅读 · 0 评论 -
word、pdf、txt等各种模式相互转换
1、maven jar文件的产生mvn install:install-file -Dfile=C:\aspose-words-18.5.jar -DgroupId=com.steven -DartifactId=aspose-words -Dversion=1.0.0 -Dpackaging=jarpom.xml <dependency> <groupId>com.steven</groupId>原创 2020-07-24 17:36:54 · 166 阅读 · 0 评论 -
Java - OpenvCV 图像技术(1)
1、下载https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2、配置OpenCV, Windows10系统全局环境变量(PATH),如下截图3、Idea搭建Maven 项目基于OpenCV 的开发环境第一步:打开OpenCV 安装目录(D:\Program Files\opencv\opencv\build\java),将Java目录下的opencv-343.jar,上传至本地Maven 仓库,执行代码如下:.原创 2020-07-22 14:23:02 · 345 阅读 · 0 评论 -
Java - OpenvCV 图像技术(2)
矩形判断package com.example.demo;import org.opencv.core.*;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;import org.opencv.imgproc.Imgproc;import java.io.File;import java.util.ArrayList;import java.util.List;//import org.原创 2020-07-24 17:38:58 · 142 阅读 · 0 评论 -
Java8新特性 -CompletableFuture详解
转自:CompletableFuture详解原创 2020-06-17 14:25:17 · 238 阅读 · 0 评论 -
Java8新特性 -interface中的static方法和default方法
static方法java8中为接口新增了一项功能:定义一个或者更多个静态方法。用法和普通的static方法一样。public interface InterfaceA { /** * 静态方法 */ static void showStatic() { System.out.println("InterfaceA++showStatic"); }}-----------------------------------调用 In原创 2020-06-16 16:35:34 · 412 阅读 · 0 评论 -
Java 8新特性-函数式接口
转自:详解JAVA8函数式接口原创 2020-06-16 13:54:06 · 938 阅读 · 0 评论 -
深入理解Spring MVC 思想
https://www.cnblogs.com/baiduligang/p/4247164.html转载 2019-12-31 11:42:20 · 69 阅读 · 0 评论 -
git-eclipse 提交忽略 ingnore
1.打开Navigator窗口,找到.gitignore文件(如果没有就添加一个) Navigator窗口: window-> show view -> other-> Navigator2.配置需要忽略的文件。/target//.settings/.classpath.project.gitignore...原创 2019-04-26 17:05:52 · 279 阅读 · 0 评论