![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA技术栈系列
故国春城2023
最好的老师是书,最好的学生是兴趣
展开
-
IDEA maven导入子模块不能转换成maven项目的解决方案
最近在做项目的时候,出现了一个奇怪的问题,当自己remove module之后重新添加module,module不能重新识别成maven项目了。分析思路:1、首先子模块之前是可以使用的,说明模块没有任何问题。2、操作重现#remove moudle->import module->出现问题3、结合实际查找问题环节(模块没有问题#难道是编译器的问题?)4、假设:maven项目不能识别,1、模块问题(排除),2、编译器问题?,难道没有识别文件5、remove moudle..原创 2020-05-11 10:28:05 · 2402 阅读 · 1 评论 -
Java注解最简易知识图谱-底层框架开发
原创 2020-03-13 13:58:40 · 164 阅读 · 0 评论 -
Java不是100%的面向对象
最近看到一篇外文,阐释了为什么java不是100%的面向对象,外文翻译如下:几年前,当我开始学习Java时,我知道Java遵循面向对象的编程范例,Java中的所有东西都是一个对象 - 一个String(在C中是一个char数组)或一个数组本身。但后来我发现人们在互联网上说Java实际上不是纯粹的面向对象,因为Java中的所有内容都不是对象;例如:所有基本类型(char,boo...翻译 2019-06-11 17:18:22 · 473 阅读 · 0 评论 -
Jetty服务器和Tomcat服务器选型区别
由于公司项目部署使用的Jetty服务器,由于以前使用webflux框架,使用NettyServer或者Tomcat服务器进行项目部署,所以总结下Tomcat服务器与Jetty的异同。首先先谈谈Tomcat与Jetty的相同点:1.Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。下面介绍的是Tomcat与Jetty区别:...原创 2019-06-30 00:08:49 · 792 阅读 · 0 评论 -
再出发---深入理解RESTful架构风格
REST 是属于 Web 自身的一种架构风格,是在 HTTP 1.1 规范下实现的。Representational State Transfer 全称翻译为表现层状态转化。Resource:资源。比如 newsfeed;Representational:表现形式,比如用 JSON、富文本等;State Transfer:状态变化。通过 HTTP 动作实现。理解 REST,要明白五个关键要素:...转载 2019-06-30 15:34:11 · 211 阅读 · 0 评论 -
缓存更新的Design Pattern
更新缓存的的Design Pattern有四种:Cache aside, Read through, Write through, Write behind caching,我们下面一一来看一下这四种Pattern。Cache Aside Pattern这是最常用最常用的pattern了。其具体逻辑如下:失效:应用程序先从cache取数据,没有得到,则从数据库中取数据,成功后,放到缓存...转载 2019-06-30 23:29:24 · 154 阅读 · 0 评论 -
mysql比较运算符导致Mapper文件运行报错解决方案
[1] 首先在编写mapper.xml的时候,涉及到时间范时间范围的区间变动,写完SQL语句后出现了一点小问题,简单记录下.select * from tableNamewhere createTime >= CONCAT(DATE_FORMAT(DATE_SUB(now(), INTERVAL 1DAY), '%Y-%m-%d'), ' 00:00:00'...原创 2019-07-19 15:50:25 · 529 阅读 · 0 评论 -
springboot读取jar包外的配置文件
有时候在项目交接的时候,可能对方对于一些配置项需要能够让运维人员进行配置,这里提供几种简单的思路[1].非springboot应用,如何读取外部配置文件:[1.1]文件的读取一定是通过文件流[1.2]文件的读取后解析,按照自己的预先格式解析即可,例如netty我们可以在外部配置好之后,通过Properties文件进行格式解析.[2].spring boot外部配置文件解...原创 2019-07-25 23:28:59 · 2625 阅读 · 0 评论 -
gradle打包时分离依赖jar和配置文件总结
很多时候我们在打包的时候可能不会使用springboot的默认的打包插件,可能需要手动打包,通常将所依赖的jar和启动应用程序进行分离.为什么这么做呢?打包分离依赖的jar及配置文件有以下几点好处:1.项目目录结构更加清晰.2.版本迭代过程中,只需要更新依赖的jar,而不需要更新全局依赖的jar,尤其是大型项目,打包本来就是一个耗时的工作,如果在将jar上传到服务器,尤...原创 2019-09-22 23:16:50 · 5098 阅读 · 0 评论 -
面试总结:java命令行main主类及其依赖的jar
面试官问,如何在java命令行中,运行Main及其依赖的jar。平常只是添加jar包,或者直接跑打包好的jar包,并没有对该类问题进行思考。1、一般运行包含主类的jar,可以使用如下命令:java -jar <jar-file-name>.jar2、如果java文件中没有相关的主类main,则可以使用如下方法,进行启动。java -cp app.jar com.x...原创 2019-06-11 16:39:45 · 1329 阅读 · 0 评论 -
The request sent by the client was syntactically incorrect. 异常处理
The request sent by the client was syntactically incorrect.解决方案:检查HTTP POST请求参数中是否有包装类型,删除包装类带参构造方法。原创 2018-08-05 01:06:39 · 130 阅读 · 0 评论 -
JVM老年代对象来源分析
1.新生代内存不足,分配担保的对象。2.如数组、大的字符串等超过-XX:PretenureSizeThreshold限定大小,即对象内存上限的对象。3.Survivor区中分代年龄达到参数-XX:MaxTenuringThreshold值时,默认值时15。...原创 2018-08-28 11:47:07 · 2844 阅读 · 0 评论 -
关于JDK的Server和Client模式的切换
折腾JVM时遇到的点,这里记录一下,首先查看下自己的JVM是以什么模式启动的,启动DOS窗口,通过java -version命令查看64位无法切换到Client模式的,默认只能工作在Server模式下,可以在JAVA_HOME\jre\bin目录下面发现只有server目录而没有client目录32位版本的JDK查看虚虚拟机信息时,可以看到HotSpot是默认是以Client模式...原创 2019-02-16 14:05:57 · 1084 阅读 · 0 评论 -
关键业务系统的JVM参数推荐(2018最新版)【转】
年更贴,因为两年里遇到的事情,一些想法变了。也补充了不少VJTools的内容,比如为伸手党们准备的jvm-options.sh。在关键的业务系统里,除了继续追求技术人员最爱的高吞吐与低延时之外,系统的稳定性与排查问题的便捷性也很重要。这是本文的一个原则,后面也会一次又一次的强调。 前言1,资料1. 学习开源项目的启动脚本是个不错的主意,比如ElasticSearch家的,Cassa...转载 2019-02-16 14:11:54 · 202 阅读 · 0 评论 -
通过JVM日志来进行安全点分析
许多事件都可能会导致JVM暂停所有的应用线程。这类暂停又被称为”stop-the-world”(STW)暂停。触发STW暂停最常见的原因就是垃圾回收了(github中的一个例子),但不同的JIT活动(例子),偏向锁擦除(例子),特定的JVMTI操作,以及许多场景也可能会导致应用程序暂停。应用程序线程可以被安全地停止掉的那个时间点,就叫做安全点。这一术语也通常用来指代SWT暂停。通常来讲GC...转载 2019-02-16 14:39:42 · 267 阅读 · 0 评论 -
Web Service常见术语
一、WSDL(web service defination language)1、对应一种.wsdl语言2、定义服务器端与客户端之间的传递请求和相应数据的一种格式。3、一个web service对应唯一的一个wsdl文档。二、SOAP (simple object access protocal)1、SOAP协议是基于HTTP和XML的协议,用于WEB上交换结构化的...原创 2018-09-09 00:33:56 · 271 阅读 · 0 评论 -
IM前后端WebSocket数据传输总结
项目背景:IM通讯,双方在线聊天,IM服务器进行数据转发。vue前端app登录成功建立websocket请求,后端map存储session并根据id进行消息实时推送。一、JAVA后端实现WebSocket:1、项目使用的是maven管理,pom中引入如下依赖,gradle直接复制粘贴,会自动转换。 <!--websock--> <dep...原创 2019-05-24 01:42:23 · 727 阅读 · 0 评论 -
WebView实践总结
前段时间有点android与h5交互的需求开发,考虑到自己的需求,所以选择webView作为中间层,实现双方通讯,下面是在实践过程中关于JNIBridge WebView的一些总结 首先我们知道android(Java)与js属于不同种类的语言,所以两种平台语言的通讯必须借助外力,例如我们最初学的桥接模式,或者适配器模式,都是通过中间层去转化而实现不同模式的适配,再例如现在很火的语...原创 2019-05-31 22:11:55 · 241 阅读 · 0 评论 -
Java中的优雅停机
1、什么是优雅关闭,主要是在程序关闭前,释放掉各种资源,包括各种TCP,Socket建立的线程资源,线程池创建未释放的线程资源,数据库连接资源等。//Java实现优雅关闭的逻辑代码.Runtime.getRuntime().addShutdownHook(Thread thread);注册回调函数2、首先从Runtime源码可以看出来,Runtime的私有构造函数,保证了加载的一致性...原创 2019-06-12 23:37:57 · 825 阅读 · 0 评论 -
JVM新生代与老年代区域发生分配担保的前提条件
【条件一】:[1] Eden区剩余内存空间不足以为新对象分配内存。通过JVM参数:-Xms -Xmx -Xmn限定新生代内存空间分配。Tip:[1] -Xms20m -Xmx20m参数限定初始化堆内存为20M(即jvm启动时,分配给堆的初始内存大小)和运行期间可允许扩展到的最大堆内存为20M。如果初始堆内存和最大堆内存一致表示堆内存不能扩展。[2] -Xmn10m...原创 2018-08-28 11:32:13 · 1251 阅读 · 0 评论