Java
文章平均质量分 56
LwinnerG
这个作者很懒,什么都没留下…
展开
-
SpringBoot中LocalDateTime序列化与反序列化配置(异常解决)
问题异常信息:Invalid JSON input: Cannot deserialize value of type java.time.LocalDateTime from String “2021-7-21 15:21:13”: Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text ‘2021-7-21 15:21:13’ could not be parsed a原创 2021-07-21 13:52:10 · 2565 阅读 · 1 评论 -
Java生成随机数大概多少次会出现重复?(JDK1.8)
本文基于JDK1.8最近在项目中碰到一个做订单号的需求,甲方的意思是以字母开头,后边跟年份和6位流水号.我第一反应就是流水号用随机数生成,突然就想到一个问题,Java的随机数真的靠谱吗?六位数大概是十万级别,Java可以保证一万次不重复吗?带着疑问,我通过三种生成随机数的方式做了三个测试.1.利用Math.random()生成六位随机数测试 List<Integer> list=new ArrayList<>(); //记录计算次数原创 2021-06-08 18:44:48 · 3376 阅读 · 4 评论 -
Linux搭建禅道12.5.1(项目管理系统)
1.下载压缩包先到禅道官网下载禅道 本文以开源版为例.(根据自己Linux系统位数判断下载哪一个Linux查看系统位数的一个方法: 输入uname -m 返回X86_64就是64位)下载完成后利用XFTP或其它工具将安装包放到Linux服务器上或者直接在Linux服务器上利用如下命令拉取压缩包64位: wget http://dl.cnezsoft.com/zentao/12.5.1/ZenTaoPMS.12.5.1.zbox_64.tar.gz32位: wget http://d原创 2020-12-17 15:36:47 · 371 阅读 · 0 评论 -
Java使用SpringBoot实现简单的文件上传(上传文件到本地)
实现代码:(此处代码写在了Controller层 建议写在Service层,Controller只做调用) /*使用SpringBoot实现简单文件上传(上传至本地)*/ @RequestMapping("/upload") public String upload(@RequestBody MultipartFile file) throws IOException {//MultipartFile 接收前端传过来的文件 // 注意 前端传参的name要和Mul原创 2020-12-14 12:36:12 · 4468 阅读 · 2 评论 -
SQL语句条件判断之case when基本用法
在日常开发中有些需求我们无法避免的要在SQL语句中进行类似于Java中if判断的操作,那SQL语句是否可以满足呢?本文将介绍SQL条件判断关键字case when的基本用法基本语法case x when y then z else m end乍一看看不懂没关系,我们把它拆分开解释case x 意思就是设置一个参数,x可以是一个数据库字段,也可以是一个dao层传递的参数,也可以是一个固定值when y 意思就是给设定的x参数设置条件then z 就是当x满足y条件之后做的操作,类似于Ja原创 2020-12-09 14:18:24 · 8144 阅读 · 0 评论 -
SpringCloud启动报错 Cannot execute request on any known server 异常分析及错误排查
异常信息2020-11-04 08:32:36.278 ERROR 104 --- [nfoReplicator-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}com.sun.jersey.api.client.ClientHandlerException: java.ne原创 2020-11-04 08:54:23 · 1767 阅读 · 3 评论 -
浅读HashMap
什么是HashMap?HashMap是Java的一个集合容器. 用于存储Key-Value对HashMap的应用场景假定如下场景:记录张三,李四,王五三位同学的成绩.这时候我们有必要去做一个实体类内部包含姓名和成绩两个字段吗?没有必要的.完全可以利用HashMap.存入:Map<String,double> map=new HashMap();map.put("张三",60.0);map.put("李四",80.5);map.put("王五",79);取出:doubl原创 2020-10-24 19:59:31 · 487 阅读 · 2 评论 -
Redis缓存穿透“新杀招“:布隆过滤器Bloom Filter
场景分析这篇文章来讲述缓存穿透的补充解决方案.为什么要用补充来形容呢?在之前的文章中,我们提到缓存穿透的解决方案时,我是这么说的:关于缓存穿透,我们可以在用户访问数据库后将null值存入Redis来解决.那么这样就真的万无一失了吗??No No No!!!当然不是.我们设想如下的场景:某组织或某个人就是想干掉你的服务器,他写了一个这样的程序:定义n=-1;使用循环,每次循环n=n-1;然后每次循环都去利用n作为商品id访问你的数据库.他将这个程序放在了他所控制的许多个客户端中.那原创 2020-10-15 17:59:37 · 313 阅读 · 0 评论 -
Redis分布式锁的实现与解释
又是一个月黑风高的夜晚....在我翻阅自己文章的时候猛然发现我的一篇文章涉及到了`分布式锁`,而我并没有详细的解释分布式锁的实现方式,这怎么能行?这怎么可以?于是乎...我擦了擦键盘上的灰,按下了生锈的主机电源按钮....心里怀着"安得广厦千万间,大庇天下寒士俱欢颜!"的雄心壮志故事就这样开始了...在使用Redis作为缓存的时候,在高并发的场景下,我们需要考虑哪些问题又该如何解决呢?比如,在某一时刻,我们的缓存到期,而恰好,这个时候,这个数据的热度突然飙升,那我们的数据库该何去何从呢原创 2020-10-14 21:13:34 · 349 阅读 · 0 评论 -
Web应用开发中,Request与Response的概念及区别
Request与Response的共同作用就是客户机与服务机之间的数据传递.概念基本概念Request可以理解为对浏览器请求的封装.Response可以理解为对浏览器响应的封装二者的区别作用上Request的作用是转发,生成http请求信息,与客户端交互,收集客户端的数据如Cookies,表单数据(Form),或者收集服务器端的环境变量.Response的作用是重定向.用来生成Http响应信息,动态响应客户端请求,控制返回给用户的信息内容,并将动态生成相应.原理上Request:客户端可原创 2020-10-11 12:18:23 · 545 阅读 · 0 评论 -
Java实现对浏览器cookie的读写和删除.
Tips:本文末尾分享了一个可以立即使用的cookie工具类代码,如果想直接使用,可以拖到文件最后复制使用.如果对基本概念实在没有兴趣,可以先使用,使用的时候发现不明白的地方,再回头来看一些概念.不过还是推荐先熟悉概念再上手使用.基本概念什么是cookie?概念cookie在web开发中可不是引用它的原意"曲奇"的意思哦~在web开发中 cookie的含义是储存在用户本地终端上的数据 类型为小型文本型文件,用Java来说就相当于只支持String类型.属性name:cookie的名称原创 2020-10-11 12:03:32 · 6484 阅读 · 1 评论 -
Java基础编程题:求1+(1+2)+(1+2+3)+(1+2+3+4)+(...)+(1+2+3+4+....+100)的和
题目求1+(1+2)+(1+2+3)+(1+2+3+4)+(…)+(1+2+3+4+…+100)的和答案 int sum=0; for (int i=0;i<=100;i++){ for (int j=0;j<=i;j++){ sum+=j; } } System.out.println(sum);结果171700...原创 2020-10-10 12:10:08 · 4932 阅读 · 0 评论 -
简述Redis与Memcached的区别
Redis与Memcached都是比较优秀的缓存中间件.对于这两者的选择,我们可以根据情景的不同做出不同的选择.本文简述一下这两者的部分区别.如下数据类型方面Redis支持五种数据类型.(String,List,Hash,Set,SortedSet)而MemCached仅支持一种数据类型.(String)持久化方面Redis可以进行持久化操作Redis将数据存储于内存中,但也会定时的将数据存放到硬盘中.我了解到的存储到硬盘的方式有两种:RDB和AOFRDB:就是将数据创建一个快照,存储到硬原创 2020-10-10 11:44:00 · 321 阅读 · 2 评论 -
SpringBoot踩坑:项目将日期时间存入数据库时日期时间提前8个小时怎么办?
问题在我们利用new Date()获取当前系统时间或利用其它方式定义时间后,将数据存储到数据库时,发现成功添加,但是日期比我们项目中传入的日期提前了8个小时.这怎么办?解决方案在SpringBoot配置文件中配置spring.datasource.url时,设置serverTimezone参数为GMT%2b8如下所示spring.datasource.url=jdbc:mysql://ipaddr:3306/dbname?serverTimezone=GMT%2b8其中"%2b“即为”+"的意原创 2020-10-09 16:10:41 · 1422 阅读 · 2 评论 -
Java基础编程题:倒序输出九九乘法表
题目用for循环生成如下图所示的九九乘法表.答案利用双重for循环完成操作. for (int i=9;i>0;i--){ for(int j=i;j>0;j--){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(""); }输出结果:...原创 2020-10-08 21:02:02 · 6750 阅读 · 0 评论 -
Redis高并发常见问题:缓存穿透/缓存雪崩/缓存击穿的概念及解决方案
1.缓存穿透概念缓存穿透就是访问数据库中不存在的数据,高并发情况下或有人恶意的不停的访问该数据,导致请求打到数据库,直至数据库崩溃.比如我们在写项目的时候,商品的主键id很少为负数.那么可能有人就会不停的访问id为-1的商品.而这个商品又不存在,导致我们的数据库崩溃.解决方案这里我通常的解决方案是在一个请求打到数据库返回null值时,在redis中给这个商品的key存入一个empty数据.使后边的请求直接访问redis而不是再去访问数据库. jedis.setex(key,60,"empty"原创 2020-10-08 02:17:12 · 498 阅读 · 0 评论 -
注解的概念及自定义Java注解并实现注解给字段赋值
一,注解基本概念从JDK1.5开始,Java提供了对元数据(MetaData)的支持,也就是注解(Annotation)注解,其实就是代码中的特殊标记,这些特殊标记可以在类加载,编译,运行时被读取,并执行相应的处理使用注解最大的作用就是在不改变程序原逻辑的情况下添加补充信息注解(Annotation)可以像修饰符一样来使用.可用于修饰包,类,构造器,方法.成员变量,参数,局部变量的声明,这些信息被保存在Annotation的"name=value"对中注解(Annotation)能被用来为程序元素原创 2020-10-05 21:48:57 · 7979 阅读 · 0 评论 -
浅读JVM
JVM(Java Virtual Machine) Java虚拟机先附上一个我整理的思维导图JVM的基本概念基本概念JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字原创 2020-10-05 10:36:29 · 225 阅读 · 2 评论 -
Spring事务:Spring事务隔离级别有几种?分别是什么?Spring事务传播属性有几种?都是什么?
Spring事务1.Spring事务隔离级别default(默认)PlatfromTransactionManager默认的隔离级别使用数据库默认的事务隔离级别,除了default 其它几个Spring事务隔离级别与JDBC事务隔离级别相对应read_uncommited(读未提交)一个事务可以读取另外一个事务未提交的数据这可能出现脏读 而且不可重复度,出现幻像读等.read_commited(读已提交)一个事务可以读取另一个事务已经提交的数据不可以读取未提交的数据可以避免脏读 但是原创 2020-09-21 13:44:00 · 10927 阅读 · 0 评论 -
Java-SpringBoot:什么是跨域?SpringBoot怎么实现允许跨域访问?教程.
跨域什么是跨域请求(CORS)?CORS 全称 Croos Origin Resource Sharing(跨域资源共享)每一个页面需要返回一个名为Access-Control-Allow-Origin的http头来允许外域的站点访问,可以仅仅暴露有限的资源和有限的外域站点访问SpringBoot实现跨域单独配置在控制器层 也就是Controller加一个@CrossOrgin注解其实就可以了.意思是允许该类下的所有资源可以通过跨域访问.当然 也可以写在某一个单独的方法上 代表这个方法允许原创 2020-09-12 16:57:47 · 1098 阅读 · 0 评论 -
使用SpringBoot调用QQ的SMTP服务实现邮件发送功能
本文讲述的是利用SpringBoot框架 以及QQ邮箱的smtp服务实现邮件的发送功能.登录QQ邮箱 开启smtp服务.首先登录QQ邮箱 点击设置在邮箱设置里选择账户下拉找到如下位置. 开启POP3/SMTP服务 这里可能需要验证手机号 按照提示进行操作即可.开启成功后 复制好授权码待用.创建SpringBoot项目这里就正常创建SpringBoot项目即可 不需要勾选启动器.(可以勾选mail启动器 如果这里勾选了 可以跳过引入依赖步骤)引入依赖 <dependency原创 2020-09-10 18:07:30 · 2397 阅读 · 1 评论 -
SpringBoot整合第三方接口:整合阿里云短信服务实现短信发送 手机号验证功能
短信服务平台有很多 大家可以根据自己的需求随意选择.整合方式也是大同小异本文以阿里云短信服务平台为例.具体分为以下几个步骤:登录/注册阿里云平台 进入短信服务控制台前往 https://www.aliyun.com/ 登录.搜索短信服务 点击进入短信控制台如果之前没有开通过短信服务 这里需要开通 开通之后就可以进入了申请短信签名和短信模板点击左侧的国内消息 首先添加一个签名 点击添加签名个人用户可以申请一条验证码签名 根据自己的需求申请申请之后需要审核推荐使用真实的项目名称 最好附带原创 2020-09-10 17:10:01 · 1108 阅读 · 0 评论 -
nginx+keepalived搭建高可用nginx(集群)踩坑:配置都对 但是访问vip就是访问不进去?
解决方法原因是keepalived.conf配置中默认vrrp_strict打开了,需要把它注释掉。重启keepalived即可ping通。原因vrrp_strict的意思是:严格遵守VRRP协议.下列情况会阻止启动Keepalived:1.没有VIP地址2.单播邻居3.在VRRP版本2中有IPV6地址具体可以查看keepalived 配置文件参数详解https://blog.csdn.net/mofiu/article/details/76644012...原创 2020-09-09 22:30:19 · 1881 阅读 · 2 评论 -
编程题阶乘迷局:破局到优化的代码与思路分析
1.前言写本文的起因是在csdn看到一个比较有意思的博客原文链接:https://blog.csdn.net/dotnetstudio/article/details/103089463这篇文章只给定了情景和结果.并没有具体的分析 对于初学java编程的人来说 可能有些绕 一时间绕不出来.本文针对这篇文章的情景和结果进行详细的思路分析.2.情景给定一个整数,求该整数的阶乘,例如输入5,结果是5 X 4 X 3 X 2 X 1=120。3.解题方法以及思路传统解题方法及思路刚看到这个题目的时原创 2020-09-09 21:56:49 · 261 阅读 · 0 评论 -
Linux虚拟机启动后一直黑屏怎么办?
问题(踩坑)在使用Linux虚拟机的时候 有时会出现启动了虚拟机 然后就一直停留在黑屏界面的情况关机提示 虚拟机xxxx繁忙使用任务管理器强制结束再打开 就提示以独占方式锁定…失败解决方案像这种情况 我们可以通过Windows的cmd窗口来解决.以管理员身份运行cmd在dos命令窗口依次输入如下命令:netsh winsock resetnet stop VMAuthdServicenet start VMAuthdServicenet stop VMwareHostdnet sta原创 2020-09-09 21:19:19 · 4680 阅读 · 0 评论 -
虚拟机操作工具--Xmanager5 下载/安装/使用
下载地址:https://lgp6.lanzous.com/iBycteh67hg解压即用.原创 2020-09-09 11:29:02 · 3923 阅读 · 0 评论 -
Java与Linux虚拟机:CentOS7 下载/安装教程
Linux包含诸多的系统类型CentOS便是其中一种.1.下载我一般下载虚拟机的镜像都是从阿里云的镜像站来下载阿里云CentOS镜像站地址:https://mirrors.aliyun.com/centos/本文以CentOS7为例.使用工具::VMware Workstation152.安装启动虚拟机工具VMware,在主页选择创建新的虚拟机出现如下界面:这里对于新手来说 选择典型就好.等学习的差不多了 再去自定义自己趁手的虚拟机.选择典型 点击 下一步这里选择浏览.找到下原创 2020-09-09 00:26:03 · 286 阅读 · 0 评论 -
从零开始搭建基本Java开发环境:mysql5.5的下载/安装/配置(内含sqlyog)
从零开始搭建"Windows基本Java开发环境"本文讲述的是mysql5.5从下载到使用的步骤mysql是一个优秀的关系型数据库.sqlyog是对mysql进行操作的一个优秀工具.1.下载MySql官网下载地址:https://downloads.mysql.com/archives/community/官网含有各种版本教程使用版本 5.5打包下载地址(包含mysql5.5以及sqlyog):https://lgp6.lanzous.com/ixLIMegzbvc2.安装安装这里我本原创 2020-09-08 17:46:25 · 307 阅读 · 0 评论 -
从零开始搭建基本Java开发环境:apache-maven-3.5.2下载与配置
从零开始搭建 "Windows基本Java开发环境"本文讲述的是apache-maven-3.5.2的下载与配置1.下载官网下载地址:http://maven.apache.org/download.cgi官网内可下载不同版本本文使用的是 3.5.2版本.蓝奏云网盘下载地址:https://lgp6.lanzous.com/iSmqxgg9sla2.配置基本配置下载完成后 将压缩包解压到自己想放的目录进入到解压后的目录 找到bin文件夹 点进去复制路径复制后,.找到此电脑 右键点原创 2020-09-08 17:29:32 · 3029 阅读 · 0 评论 -
从零开始搭建基本Java开发环境:IDEA2019.2.4部分配置
JDK配置在IDEA界面找到如图红框选中的图形按钮点击按钮出现如下界面点击New --JDK找到jdk的目录 双击即可.然后 点击下边的Apply然后点击 OK即可.Maven配置:在上面的搜索框搜索Maven选择如图蓝色选中的Maven.Maven home directory:Maven的根目录User setting file:Maven配置文件(settings.xml)的路径Local repository:本地Maven库路径配置完成后 点击Apply(应用)原创 2020-09-07 20:05:29 · 554 阅读 · 0 评论 -
从零开始搭建基本Java开发环境:Tomcat8.5 下载/配置
从零开始搭建"Windows基本Java开发环境"本文讲述的是Tomcat8.5的下载和配置Tomcat是一个轻量级的开源web服务器 适用于并发量小的中小型项目.1.下载官网地址:https://tomcat.apache.org/进入官网 选择左侧的Download下的Tomcat8(本文以 Tomcat8.5 为例)根据自己的电脑位数选择相应的版本下载.我这里是64位.下载完成后我们进行配置.2.配置先将下载好的zip压缩包解压到自己想放到的位置.不推荐放到c盘.解压完成后.进原创 2020-09-07 19:31:58 · 517 阅读 · 0 评论 -
从零开始搭建基本Java开发环境:开发工具IDEA(2019.2.4)的下载/安装/部分配置
从零开始搭建Windows基本Java开发环境本文讲述的是一个比较优秀的Java开发工具 IntelliJ IDEA(2019.2.4 x64)的下载,安装,配置和破解.声明:本文破解相关内容仅提供给无购买能力,用于学习,测试途径的个人查看,如若您是企业或有购买能力的个人,请支持正版1.下载官方下载地址:https://www.jetbrains.com/idea/download/other.html下拉页面找到本文使用的版本 2019.2.4点击即可开始下载.2.安装这里可以选择B原创 2020-09-07 19:00:29 · 1157 阅读 · 0 评论 -
从零开始搭建基本Java开发环境:下载/安装/配置JDK8(1.8.0)
从这篇文章开始,我将从零开始带大家从零开始搭建Windows基本Java开发环境本文讲述的是JDK8(jdk1.8.0)的下载 安装 与配置1.下载官网下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html这里根据电脑的位数 下载适合自己电脑的jdk. 现在电脑通常都是x64的系统.百度网盘下载地址:链接:https://pan.baidu.com/s/1ocIVKQ3SbtD2X-XTM原创 2020-09-06 14:15:50 · 1288 阅读 · 3 评论