- 博客(131)
- 收藏
- 关注
原创 Jenkins部署失败:JDK ‘jdk1.8.0_381‘ not supported to run Maven projects
Jenkins部署报错:JDK ‘jdk1.8.0_381’ not supported to run Maven projects提示使用的jdk有问题,启动的jdk版本不能满足项目启动。登录Jenkins管理页面,系统管理——全局工具配置——JDK安装配置满足条件的JDK版本,保存配置,重新部署服务。
2023-10-24 16:58:07
2581
1
原创 对codeReview到底要明确什么?
什么不是codeReviewCode reviews 不应该承担发现代码错误的职责。Code Review主要是审核代码的质量,如可读性,可维护性,以及程序的逻辑和对需求和设计的实现。代码中的bug和错误应该由单元测试,功能测试,性能测试,回归测试来保证的(其中主要是单元测试,因为那是最接近Bug,也是Bug没有扩散的地方)Code reviews 不应该成为保证代码风格和编码标准的手段。...
2019-12-28 10:48:27
607
1
原创 15分钟“拿下”23个设计模式
10分钟是否可以拿下23个设计模式呢?是否是很怀疑,大家暂且放下猜测,让我们一起探讨一下如何才能用10分钟拿下设计模式!23个设计模式按照每个模式的特点通常会将其分为3大类:创建型:结构型:行为型:...
2019-09-26 15:22:17
597
1
原创 java自定义注解和使用
文章目录前言手写注解注解类计算类测试类输出结果前言上一篇对注解是什么和其原理做了简单的介绍(传送门),本篇手写实现一个简单的注解示例。手写注解需求: 一个计算类具有加减乘除方法,当执行方法时要检查其有没有使程序产生异常,如果有则将异常信息显示。注解类@Retention(RetentionPolicy.RUNTIME)public @interface Check {}计算类...
2019-09-25 20:25:57
610
原创 揭秘如何又快又好的读书
文章目录前言读书难在哪?根源误区高手的读书观又快又好的秘密前言读书是我们获取知识的一种重要的途径,无论是在学习专业知识,还是日常非专业书籍的阅读都会遇见相似的问题:读书很慢,感觉到很难,不理解,都看懂了但忘的很快,一本书看很久等等诸多问题,往往是想通过一本书有所收获,却感觉收效甚微。那么问题出在哪里了呢?读书难在哪?根源没有方法没适当的训练没有坚持误区高手的读书观又快又好...
2019-09-13 16:15:14
617
原创 动态代理实现AOP-反射的应用
要理解AOP需要这么几个步骤:反射——invoke()——代理——AOP。在上一篇已经介绍了基础的反射是什么,和常见的API是如何使用的在此基础上,说明一下invoke()方法的使用。invoke方法invoke方法用于调用运行时类的指定结构。通过Class类的getMethod(String name,Class…parameterTypes)方法取得一个Method对象,并设置此方...
2019-09-09 21:37:51
1204
原创 一文理解反射机制—基础
概述为什么需要反射在解释反射前先认识一下java的静态语言是什么。动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。静态语言与动态语言相对应的,运行时结构不可变...
2019-09-09 15:47:39
644
原创 Error:Internal error: (java.util.concurrent.ExecutionException) java.lang.IllegalArgumentException:
No enum constant org.jetbrains.jps.model.java.LanguageLevel.JDK_11Error:Internal error: (java.util.concurrent.ExecutionException) java.lang.IllegalArgumentException: No enum constant org.jetbrains.j...
2019-09-07 16:53:59
11237
2
原创 设计模式概论
23种设计模式分为3大类:创建型5个:工厂方法模式、抽象工厂模式、原型模式、建造者模式、单例模式结构型7个:外观模式、适配器模式、组合模式、代理模式、装饰模式、桥接模式、享元模式行为型11个:观察者模式、中介者模式、职责链模式、状态模式、命令模式、模板方法模式、策略模式、迭代器模式、解释器模式、备忘录模式、访问者模式...
2019-09-05 11:43:57
274
原创 一文搞懂JVM--HotSpot虚拟机对象
java对象创建过程检查类加载为新生对象分配内存指针碰撞空闲列表并发问题–CAS并发问题-TLAB初始化为零值执行init方法
2019-08-29 21:27:59
357
原创 多级缓存之本地热点缓存实现(guava cache)
文章目录多级缓存缓存设计原则缓冲方式本地热点缓存Google Guava 工具类guava优点guava核心库使用Guava cachepom文件引入依赖使用多级缓存在提高系统性能时,使用了多级缓存的理念,尤其是对于热点数据的访问,如何能够在保证服务稳定性的前提下为更多的用户提供良好的用户体验缓存起到了尤为重要的作用。缓存设计原则使用快速存取的设备,所以尽量使用内存将缓存推到离用户最近...
2019-08-22 10:40:26
1579
2
原创 【java基础】注解详解
文章目录是什么元注解内置注解工作原理是什么元注解内置注解工作原理最后我们再总结一下整个反射注解的工作原理:首先,我们通过键值对的形式可以为注解属性赋值,像这样:@Hello(value = “hello”)。接着,你用注解修饰某个元素,编译器将在编译期扫描每个类或者方法上的注解,会做一个基本的检查,你的这个注解是否允许作用在当前位置,最后会将注解信息写入元素的属性表。然后,当你进行...
2019-08-22 09:00:52
407
转载 Redis make编译报错解决方法
转载地址:https://my.oschina.net/u/2289161/blog/832358在linux环境下安装redis,在make编译步骤报如下错误信息:[root@centos6 redis-3.2.6]# makecd src && make allmake[1]: Entering directory `/var/redis-3.2.6/src’CC a...
2019-08-19 15:49:08
2192
原创 java断言机制(assert)
概述断言使用的时候不是很多,测试时会使用,总的来说断言还是要慎重。在C和C++语言中都有assert关键,表示断言。在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略...
2019-08-18 12:55:40
1288
原创 Linux下彻底卸载mysql
查看mysql安装情况查看安装情况:rpm -qa|grep -i mysqlmysql-connector-odbc-5.2.5-8.el7.x86_64mysql-connector-java-5.1.25-3.el7.noarchperl-DBD-MySQL-4.023-6.el7.x86_64查看mysql服务运行情况查看mysql服务运行情况:service mysqld...
2019-08-11 10:19:42
1569
1
原创 调优之容量问题
在经过Tomcat、keepAlived参数调优之后,还是会发现相应时间变长,反应时间变长,TPS上不去的情况。那么我们改如何进行优化呢?对于单台web容器的性能上限我们要掌握线程数量:4核cup8G内存单进程调度线程数800-1000以上后就会花费巨大的时间在cup调度上等待队列长度:队列做缓冲池使用,但也不能无限长,消耗内存,出队入队也会消耗CPU在测试的过程中我们会发现大量的资...
2019-08-10 16:05:20
344
原创 Tomcat调优之记
使用jmeter进行测试,发现进程数到达一定的数量之后就不会在变化了。[root@localhost ~]# pstree -p 3793 |wc -l219[root@localhost ~]# pstree -p 3793 |wc -l219[root@localhost ~]# pstree -p 3793 |wc -l219[root@localhost ~]# pstre...
2019-08-10 15:50:33
1183
原创 -bash: pstree: 未找到命令--CentOS
pstreepstree是以树结构显示进程(–display a tree of processes)、。其优点在于您可以立即找出某进程的父进程:当您想要终止整个进程系列而且其中存在了许许多多的下属分支进程,您只需终止最上层的进程即可。您可能会需要使用 -p 选项显示每个进程的 PID,以及 -u 选项来显示启动该进程的用户名。一般来说,这一树结构比较长,您就需要这么执行 pstree:// ...
2019-08-10 14:56:31
4357
2
原创 后端统一异常处理
异常处理是对Exception的统一管理,当程序出现问题会将出错信息打印出来,但是很多时候我们得到的是很多的堆栈信息和部分可以直接进行判断的信息,通过自定义的封装可以对异常信息进行统一管理,返回我们可以判断的异常信息。定义CommonError接口package com.miaoshaproject.error;/*public interface CommonError { pu...
2019-08-05 17:19:00
1208
原创 Controller统一返回值处理
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-08-05 16:54:30
2885
1
原创 Servlet是什么
感谢大神:https://www.ibm.com/developerworks/cn/java/j-lo-servlet/http://www.360doc.com/content/16/1203/18/22355405_611594605.shtml
2019-07-28 21:27:52
385
2
原创 Spring MVC 执行过程详解
文章目录Spring MVC简述体系概述处理请求的执行过程Spring MVC简述大部分Java应用都是Web应用,展现层是Web应用不可忽略的重要环节。Spring为展现层提供了一个优秀的Web框架–Spring MVC。和众多其他的Web框架一样,它基于MVC的设计理念。此外,它采用了松散耦合、可插拔的组件结构,比其他的MVC框架更具扩展性和灵活性。Spring MVC通过一套MVC注解,...
2019-07-17 16:23:16
530
3
原创 log4j的properties配置详解
文章目录前言参数详情①配置根Logger,其语法为:②配置日志信息输出目的地Appender,其语法为:ConsoleAppender选项属性FileAppender选项属性DailyRollingFileAppender选项属性RollingFileAppender选项属性③配置日志信息的格式(布局),其语法为:HTMLLayout选项属性PatternLayout选项属性XMLLayout选项...
2019-07-14 08:54:02
1124
2
原创 Spring的IOC和DI
这里写自定义目录标题IOC概念和Spring中的IOCSpring中基于XML的IOC环境搭建ApplicationContext的三个实现类:核心容器的两个接口引发出的问题:ApplicationContext: 单例对象适用BeanFactory: 多例对象适用Spring对bean的管理细节创建bean的三种方式第一种方式:使用默认构造函数创建。第二种方式: 使用普通工厂中的方法创建对象...
2019-06-23 19:52:55
346
5
原创 MyBatis中if标签正确使用方法(Integer类型)
文章目录场景尝试一尝试二尝试三原因场景持久层:MyBatis组合查询一组数据,字段有:String id,String name ,Integer status。由于三个字段都可能为空,所以mapper文件中这样写的:SELECT re.id, re.name, re.status FROM tj_regis...
2019-06-12 16:31:27
6640
7
原创 IDEA 清除无效的import
项目中有一些无用的包可使用快捷键Ctrl+Alt+O来清除,那么怎么样自动处理呢?打开Settings——General——Auto Import问题设置之后确实生效了,当前页面的多余包没有了,但是没有及时检查是不是其他的也没有了,之后关掉项目后,再次打开发现还有多余的包,而且设置都是正确的,但是不生效,好苦恼,各位是否遇到了这种情况,欢迎解答~~...
2019-05-16 21:12:21
3381
4
原创 分布式服务治理-Dubbo常用配置
文章目录多版本支持主机绑定集群容错服务降级配置优先级别什么是SPI多版本支持在多版本升级的时候,特别注意版本的兼容性。 设置不同版本的目的,就是要考虑到接口升级以后带来的兼容问题。在Dubbo中配置不同版本的接口,会在Zookeeper地址中有多个协议url的体现。注册者配置消费者配置主机绑定在发布一个Dubbo服务的时候,会生成一个dubbo://ip:port的协议地址,那么这...
2019-05-15 11:40:35
516
4
原创 Unable to open debugger port (127.0.0.1:64812): java.net.SocketException "socket closed
描述:安装了jRebel插件感觉电脑反应有些慢,所以尝试取消使用,但IDEA重启之后就无法debug启动,提示信息:“Unable to open debugger port (127.0.0.1:64812): java.net.SocketException "socket closed(无法打开调试器端口(127.0.0.1:64812):java.net.SocketException“...
2019-05-14 12:39:30
3149
3
原创 磨刀不误砍柴工(三)-工具调优-IDEA启动速度
背景硬件:240固态硬盘、12G内存。IDEA:启动时间 1分钟(手工测量误差2秒)电脑的硬件更新已经很久了,记不得以前IDEA的启动时间,只是感觉IDEA启动的时间有点长,就上手了。...
2019-05-12 11:47:44
813
7
原创 分布式通信框架-RMI原理
文章目录什么是RPCJava RMI什么是RPCRPC (Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源,对于客户端来说,传输层使用什么协议,系列化、反序列化都是透明的。在架构演变过程中,随着网站系统用户量的增加、业务功能的扩展,由集中式走向分布式,应用被拆分,在...
2019-05-10 09:39:19
359
5
原创 磨刀不误砍柴工(二)-日常使用工具整理
文章目录思路日常工作、学习、使用的工具思路本篇是对自我使用工具的一个整体性整理,在整理的过程中会通过构建知识网络不断的丰富整个体系,整体上会有多个不同分类,表现形式也会多样化,但每个分类中都会以化繁为简的思路来建立本模块的索引,保证结构化。日常工作、学习、使用的工具...
2019-05-09 10:57:53
949
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人