自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 finally 和 return 的执行顺序

发现只要在finally中加入return,最终这个方法的返回值只能是finally中的返回值,相当于在代码最后return。

2022-11-04 09:00:25 4867 2

原创 jdk8Comparator.comparing 排序

List<类> list; 代表某集合 //返回 对象集合以类属性一升序排序list.stream().sorted(Comparator.comparing(类::属性一)); //返回 对象集合以类属性一降序排序 注意两种写法list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序list.stream().sorted(Comparator.comparing(类::属性

2021-09-03 15:14:41 1097

原创 2021-08-31

RedisTemplate opsForHash仅仅做笔记方便查阅!!!!!

2021-08-31 11:23:53 423

原创 项目中知识点小记

Arrays.asList()、Collections.singletonList()Arrays.asList(strArray)返回值是仍然是一个可变的集合,但是返回值是其内部类,不具有add方法,可以通过set方法进行增加值,默认长度是10Collections.singletonList()返回的是不可变的集合,但是这个长度的集合只有1,可以减少内存空间。但是返回的值依然是Collections的内部实现类,同样没有add的方法,调用add,set方法会报错java.lang.Un

2021-07-30 10:34:00 143

原创 Lombok的@Accessors@EqualsAndHashCode使用

关于@Accessors@Accessors 注解用来配置lombok如何产生和显示getters和setters的方法。@Accessors注解既可以注解在类上也可以注解在属性上@Accessors有三个属性fluent chain prefix这三个属性的详细解释:fluentfluent为一个布尔值,如果为true生成的get/set方法则没有set/get前缀,默认为false例如:@Accessors(flunet = true)public class MyClass {

2021-07-07 15:30:37 384

原创 MybatisPlus小记

MP除了通用的Mapper还是通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共。三、IService使用service层需要继承IService,当然实现层也要继承对应的实现类。 public interface UserService extends IService<User> { }@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper,

2021-04-01 23:02:53 75

原创 关于项目中空指针问题的处理

在Java中,null值可以被分配给一个对象的引用,表示该对象当前正在指向未知的数据。当程序试图访问这个引用时,将会抛出 NullPointerException。那么如何避免程序抛出空指针异常?1、避免去调用可能为null的对象的方法(静态方法除外)String str = null;if(str.equals("Test")) { /* The code here will not be reached, as an exception will be thrown. */}这段

2021-03-24 19:02:59 664

原创 Mybatis Plus 如何通过lambda获取属性名的

QueryWrapper<Goods> wrapper = new QueryWrapper<>();wrapper.lambda().eq(Goods::getGoodsId,"123"); QueryWrapper<Goods> wrapper1 = new QueryWrapper<>();wrapper1.eq("goods_id","123");首先第一个lambda().eq是一个查询语句,再是看eq的内容 Goods::getGood

2021-03-23 11:18:17 1767

原创 怎么用git命令创建远程仓库分支

创建分支 $ git branch 分支名推送到远程 $ git push origin 分支名拉取远程 $ git pull origin 分支名

2021-03-18 22:39:51 973

原创 git 远程仓库和本地仓库建立连接

先git init 初始化本地文件,使其成为git管理的文件然后我们来进行git add 和 git commit 操作之后建立远程仓库和本地仓库的连接,运行如下命令git remote add origin https://github.com/darenone/miniProductionLine.git这里特别注意,我们第一次push的时候,加上-u参数,Git就会把本地的master分支和远程的master分支进行关联起来,我们以后的push操作就不再需要加上-u参数了git push -

2021-03-18 22:37:36 144

原创 springioc的好处

IOC:控制反转,它是不是什么技术,它是一种设计模式。Spring通过这种控制反转(IoC)的设计模式促进了松耦合。当应用了IoC,一个对象依靠的其它对象会通过被动的方式传送进来,而不是这个对象自己创建或者查找依靠对象。不是对象从容器中查找依靠,而是容器在对象初始化时不等对象请求就主动将依靠传送给它。让容器统一管理bean的生命周期,保证bean在容器中不会重复创建,保证bean的单例。...

2021-03-01 20:02:14 596

原创 ./configure make && make install 是什么意思

./configure配置环境make是编译的意思。就是把源码包编译成二进制可执行文件make install 就是安装的意思。make&& make install的意思是:make与makeinstall是两个命令,在你./configuration生成了Makefile之后执行编译安装;与&&一起的还有||,不过意思不一样,&&是与,||是或;make && makeinstall的意思就是执行make如果没有发生错误就执行m

2021-01-21 15:09:33 352

原创 Java的double和float类型计算丢失精度问题,bigdecimal用法

float和double做四则运算误差 public static void main( String[] args ) { System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println(4.015*100); System.out.println(123.3/100); } //输出 0.0600000

2021-01-15 14:29:09 191

原创 StringBuffer的扩容机制为什么是两倍的原数组长度 + 2

扩容的步骤:新的字符串的长度超过了底层原char数组value的大小,才需要进行扩容先尝试默认扩容,将新容量变成 (value.length << 1) + 2 ,也就是两倍的原数组长度再加二若默认扩充后的值还是小于至少容量的值,直接扩充到当前需要的至少容量大小;经过前两步骤确定的新数组大小,若大于Interger.MAX_VALUE,则报异常,若小于等于0,则新数组大小4改为Interger.MAX_VALUE-8确定了新数组的值后,通过Arrays.copy(value,new

2021-01-14 11:45:17 1119

原创 linux关闭防火墙了,但端口还是访问不了/虚拟机能ping通,但是telnet某个端口却不行

已经把防火墙关了systemctl stop firewalld查看状态:systemctl status firewalld也是关闭的,但就是没啥用。解决:1、先开启firewalld:systemctl start firewalld2、放通端口:firewall-cmd --zone=public --add-port=2181/tcp --permanentfirewall-cmd --zone=public --add-port=9092/tcp --permanent

2021-01-01 20:51:24 7069 3

原创 启动项目报错:org.apache.catalina.LifecycleException: Failed to start component

错误:org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-2001]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167) ~[tomcat-embed-core-8.5.31.jar:8.5.31] at org.apache.catalina.core.StandardService.ad

