Java
文章平均质量分 61
_陈同学_
一颗搞Java的螺丝钉
展开
-
利用Redis分布式锁解决集群服务器定时任务重复执行问题
问题描述将带有定时任务的项目部署在单台机器上,完全没问题。但实际生产是两台集群服务器,项目部署上去发现定时任务的模块同时在两台机器上各执行了一遍,这将会导致数据问题。方案选择首先我想到了利用数据库的行锁来解决这个问题,发现需要改动原本的代码,且如果每增加一个任务在开发的时候都要注意行锁问题,是很繁琐的。因此PASS掉,然后还有一种方式是,只让任务在其中一台机器上执行,但是这种方式,过于依赖机器,如果当前执行任务的机器宕机了,就会有问题。最后考虑使用redis的分布式锁来解决这个问题,同时我希望在原创 2022-04-13 16:46:02 · 3638 阅读 · 0 评论 -
Java——Collections的emptyList、EMPTY_LIST详解与使用
前言:今天在看大佬写的代码的时候,结果集为空的情况,他返回的不是null,而是:return Collections.EMPTY_LIST;我们都知道返回null,很有可能造成空指针异常,可以使用emptyList或EMPTY_LIST就可以避免这个问题,除非你想捕获这个为空的信息我们在使用emptyList空的方法返回空集合的时候要注意,这个空集合是不可变的。空的集合不可以使用add方法,会报UnsupportedOperationException异常,看如下源码: public v原创 2021-02-24 16:21:46 · 2142 阅读 · 2 评论 -
Alibaba Java 2021 技术图谱——学习永无止境
今天看到阿里推送的java学习图谱:【Alibaba Java 2021 技术图谱全新上线】学Java,看这张图就够了!https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_9767998450.3.245a3c679DlkVt原文链接:ttps://developer.aliyun.com/article/781314?干货很多,也提供了一个很好的学习路线要学的东西真的太多了~...原创 2021-01-28 17:46:19 · 2045 阅读 · 0 评论 -
eclipse在java环境基础上配置C++环境(MinGW安装包+详细步骤)
前言在eclipse开发java的基础上,又不想再下一个c++的编辑器,如何实现java与c++的转换?博主整了两天,踩了好多坑,整理出来帮助大家第一步:在eclipse里下载CDT打开以后需要一点时间:搜索CDT,等待下载完成:第二步:下载MinGW并安装我之前一直在官网下,下了几次都没成功,朋友下了有缺省文件,我在网上找到了集成安装包,很方便:取用方式:微信搜索:松鼠技术站...原创 2020-03-17 20:56:03 · 1226 阅读 · 0 评论 -
C++与java语法的异同整理
文章目录C++中的虚函数和JAVA中的抽象方法区别C++虚函数与JAVA中抽象函数比较关于接口与抽象类:C++中的虚函数和JAVA中的抽象方法区别C++虚函数与JAVA中抽象函数比较1:java中没有虚函数的概念,但是有抽象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某个抽象类的子...原创 2019-05-04 23:05:07 · 3937 阅读 · 1 评论 -
【定时任务框架Quartz】(二)Quartz API、Jobs 和Triggers介绍
Quartz API在【定时任务框架Quartz】(一)Quartz入门与简单Demo搭建中我们其实已经提到了Quartz API的关键接口以及调度器Scheduler的生命期:接口含义Scheduler与调度程序交互的主要APIJob你想要调度器执行的任务组件需要实现的接口JobDetail用于定义作业的实例Trigger(即触发器)定义执行给定作业的计划的组件JobBuilder用于定义/构建 JobDetail 实例,用于定义作业的实例T原创 2020-09-28 11:23:01 · 810 阅读 · 1 评论 -
【定时任务框架Quartz】(一)Quartz入门与简单Demo搭建
一、什么是Quartz?Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态;作业管理 - 对调度作业进行有效的管理;拿火车票购票的例子来说,当你下单后,后台就会插入一条待支付的task(job),一般是30分钟,超过30min后就会执行这个job,去判断你是否支付,未支付就会取消此次原创 2020-09-24 14:28:46 · 596 阅读 · 0 评论 -
【Java】StringUtils的isEmpty()和isBlank()方法的使用和区别解析
首先我们先看这两个方法的使用:要使用它需要导入jar包:maven项目直接导入依赖即可地址:https://mvnrepository.com/artifact/org.apache.commons/commons-lang3平时见到用的比较多的是isEmpty()方法(因为最直白):isEmpty()方法的使用:String str="";if(StringUtils.isEmpty(str)){ System.out.println("这个字符串为空!");}isBlank原创 2020-09-23 14:54:39 · 2690 阅读 · 0 评论 -
【Redis】Redis的安装配置详细过程( Windows10 )
欢迎关注我的微信公众号:松鼠技术站换了新电脑啥都没装,有些东西的安装配置全忘记了,接这个机会整理出来安装Redis1、安装网址:https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100如果你是下载的msi文件,双击安装记得更改安装路径,尽量不要放在C盘2、启动服务命令打开cmd到redis的安装根目录输入:redis-server redis.windows.conf出现如下图:证明启动成功3、配置系统.原创 2020-09-07 23:09:29 · 638 阅读 · 1 评论 -
Assert断言的使用
欢迎关注我的微信公众号:松鼠小码农今天在看Mybatis-Plus的官方文档的时候,在快速开始的测试类中,大佬用了这么一个函数:Assert@RunWith(SpringRunner.class)@SpringBootTestpublic class SampleTest { @Autowired private UserMapper userMapper; @Test public void testSelect() { System.ou.原创 2020-08-06 17:07:18 · 774 阅读 · 0 评论 -
JVM虚拟机底层原理分析与性能优化思想
文章目录一、Java虚拟机内存模型一、Java虚拟机内存模型首先,我们可以看JDK的体系结构图:可以大致看到jdk的组成,有java language(java、javac等)、还有工具Tools(Java VisualVM、Deployment、interface、Libraries、Java Virtual Machine。JDK包含了JRE,关于这两者可以看: JDK、JRE和JVM到底是什么...原创 2020-07-14 15:52:00 · 506 阅读 · 0 评论 -
Maven的安装与配置详细过程
1.安装本地Maven进入官网:链接: https://maven.apache.org/download.cgi.点击download下载到本地:2.解压到指定的目录,配置环境新建一个MAVEN_HOME变量,并填入文件夹指定的地址在path中加:cmd打开终端,输入:mvn -version环境配置成功3.配置setting.xml文件(1)新建一个maven仓库repository(文件夹地址任意选择)我是在apache-maven-3.6.3的根目录下建的。(2)然后原创 2020-06-25 14:50:25 · 688 阅读 · 0 评论 -
为JDK自带的jvisualvm安装Visual GC插件
1.打开cmd,先查看jdk的版本2.输入jvisualvm回车,打开Java VisualVM3.点击工具-》插件-》可用插件找找里面有没有Visual GC,有的话就勾上,然后安装。很可能这个不行,因为听说安装插件的网站已经更新地址了,不过可以试试。如果出现安装失败,不要着急,接着向下看。4.点击下面的链接,找到自己JDK对应版本的插件下载地址,然后下载下来链接: https://visualvm.github.io/pluginscenters.html.建议收藏这个网站,因为其他的原创 2020-06-18 14:15:04 · 915 阅读 · 1 评论 -
两万字Java研发工程师实习面试HR提问整理(基础篇)
前言java研发工程师实习,面试大多是比较基础的问题,HR面试实习生更多的注重基础,一面一般是面试java相关基础,二面会涉及到项目,三面就是对公司,自己的职业规划方面的考量。一般是三面,大厂实习有四面五面,java学完了,感觉掌握了很多,也感觉问到问题又不能很好的回答出来,这就需要自己去整理知识点,系统的复习。本文整理的是HR常问问题以及我自己不能够很完整答出来的问题。希望能帮到大家。文章目录前言第一部分:java基础问题1.java的跨平台原理2.java面向对象的特征一、封装(类)二、继承三、多原创 2020-06-13 14:45:52 · 1504 阅读 · 1 评论 -
Struts:剖析Action接收请求参数的方式
文章目录前言1.通过Servlet来获取2.通过Action的属性的set方法注入3.通过Action的属性的set模型的形式注入4.通过Action模型驱动封装参数【最常用】这个过程struts内部是怎么做的呢?5.静态注入【少用】前言struts2实际上就是对表现层(view)的封装和优化,简单来说就是把一些复杂繁琐的工作为我们提交做好了,我们只需要按照它的模板来用我们以一个简单的登录案例...原创 2020-04-15 21:15:05 · 474 阅读 · 0 评论 -
Struts:修改struts的访问后缀(Action)
第一种方式:在struts.xml的配置文件中添加 <constant name="struts.action.extension" value="do"></constant>第二种方式:在src下创建struts.properties添加struts.action.extension=do注:如果这样配置会覆盖struts.xml的配置第三种方式:在we...原创 2020-04-06 23:22:30 · 377 阅读 · 0 评论 -
Struts的Action配置解析(简单&详细过程)
文章目录了解Struts21.配置Struts环境2.在struts中配置package和action3.新建一个类4.在WebConent下添加一个jsp页面启动Tomcat运行项目了解Struts2Struts2是Apache发行的MVC开源框架。注意:它只是表现层web(MVC)框架如图所示:Action其实就相当于servlet,我们用struts框架就相当于把之前的mvc三层整...原创 2020-04-06 23:08:52 · 1901 阅读 · 0 评论 -
Struts环境搭建(详细过程)
文章目录1.下载Struts2的开发包2.新建一个web项目并导入struts的jar包3.将Strust.xml配置到项目中4.配置Struts的过滤器5.Tomcat运行Web工程附录:对strust的jar包介绍1.下载Struts2的开发包方法一:进入官网下载官网链接: http://struts.apache.org.方法二:使用我已经下载好的资源包:搜索微信公众号:松...原创 2020-04-06 22:36:38 · 942 阅读 · 0 评论