- 博客(86)
- 收藏
- 关注
原创 Java Date类 日期、毫秒、天数之间的各种转换
1,将毫秒转换为日期import java.text.SimpleDateFormat;import java.util.Calendar;public class demo1 { /** * @param args */ public static void main(String[] args) { // SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); long nowTime =
2020-06-06 14:21:03 1194
原创 使用jvisualvm远程监控服务器jvm步骤详解
1、前言开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(...
2020-03-29 09:53:56 2293
原创 Java生产环境下性能监控与调优详解完整学习笔记
本文主要内容包含 JVM的参数类型 jinfo & jps(参数和进程查看) jstat(类加载、垃圾收集、JIT 编译) jmap+MAT(内存溢出) jstack(线程、死循环、死锁) JVisualVM(本地和远程可视化监控) 使用 BTrace 进行拦截调试 Tomcat 性能监控与调优 Ng...
2020-03-29 09:53:11 599
转载 JAVA中的值传递和引用传递
首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。更何况,要想知道Java到底是传值还是传引用,起码你要先知道传值和传引用的准确含义吧?可是如果你已经知道了这两个名字的准确含义,那么你自己就能判断Java到底是传值还是传引用。这就好像用大学的名词来解释高中的题目...
2020-03-29 09:52:25 250
原创 《Java生产环境下性能监控与调优》课程的参考文档链接
课程《Java生产环境下性能监控与调优》第二章jdk8工具集https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.htmlTroubleshootinghttps://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/jpsh...
2020-03-07 21:34:53 292
原创 zookeeper源码下载和导入到IDEA
一、到github上下载源码,地址为:https://github.com/apache/zookeeper二、因为zookeeper是ant构建的所以下载ant,地址为:https://ant.apache.org/bindownload.cgi三、配置ant环境变量,与配置jdk一样,打开cmd输入 ant -version 出现下图,表示安装配置成功。四、使用命令在解压后的zo...
2020-02-10 15:44:07 1532
转载 如何减少接口响应时间
我们在开发过程中,当然是希望自己项目接口的响应时间越短越好,至少我看着自己开发出来的代码,都是毫秒级的响应,会有一种自豪感;那么我们项目做了哪些优化,和大家分享分享。优化代码先从小处着手,代码写的好坏,直接影响到接口的响应速度;当然这里也不可能展开详谈每一行代码怎么写,主要还是说一下措施: 代码规范:我经常会以自己的标准去衡量其他开发人员代码的好坏,虽然我也不是什么大牛,但毕竟做了十...
2019-11-27 18:17:39 708
原创 Maven总结
一、前言现在的Java项目中,Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的...回想一下,当你新到一家公司,安装完JDK后就会安装配置Maven,很大可能性你需要修改settings.xml文件,比如你会...
2019-11-27 18:13:54 205
原创 减少接口的响应时间
我们在开发过程中,当然是希望自己项目接口的响应时间越短越好,至少我看着自己开发出来的代码,都是毫秒级的响应,会有一种自豪感;那么我们项目做了哪些优化,和大家分享分享。优化代码先从小处着手,代码写的好坏,直接影响到接口的响应速度;当然这里也不可能展开详谈每一行代码怎么写,主要还是说一下措施: 代码规范:我经常会以自己的标准去衡量其他开发人员代码的好坏,虽然我也不是什么大牛,但毕竟做了十...
2019-11-21 17:36:32 328
原创 Rides或者Zookeeper实现分布式锁
一、常规锁会造成什么情况? 二、分布式锁怎么去处理? 三、分布式锁的实现有哪些? 四、在Zookeeper中如何加锁? 首先,分布式锁和我们平常讲到的锁原理基本一样,目的就是确保在多个线程并发时,只有一个线程在同一刻操作这个业务或者说方法、变量。在一个进程中,也就是一个jvm或者说应用中,我们很容易去处理控制,在jdk java.util并发包中已经为我们...
2019-11-21 16:26:48 313
转载 SpringBoot使用MockMvc进行单元测试
★MockMvc- SpringMVC单元测试的独立测试:一、简介为何使用MockMvc?对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,所以为了可以对Controller进行测试,我们引入了MockMVC。...
2019-11-21 14:59:49 529
原创 Java开发中使用枚举自定义异常
异常枚举类:public enum ErrorCodeEnum { SYS_ERROR("SYS_ERROR", "系统错误,请重试"), UNKNOWN_ERROR("UNKNOWN_SYS_ERROR", "未知的系统异常"), SERVICE_INVOKE_FAIL("SERVICE_INVOKE_FAIL", "服务调用失败"), ILLEGAL_AR...
2019-11-21 14:48:32 1166
原创 StringBoot--自定义处理器拦截器(HandlerInterceptorAdapter)实现登录校验
在后台接口开发中会有一类接口是需要做登录校验的,类似于生成订单,查看自己的订单列表等接口,都需要先判断用户是否登录.虽然可以在接口中进行判断,但是会让代码冗余,所以决定用自定义拦截器+自定义注解来完成这个功能自定义拦截器可以实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类,HandlerInterceptorAdapter适配器是对Han...
2019-11-19 17:22:10 991
原创 SpringBoot实现HandlerMethodArgumentResolver(自定义参数解析器)
对Controller层请求参数进行处理自定义注解@Documented @Target({ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface CommonParams { String[] params() default {}; }自定义参数解析器...
2019-11-15 19:01:25 1885
转载 List加载因子和扩容因子
原文转自http://www.cnblogs.com/xiezie/p/5511840.html这里要讨论这些常用的默认初始容量和扩容的原因是:当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低。加载因子的系数小于等于1,意指 即当 元素个数 超过...
2019-11-12 16:04:48 528
原创 jvm内存模型总结
对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。JVM内存结构由上图可以清楚的看到JVM的内存空间分为3大部分:堆内存 方法区 栈内存其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为Eden区、From ...
2019-10-29 09:39:56 257
原创 SpringMvc的设计模式
目录一.组件介绍二.Spring MVC执行流程三.简洁版本一.组件介绍DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。HandlAdapter:通过扩展...
2019-08-08 11:35:17 1547
原创 子线程运行执行10次后,主线程再运行5次,这样交替运行三遍
public class ThreadTest { public static void main(String[] args) { Bussiness bussiness = new Bussiness(); new Thread(new Runnable() { @Override public void...
2019-08-05 17:09:56 632
原创 使用两个队列模拟堆栈结构
队列a和bpublic class ArrayTest { public static void main(String[] args) { //array(); queueTest(); } //使用两个队列模拟堆栈结构 public static void queueTest(){ Queue<Stri...
2019-08-05 15:50:44 328
原创 统计重复元素出现次数(字符串和数组)
一、字符串:public class 重复元素计数 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(""); String str = sc.nextLine(); HashMap<Character, Integer...
2019-08-05 15:04:26 1209
原创 实现HashMap的排序
已知一个HashMap<Integer, User>集合, User有name (String) 和 age (int) 属性,请写一个方法实现对HashMap的排序功能,该方法接受HashMap<Integer, User>为形参,返回类型为HashMap<Integer, User>,要求对HashMap中的User的age倒序进行排序,排序时key==va...
2019-08-05 12:59:50 306
原创 斐波那契数列(JAVA实现)
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现...
2019-08-01 11:45:31 1447 2
原创 逆向工程中报错invalid解决方案
错误原因:编译时没有编译xml映射文件解决方案:在pom中加入以下配置 <!--可以将xml文件也编译--> <build> <resources> <resource> <directory>src/main/java</direct...
2019-07-17 13:14:21 423
原创 连接redis连接超时redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutEx
报错原因:linux的防火墙挡住了6379端口解决方法:一、关闭防火墙1、使用命令:systemctl status firewalld.service 查看防火墙状态2、执行后可以看到绿色字样标注的“active(running)”,说明防火墙是开启状态3、使用命令:systemctl stop firewalld.service 关闭运行的防火墙4、关闭...
2019-07-16 12:10:42 1299
原创 centos7安装redis时遇到的问题总结及安装步骤
目录一、问题总结1、通过wget下载的rpm文件解压时显示不是压缩类型文件(gzip:stdin:not in gzip format),试了多种方法没有解决,最后直接从redis官网上下载,可能是通过wget下载的源文件就有问题2、 进入解压后的文件夹使用make命令编译时报错gcc:未找到命令错误,或者显示CC adlist.o /bin/sh: cc: 未找到命令二、安装步骤...
2019-07-14 16:13:25 890
原创 linux(CentOs7)普通用户变超级用户使用su root 后不能输入密码
误区:不是不能输入密码,只是为了安全起见输入的密码不回显开始用的linux 中自己设置的用户名和密码正确的用户名为root密码为自己安装linux是第一次设置的密码...
2019-07-11 14:22:18 7661 1
转载 The POM for org.csource:fastdfs-client-java:jar:1.27-RELEASE is missing
报错原因为本地的maven仓库中没有fastdfs的jar包地址解决方法:1,首先去我的github上下载下来fastdfs的压缩包直接下载地址:https://github.com/wangwei216/fastdfs-client-java-master然后直接解压出来2,使用cmd命令行 使用cd命令走到到你自己下载到的目录下,然后使用mvn clean install...
2019-07-02 20:40:57 3886
原创 作用自定义的servlet开发模板,提升开发效率
一、示例在使用组件方式新建的servlet中,按ctrl+a全选然后输入serv然后alt+/自动补全二、servlet模板package ${enclosing_package};import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpSe...
2019-06-29 11:18:21 273
原创 ssm整合时的配置文件
一、web.xml1、配置监听器,用来扫描classpath:applicationContext-*.xml下面的各类配置文件<!-- 配置Spring的配置文件 去加载spring的配置文件 --> <listener> <!-- 默认是去WEB-INF下找 applicationContext.xml配置文件--> <li...
2019-06-28 21:02:55 382
原创 idea创建Javaweb工程Servlet时报错Error:(7, 53) java: 程序包javax.servlet.http不存在
缺少指定的环境:解决方法:一、选择project structure二、添加依赖三、选择Library 四、点击add select添加五、在dependencies中打勾选中然后应用更改...
2019-06-27 16:50:12 3758
原创 activiti部署报错 resource '*‘.bpmn'not found
错误:在网上找了一天的问题也没有找到解决方案最后还是通过自己找到解决的办法点击项目build path->configure build path点击source,将included与excluded都romove掉变成All各None再次运行结果正常打印,虽然不明白原理但好在解决了问题。...
2019-06-24 11:34:51 3459 2
原创 maven下文件夹变成灰黑色解决方案
选中src/test/java右键BuildPath->ConfigureBuildPath选择Source双击Containstestsource:yes之后其会变成Containstestsource:no然后apply将变灰文件夹都操作:选中src/test/java右键BuildPath->ConfigureBuildPath选择Sour...
2019-06-20 10:54:30 2788
原创 eclipse导入项目时,项目名出现红叉报错,并且无法run on server
1、编码问题:window->Preferences->General->Wrokspace->Text file encoding->Other 选utf-82、原项目使用的tomcat版本与当前tomcat版本不一致解决方法:window->Preferences->server->Runtime Environments 添加对应...
2019-06-19 12:45:56 2419
原创 JdbcTemplate功能与用法总结
一、引入jar包,导入log4j.properties二、步骤1、定义目标类,提供get,set,tostring方法2、编写目标类dao层接口public interface UserDao { int add(User user); int delete(Long uid); int update(User user); User queryById(Long u...
2019-06-19 12:22:49 4989
原创 AspectJ
一、简介AspectJ是一个基于Java语言的AOP框架 Spring2.0以后新增了对AspectJ切点表达式支持 @AspectJ 是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切面二、AspectJ通知类型三、开发步骤1、导包先引入Spring框架开发的基本开发包再引入Spring框架的AOP的开发包spring的传统AOP...
2019-06-18 20:57:36 1475
原创 Spring的AOP编程
目录一、AOP开发中的相关术语二、spring-aop编程三、spring配置一、AOP开发中的相关术语1. Joinpoint(连接点) -- 所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点 2. Pointcut(切入点) -- 所谓切入点是指我们要对哪些Joinpoint进行拦截的定义...
2019-06-18 20:01:04 232
原创 AOP的底层实现
一、Srping框架的AOP技术底层也是采用的代理技术,代理的方式提供了两种二、代理模式1、jdk动态代理2、CGLIB字节码增强一、Srping框架的AOP技术底层也是采用的代理技术,代理的方式提供了两种 1. 基于JDK的动态代理 必须是面向接口的,只有实现了具体接口的类才能生成代理对象 2. 基于CGLIB动态代理...
2019-06-18 19:25:31 3442
原创 Eclipse项目右键无法找到Java EE Tools选项问题解决方案
1、在Eclipse中菜单help选项中选择install new software选项2、在work with 栏中输入 Juno - http://download.eclipse.org/releases/juno进行搜索3、选择Web, XML, Java EE and OSGi Enterprise Development选项,然后选择,点击next,等待一会重启ecli...
2019-06-18 18:56:20 6929 7
原创 maven项目报错java.lang.ClassNotFoundException: org.springframework.web.filter.HiddenHttpMethodFilter
解决方法:右键project->properties ->deploy assembly ->add -> java build path entries -> maven dependencies -> finish
2019-06-15 14:25:46 1529
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人