2020-12-30 14:02:20 1006

原创 报错org.thymeleaf.exceptions.TemplateInputException: Error resolving template解决方案

最近在使用springboot+thymeleaf写程序的时候,一直报错org.thymeleaf.exceptions.TemplateInputException: Error resolving template硬是搞了整整一天才解决,因为自己踩过坑了,所以,在这里,本人给出目前我所搜集到的所有报这个错的情况的解决方案。org.thymeleaf.exceptions.TemplateInputException: Error resolving template "xxx/xxx", templa

2020-12-23 23:59:40 390

原创 java进程间通信的几种方式? 对比总结

管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。消息队列( message queu

2020-12-15 22:12:22 685

原创 什么是EJB?EJB详解

EJB到底是什么?我们不禁要问,什么是"服务集群"?什么是"企业级开发"?既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB 什么时候不用。于是大家都产生一些联想,认为EJB"分布式运算"指得是"负载均衡"提高系统的运行效率。然而,估计很多人都搞错了,这个"服务群集"和"分布式运算"并没有根本解决运行负载的问题,尤其是针对数据库的应用系

2020-11-26 21:44:29 11527 2

原创 什么是RPC?RPC与Stub简述

什么是RPC在某种意义上,WebService、REST均是RPC的实现,那么RPC的发展过程如何呢?本文参考了wikipedia,对RPC做一下简要摘记。RPC(RemoteProcedureCall),是进程间通信(IPC,Inter-Process Communication)的一种技术,一般指不同机器上的进程间通信。在采用C等古老语言编程的时候,RPC被称作了对S端的“子程序”的调用,所以称“过程调用”。在OOP出现后,RPC也可以称为远程方法调用(RemoteMethodInvocation)

2020-11-24 17:17:12 3988

原创 redis加锁的几种方法

1、 客户端A请求服务器获取key的值为1表示获取了锁2、 客户端B也去请求服务器获取key的值为2表示获取锁失败3、 客户端A执行代码完成,删除锁4、 客户端B在等待一段时间后在去请求的时候获取key的值为1表示获取锁成功5、 客户端B执行代码完成,删除锁$redis->incr($key);$redis->expire($key, $ttl); //设置生成时间为1秒

2020-11-24 14:04:31 2165

原创 什么是脑裂?Zookeeper怎么解决脑裂问题的?

什么是脑裂脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。脑裂通常会出现在集群环境中,比如ElasticSearch、Zookeeper集群,而这些集群环境有一个统一的特点,就是它们有一个大脑,比如ElasticSearch集群中有Master节点,Zookeeper集群中有Leader节点。本篇文章着重来给大家讲一下Zookeeper中的脑裂问题,以及是如果

2020-11-23 13:26:26 1462

原创 ES安装启动及could not find java in bundled jdk at /opt/elasticsearch/elasticsearch-7.9.1/jdk/bin/java报错

1.首先去es的官网下载ES 然后将下载后的包上传到linux环境指定的目录下面 进行解压 解压命令为:sudo tar -zxvf elasticsearch-7.9.1-linux-aarch64.tar.gz(非root账户 前面加上sudo)如下:2.进入elasticsearch-7.9.1目录 启动命令./bin/elasticsearch 报如下错误3.看到这个错第一反应就是jdk没装 然后输入命令 java -version查看 jdk装得没问题

2020-11-21 12:36:27 12713 2

原创 ftp文件出现乱码

1.点击属性2.点击选项,使用utf-8编码

2020-11-08 18:20:03 833

原创 解决docker 启动 centos 镜像,容器会自动退出问题

docker启动centos镜像有两种版本可以解决自动退出的问题:方式一:docker run -d -it 【image-ID】 /bin/sh方式二:在启动脚本里面增加一个执行进程:1.在镜像内部执行 RUN touch /var/log/1.txt 然后最后用CMD “tail” “-f” "/var/log/1.txt"结尾2.启动脚本的方式#!/bin/bashset -m && \ sh /opt/redmine.org.cn/ctlscript.sh

2020-11-07 20:13:04 1919 1

原创 详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)

