java
文章平均质量分 54
wenni328
这个作者很懒,什么都没留下…
展开
-
git如何删除已经提交的文件夹或文件
git如何删除已经提交到远程的文件夹或文件。 问题描述 今天在工作中,创建工程时一不小心把studio 的**.idea** 文件夹下的内容不小心提交到远程仓库,导致每次提交代码或者合并代码时都会有.idea中的许多文件,造成了许多无用功区合并代码。 解决办法 git rm -...转载 2021-08-14 14:36:55 · 7489 阅读 · 1 评论 -
checkstyle规则编写以及对应插件版本
发现很多网上的checkstyle.xml写出来了但是都没有对应的插件版本给出,xml和插件之间的版本不匹配造成一直都是无法自定义规则。所以给出一份明确版本的规则checkstyle插件版本选择8.0,规则文件在下面<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycraw.原创 2021-07-15 13:41:45 · 1215 阅读 · 0 评论 -
2021-05月份记录一次面试过程
前言坐标深圳,因公司濒临倒闭,于是5月份出来寻求新机会(这时间真不适合找工作,天热),前后也准备了大半个月进行复习。正式进入面试环节一个简单的自我介绍,突出你在项目中做了啥,介绍一下自己的工作经历这些巴拉巴拉的。问了下离职原因(我履历不太好)巴拉巴拉的然后会就着你项目中使用的技术带觜提一点儿(本次并没有对我的项目进行深问)开始简单的技术提问了。常用的数据结构,说下它是怎么实现的?HashMap和ConcurrentHashMap原理说一下sync对象头啊这些,实现原理啊,重入实现.原创 2021-05-22 16:44:16 · 95 阅读 · 0 评论 -
图解对象在JVM中的生成和执行过程
【1】方法区中生成相应的class 【2】main方法进入栈空间 【3】在堆区域创建对象,对象的具体内容是根据class生成 其中,成员变量是直接在堆中生成,成员方法是保存的class中方法的地址 【4】堆中生成对象后,把对象地址值给one 【5】修改对象的成员变量是根据对象地址值找对应成员变量并进行修改即可 【6】执行成员方法的过程是先找到成员方法的地址值 0x333,接着该方法入...转载 2021-05-19 07:41:06 · 194 阅读 · 0 评论 -
Java多线程读写一个文件
最近项目中有遇到并发同时访问一个文件读写的情况、但是同时读写就会出错、所以我研究了一下java文件锁这个机制 最近项目中有遇到并发同时访问一个文件读写的情况、但是同时读写就会出错、所以我研究了一下java文件锁这个机制下面直接贴代码 我通过的是线程来模拟多人同时读写的情况 写文件 package com.dnion...转载 2021-05-15 21:51:20 · 576 阅读 · 0 评论 -
Jps常用命令整理
Jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java JVM进程的一些简单情况。 1. jps 列出pid和...转载 2021-04-14 09:31:54 · 340 阅读 · 0 评论 -
三种实现分布式锁的方式
一、为什么要使用分布式锁 我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug! 注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间! 后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大...转载 2021-04-09 15:57:57 · 173 阅读 · 0 评论 -
sonarqube配置全指南,集成阿里巴巴p3c规范
**环境准备 ** 内置数据库 Sonar安装成功后,默认内置H2数据库,用于记录单次的扫描结果,对同一个project重复扫码,会覆盖之前的扫描记录,所以H2 数据库只应用于测试,不可以用于生产环境,那如果你是想玩玩,不想长期扫描你的项目,可以不必配置数据库 自定义数据库: OracleSQL Server(只支持SQ...转载 2021-03-31 14:14:06 · 5029 阅读 · 0 评论 -
Json传输BigDecimal类型数据时候丢失无用0解决方案
前言在公司某次订单上区块链时候通过http形式传输数据到区块链中心,数据是以Json字符串形式传输,但是区块链中心接收到的数据(BigDecimal类型)丢失了无用的0,导致两边签名校验一直失败。记录该痛点,毕竟当时定位问题就花了近一天时间,比如0.000000数据通过json格式http传输到对方那边就变成了0;100.0000500000,则变成了100.00005。解决分析解决方式两个思路:要么在传输前将BigDecimal转换成String类型的数据,因为双引号包裹住的数据一定不会被转换舍原创 2020-11-26 23:46:04 · 5952 阅读 · 0 评论 -
Swagger使用配置详解
Swagger学习Swagger项目公司一直在使用,没时间整理下,现在抽空做个记录,方便以后查看。Swagger是最受欢迎的RestFul api文档生成工具之一。可以直接类上方法上或者字段上进行注释,方便开发者查看。跟随项目启动,可以很好的进行测试。更多Swagger信息大家可以自行百度,下面直接进入正题:代码奉上–maven依赖 &lt;!-- Swagger2 --&...原创 2018-07-17 16:29:44 · 6804 阅读 · 0 评论 -
适配器模式和装饰者模式
设计模式在面向对象程序设计中,我们把经常会反复的遇到相同的问题,于是我们把这个问题集中抽象出来,用一种通用的方法进行处理,这种通用的方式就是设计模式。适配器模式适配器模式指的是把两个不想连的接口通过某个类连接起来。例子:比如我的小米笔记本电脑没有一个插接网线的接口,这个时候网线和电脑是没法连在一起的,然后我买了一个网线转接口。这时候通过转接口我的网线和电脑就可以连接起来了。 装饰...原创 2018-05-30 14:21:34 · 591 阅读 · 0 评论 -
单例设计模式
一直对设计模式很模糊,虽然项目中运用到了,但是很难真正说清什么是设计模式。这一节主要讲的是单例设计模式在一个类中只有一个类的实例(构造函数是私有的),这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。主要作用对象是:一个全局使用的类频繁地创建与销毁。懒汉(线程不安全)/** * @author xieyong * @descripti...原创 2018-05-29 18:18:14 · 171 阅读 · 0 评论 -
面试总结(随笔)
2018-02-25,某医疗互联网1.自我介绍。 2.介绍简历中的项目 扯到一个发布动态的问题,然后直接问微博这样的多线程情况下怎么整,好吧,没考虑到这样的情况。3.JVM内存模型 java堆:Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分...原创 2018-05-25 17:01:08 · 263 阅读 · 0 评论 -
dubbo简单入门案例(回顾)
项目目录结构maven所依赖的jar<dependencies> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> ...原创 2018-05-25 15:03:07 · 383 阅读 · 0 评论 -
日志记录(基于配置)
maven依赖<dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.7.6</version>原创 2018-03-28 14:15:53 · 226 阅读 · 0 评论 -
springboot整合spring-data jpa
springboot整合sprign-data-jpamaven依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st...原创 2018-03-28 13:41:01 · 1376 阅读 · 0 评论 -
@NotNull @NotBlank@NotEmpty区别(看源码说话)
写在前面在标准点儿开发环境中,前端传递参数到后台时候往往需要js之中判断一遍,但是同时,我们后端也不能不做任何处理,也同样对前端传递过来得参数进行判断(空判断,参数长度判断,参数正则格式判断)。这样在我们前后端分离时候与前端对接接口才能更好得避免错误。网上其他博客也对这几个注解做出了使用场景区别划分,但是很多都是瞎扯,作为程序员我们还是看源码说话。@NotNull @NotBlank@No...原创 2018-08-04 15:58:19 · 5331 阅读 · 13 评论 -
springcloud使用Eureka和Feign消费
前言网上的案例大部分都是hi~hi name什么的,博主实在是感觉太无聊了,毕竟最终我们都是得为底层数据库服务的。于是花了一上午时间写了个springcloud+mysql+mybatis-plus集成的简单例子(mybatis-plus纯属装逼的,同学们也可以使用mybatis)。目录结构说明eureka-base被我当做是注册中心里面什么都没有,只是当做注册仓库一样,其他服务都...原创 2018-10-25 14:42:13 · 1352 阅读 · 2 评论 -
java通过反射和JDOM解析xml成对象
前言在工作中有次遇到过webservice传递数据,以xml的格式。字段根据接口来设计,但是我们实体类是自动生成打了jar, 所以对解析时候造成了困难。弄了好久最后选择使用JDOM+反射机制解析。成功执行,总算是弄好了这个大问题 下面是代码 maven依赖 dependency> groupId>jdomgroupId>原创 2018-01-22 17:13:51 · 1724 阅读 · 0 评论 -
用redis实现支持优先级的消息队列
为什么需要消息队列系统中引入消息队列机制是对系统一个非常大的改善。例如一个web系统中,用户做了某项操作后需要发送邮件通知到用户邮箱中。你可以使用同步方式让用户等待邮件发送完成后反馈给用户,但是这样可能会因为网络的不确定性造成用户长时间的等待从而影响用户体验。有些场景下是不可能使用同步方式等待完成的,那些需要后台花费大量时间的操作。例如极端例子,一个在线编译系统任务,后台编译完成需要30分...转载 2019-02-14 10:21:30 · 896 阅读 · 0 评论 -
activityMq初步使用
前言activityMq的作用以及安装这里不做讲述,只是记录一下简单的使用。springboot+mq依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-activemq&原创 2019-02-15 16:04:05 · 1392 阅读 · 0 评论 -
初识阿里Arthas监测工具
写在前面最近项目组上针对服务器的资源消耗,特别是java这块的堆栈内存,JVM指数(新生代,老年代,存活区区域…)内存消耗之类的需要进行监控(当然主要的还是运维这块的对服务报警监控),以便项目成员能够及时找出项目上回出现的问题,于是引入了阿里开源的阿尔萨斯工具(Arthas)。什么是Arthas,它能帮我们做什么Arthas 是基于 Greys 进行二次开发的全新在线诊断工具,利...原创 2019-01-28 11:56:43 · 3188 阅读 · 0 评论 -
关于阿里OSS大文件上传504超时问题
前言这里记录博主一个痛点,后端上传大文件到阿里OSS,前端总是返回504 getAway timeOut错误。错误信息感言博主找了运维修改服务器的请求超时设置,因为网上博文写了可能是nginx的超时设置的60秒太少了。后来又找了前端,让他设置的超时时间大点儿。但是最后还是一样的错误。但是看我后端返回给前端的数据日志,没问题啊,上传成功。很尴尬,随后又打印出上传时间,有些久。之后...原创 2019-01-25 13:09:48 · 8959 阅读 · 3 评论 -
Mac使用Jmeter压测
官网下载Jmeter解压包https://jmeter.apache.org/解压打开open ~/.bash_profile添加PATH=$PATH:/usr/local/mysql/bin;/Users/xy/Downloads/apache-jmeter-5.0/bin比如我的加在后面分号隔开刷新文件source ~/.bash_profile开启压测进入apache-j...原创 2019-01-18 11:51:17 · 5393 阅读 · 0 评论 -
使用swagger2markup导出API接口文档
swagger整合springboot先来几张swagger2markup导出文件图一、 maven依赖添加<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>...原创 2018-12-29 21:10:43 · 2609 阅读 · 3 评论 -
Mac上mvn命令出现The JAVA_HOME environment variable is not defined correctly.
前言在mac电脑上使用mvn命令一直报:The JAVA_HOME environment variable is not defined correctlyThis environment variable is needed to run this programNB: JAVA_HOME should point to a JDK not a JRE明明你妹配置错,但是还是报错...原创 2018-11-16 14:36:16 · 6876 阅读 · 9 评论 -
抽象类和接口
浅谈抽象类和接口 在面试中相信大家经常被问到接口和抽象类的区别,使用场景在这里希望能给大家留下深刻印象1、接口中都是抽象方法,而抽象类之中既可以有实例方法也可以有抽象方法。2、接口中的变量都是public static final(无论修饰不修饰),而抽象类之中任何修饰符都行。3、一个类可以实现多个接口,但是只能继承一个抽象类。4、(面试官比较喜欢问的)抽象类可以实现接口...原创 2018-03-27 17:03:12 · 188 阅读 · 0 评论 -
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
记录一个maven项目启动报错信息通常情况下,我们使用maven构建项目。然后该引用的 包都已经引用了 但是启动tomcat的时候还是报错了,说找不到包,如下错误:四月 14, 2018 3:40:26 下午 org.apache.catalina.core.StandardContext listenerStart严重: Error configuring application...原创 2018-04-14 15:50:55 · 265 阅读 · 0 评论 -
几种自己使用的模板引擎记录
jsp常用语法el和jstl表达式取值:${data.name}遍历: forEach items="${data}" var="key"> ${key.name} forEach> 时间格式化"fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> fmt:formatDate value="${XXX.da原创 2018-01-26 16:48:20 · 1596 阅读 · 0 评论 -
java读取properties配置文件转码
前言在项目中经常或遇到读取配置文件操作,有时候配置文件value含有中文经常乱码,这里提供正确读取方式。 eclipse修改properties文件编码 public static Map<String, Object> getMap(){ try { return getAllProperties(file_path); } catch...原创 2018-01-25 16:17:30 · 1005 阅读 · 0 评论 -
tomcat映射路径配置
tomcat请求头配置在使用postman测试的时候(携带参数)我们经常会发现浏览器一个错误:request header is too large,意思是请求头字段太长了。在这里需要配置下tomcat请求头长度。 tomcat-service.xml Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"原创 2018-01-08 21:23:33 · 8596 阅读 · 0 评论 -
时间格式化工具类
前言平时间开发多多少少遇到时间比较难转换或者说是忘了怎么转换的类型,这里做一个工具类记录方便以后自己查找。格式化时间package com.yun;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;原创 2018-01-07 12:45:51 · 502 阅读 · 1 评论 -
使用cxf整合spring发布webservice
前言在工作中有些公司是会使用较老的发布方式来对外发布接口,比如webservice,这里介绍的是使用spring 整合cfx发布webservice提供对外接口给其他公司(或别人)使用。cxf也是目前最流行的一种发布webservice方式。所需要的jar(因为临时写的,只是svn上截图下来的) application.xml配置beans xmlns="http原创 2018-01-07 11:39:50 · 386 阅读 · 0 评论 -
spring session记录
spring session入门 http://blog.csdn.net/xiejx618/article/details/42919327Spring Session的简单搭建与源码阅读 https://www.cnblogs.com/nick-huang/p/6986824.html原创 2018-01-12 21:06:03 · 259 阅读 · 0 评论 -
Layui文件上传(java)
Layui文件上传的一些参数,这里不过多介绍,详情可看Layui文件上传参数设置,这里主要介绍【springMVC】上传文件单文件上传springmvc.xml加入配置原创 2018-01-03 22:46:16 · 35067 阅读 · 30 评论 -
数据库连性池性能测试(hikariCP,druid,tomcat-jdbc,dbcp,c3p0)
摘要:本文主要是对这hikariCP,druid,tomcat-jdbc,dbcp,c3p0几种连接池的详细的功能和性能测试对比,通过这次测试对目前主流的一些连接池做一个全面的对比,从而给业务系统一个最佳的推荐。而唯品会venus-data支持三种连接池DBCP、C3P0、DRUID,其中C3P0作为默认的连接池。因此需要针对现状,研发一种分布式数据库连接池。测试结果性能方面 h转载 2018-01-12 15:10:15 · 694 阅读 · 0 评论 -
从cpu和内存来理解为什么数组比链表查询快
一个常见的编程问题: 遍历同样大小的数组和链表, 哪个比较快? 如果按照大学教科书上的算法分析方法,你会得出结论,这2者一样快, 因为时间复杂度都是 O(n)。 但是在实践中, 这2者却有极大的差异。 通过下面的分析你会发现, 其实数组比链表要快很多。 首先介绍一个概念:memory hierarchy (存储层次结构),电脑中存在多种不同的存储器,如下表CPU 寄存器 – immedi转载 2018-01-12 00:11:57 · 1751 阅读 · 0 评论 -
Layui前后台交互数据获取java
Layui简介Layui是一款适用于后台程序员的UI框架,学习成本低。Json数据格式交互前后台,并且也相当适用单页面开发。有兴趣的朋友可以看看layui官网。Layui前后台数据交互layui有自己的一套特定的数据格式交互(这很重要),必须参数code:0,msg:“”,count:数据size(int),data:”数据List”。一般我们选择封装返回接收类。 Layui前台js请求数据 其原创 2018-01-01 09:32:27 · 56698 阅读 · 13 评论 -
Lombok插件的安装与使用
lombok介绍lombok能够极大的简化消除我们写的代码,使用注解的方式省略get set toString….等方法,使得代码看起来更加的美观。lombok是在编译时候生成对应的方法的,所以在性能上面大家完全不用担心,是与我们写上get set方法是一样的。它自带了这些标签lombok使用(常用的几个注释) 1 @Data 注解在类上面,省略所有的get set原创 2018-01-01 10:18:26 · 23232 阅读 · 0 评论 -
通过spring aop记录日志信息(异常)
前言在日常开发中,我们经常需要对接接口数据,日志记录用户操作,如果单纯的使用手动记录的话不仅会让代码看起来不美观还增加了很多的工作量。但是如果使用aop切面在不影响业务情况下进行日志访问记录的话就省事多了。代码实体类Log.java@Datapublic class Log { private Integer id; private String userna原创 2018-02-03 20:55:02 · 885 阅读 · 0 评论