前言InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题。MVCC 我先挖个坑,日后再细讲,这篇文章我们主要来谈谈那些可爱的锁。什么是幻读?幻读是在可重复读的事务隔离级别下会出现的一种问题,简单来说,可重复读保证了当前事务不会读取到其他事务已提交的 UPDATE 操作。但同时,也会导致当前事务无法感知到来自其他事务中的 INSERT 或 DELETE 操作,这就是幻读。关于行锁我们要知道的行锁在 InnoDB 中是基于索引实现的,所以一旦某

2020-10-14 12:24:58 814

原创 HashMap为什么2倍扩容

向集合中添加元素时,会使用(n - 1) & hash的计算方法来得出该元素在集合中的位置,其中n是集合的容量,hash是添加的元素进过hash函数计算出来的hash值。HashMap的容量为什么是2的n次幂,和这个(n - 1) & hash的计算方法有着千丝万缕的关系,符号&是按位与的计算,这是位运算,计算机能直接运算,特别高效,按位与&的计算方法是,只有当对应位置的数据都为1时,运算结果也为1,当HashMap的容量是2的n次幂时,(n-1)的2进制也就是111111

2020-10-07 15:52:20 1928

原创 Netty有什么用?

随着移动互联网的爆发性增长,小明公司的电子商务系统访问量越来越大,由于现有系统是个单体的巨型应用,已经无法满足海量的并发请求,拆分势在必行。在微服务的大潮之中, 架构师小明把系统拆分成了多个服务,根据需要部署在多个机器上,这些服务非常灵活,可以随着访问量弹性扩展。世界上没有免费的午餐, 拆分成多个“微服务”以后虽然增加了弹性,但也带来了一个巨大的挑战:服务之间互相调用的开销。比如说:原来用户下一个订单需要登录,浏览产品详情,加入购物车,支付,扣库存等一系列操作,在单体应用的时候它们都在一台机器的同一个

2020-09-29 09:38:24 91

原创 面试时会问到的项目中的问题总汇

1、(用三分钟)简单的做一个做我介绍?2、详细介绍下对你影响比较大的项目?3、对你刚才说的的项目,我很感兴趣,你能详细说一下吗?这个项目主要是解决什么问题/完成什么事?4、你在这个项目中的职责是什么/做啦哪些事?5、这个项目中用到了那些技术/框架?6、这个项目中大家是怎么协作的?7、这个项目主要的挑战是什么?8、在这个项目中你遇到了哪些技术难点和问题?9、你是怎么解决的?10、在这个项目中你学到了什么?面试官会针对一个两个项目进行深入的提问,首先考查项目的真实性(有的应聘者编造简历,或者

2020-09-14 06:42:38 8491

原创 分布式和微服务理解

一、什么是微服务?微服务是一种面向服务的架构(SOA)风格(Java开发人员最重要的技能之一),其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。庞大而又复杂的应用程序可以由多个可自行执行的简单而又独立的程序所组成。这些较小的程序组合在一起,可以提供庞大的单程序所具备的所有功能。 微服务是一种面向服务的架构风格,具有灵活性和低成本两个特点. 灵活性:由于这些较小

2020-09-12 20:54:17 520

原创 校招面试时如何做项目介绍

1.项目性质横向(企业合作),纵向(863or973之类),合作方,偏科研或偏工程。2.项目背景和概述也可以参考立项依据,各个实验室申请项目时都会写类似的项目申请书,为何要做这个项目,这个项目是用来解决什么问题,之前做的为何会出现这样的问题。3.项目架构把项目整体描述一遍,让面试者直观的知道你所介绍的项目的来龙去脉,软件方面就是软件架构。4.你自己负责的部分在前三部分,可以不涉及到细节,但在介绍自己做的部分时,要做好面试官询问细节的思想准备,毕竟,这一块才能决定你参加这个项目收获内容的多少。

2020-09-12 20:13:02 1004

转载 从输入url到浏览器加载过程

从输入URL到页面加载发生了什么最近在进行前端面试方面的一些准备,看了网上许多相关的文章,发现有一个问题始终绕不开: 在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么。仔细思考这个问题,发现确实很深,这个过程涉及到的东西很多。这个问题的回答真的能够很好的考验一个web工程师的水平,于是我自问自答一番。总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束具体过程DNS解析DNS解析的过程就是寻找哪台

2020-09-11 22:38:56 219

原创 ConcurrentHashMap面试问题

ConcurrentHashMap面试问题1、JDK1.7中ConcurrentHashMap是通过分段锁+数组+链表来实现的,在ConcurrentHashMap中保存一个SegMent数组,Segment是继承ReentrantLock的可重入锁,也就是说对于每个Segment的操作可以通过加锁解锁的方式来保证线程的安全性。2、JDK1.7ConcurrentHashMap中put数据的方式是通过hash的方式先找到插入entry在Segment数组中的位置,然后再通过Hash的方式找到entry在

2020-09-11 12:45:10 883

原创 Java的Object.wait(long)在等待时间过去后会继续往后执行吗

Java的Object.wait(long)在等待时间过去后会继续往后执行吗Object.wait(long)方法相比于wait,多了个等待时长,那么当等待时长过去后,线程会继续往下执行吗?单个线程执行多个线程并发执行public class ThreadWaitDemo {public static final int WAIT_IN_SECONDS = 2;public static final int NOTIFY_IN_SECONDS = 6;public static void m

2020-09-06 10:24:06 746

原创 SpringIOC和AOP原理

用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真正花些时间读一读源码就知道它的一些技术实现其实是建立在一些最基本的技术之上而已;例如AOP(面向方面编程)的实现是建立在CGLib提供的类代理和jdk提供的接口代理,IOC(控制反转)的实现建立在工厂模式、Java反射机制和jdk的操作XML的DOM解析方式.下面来对spring源码中的基本技术进行深入的剖析:先来说说AOP的实现,其实AOP就靠代理模式实现的,如:org.springframework.aop.framewo

2020-09-03 14:55:00 316

转载 IDEA中如何使用debug调试项目 超详细教程

在现在的开发中,我们经常采用Debug来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容:一、Debug开篇二、基本用法&快捷键三、变量查看四、计算表达式五、智能步入六、断点条件设置七、多线程调试八、回退断点九、中断Debug十、附:JRebel激活一

2020-08-29 17:18:03 2160 2

转载 SpringMVC处理异常的三种方式

SpringMVC处理异常的三种方式使用 @ ExceptionHandler 注解实现 HandlerExceptionResolver 接口使用 @controlleradvice 注解使用 @ ExceptionHandler 注解使用该注解有一个不好的地方就是:进行异常处理的方法必须与出错的方法在同一个Controller里面,可以看到,这种方式最大的缺陷就是不能全局控制异常。每个类都要写一遍。@Controllerpublic class UserController {/**

2020-08-28 09:15:46 122

原创 org.springframework.web.util.NestedServletException: Request processing fail

做了个SSM小案例,报错org.springframework.web.util.NestedServletException: Request processing fail原因:前端传过来的数据在controller接收时没有和数据保持一致,导致数据封装失败。

2020-08-24 16:08:12 18388 3

原创 http协议知识点快速总结

http请求由三部分组成,分别是:请求行、消息报头、请求正文HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。1、常用的HTTP方法有哪些?GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。PUT: 传输文件,报文主

2020-08-23 13:13:11 163

原创 jsp 九大内置对象和其作用详解

JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception1、request对象request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。2、response对

2020-08-21 13:50:56 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除