自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记一次springboot打war包出现No Spring WebApplicationInitializer types detected on classpath问题

由于现场环境及其它要求,需要将springboot项目达成war包部署。且打包时已排除springboot内嵌的tomcat,但部署时仍然出现No Spring WebApplicationInitializer types detected on classpat。

2023-04-14 12:55:49 466

原创 Java NIO

JavaNIONIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于 Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道。NIO和传统IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。一、NIO缓冲区Java IO面向流意

2022-03-01 00:30:08 136

原创 Java运行时内存

Java运行时内存Java 堆从GC 的角度还可以细分为: 新生代(Eden 区、From Survivor区和To Survivor区)和老年代。一、新生代是用来存放新生的对象。一般占据堆的1/3空间。由于频繁创建对象,所以新生代会频繁触发MinorGC进行垃圾回收。新生代又分为Eden区、ServivorFrom、ServivorTo三个区。EdenJava 新对象的出生地(如果新创建的对象占用内存很大,则直接分配到老年代)。当 Eden 区内存不够的时候就会触发 MinorG

2022-02-22 19:26:54 653

转载 Eureka服务注册以及相关原理

1、服务注册在微服务架构中,一个服务提供者本质上也是一个Eureka客户端。启动时,会调用Eureka所提供的服务注册相关方法,向Eureka服务器注册自己的信息。同时,在Eureka服务器会维护一个已注册的服务列表。注册服务列表使用一个嵌套HashMap保存信息,数据结构如下:HashMap的第一层为应用名称和对应的服务实例。HashMap的第二层为服务实例及其对应的注册信息,包括宿主服务IP地址、服务端口、运行状况指示符、URL等数据。当服务实例状态发生变化时(如微服务自身检测认为服务不可用

2020-08-28 17:24:31 3119

原创 pip安装的包的默认路径

C:\Users\xxxxx\AppData\Local\Programs\Python\Python38-32\Lib\site-packages

2020-08-11 17:58:08 1326 1

原创 Kafka数据可靠性的保证

Kafka如何保证数据可靠性1、可靠性策略为保证 producer发送的数据,能可靠的发送到指定的 topic,topic的每个partition收producer发送的数据后,都需要向producer发送ack确认收到,如果producer收到ack,就会进行下一轮的发送,否则重新发送数据。2、同步策略的问题Partition到底什么时候发送这个ack?确保有follower与leader同步完成, leader再发送ack,这样才能保证leader挂掉之后,能在follower中选举

2020-08-06 11:22:31 297

原创 Kafka分区策略简略描述

Kafka分区策略1、为什么要进行分区方便在集群中扩展,每个Partition可以通过调整去适应他所在的硬件环境,一个Topic可以有多个Partition,因此整个集群就可以适应任意大小的数据了。可以提高应用并发能力,因为对于一个Topic,我们可以通过以Partition为单位去进行操作。2、分区的原则这里我们将Producer发送的消息封装成ProducerRecord对象。指明 partition 的情况下,直接将指明的值直接作为 partiton 值;没有指明 partitio

2020-08-05 17:31:16 159

原创 SpringBoot之整合Oracle数据源

SpringBoot之Oracle数据源的整合1、依赖引入<!--mybatia--><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version></dependency&

2020-08-05 10:09:00 1692

原创 使用RedisCluster操作redis集出现JedisNoReachableClusterNodeException

使用JedisCluster对象操作redis集群时出现redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster的问题这里一般是使用了jedisCluster.close()方法造成的问题,因为jedisCluster内部会自动释放连接,不需要我们显式再去调用一次。...

2020-08-04 09:35:47 387

原创 采用数据源配置方式造成bindingException解决方案(仿佛找不到mapper.xml)

将使用properties文件交由spring自动装配的配置方式,改为代码Datasource的配置方式出现BindingException,说你的dao层啥啥方法是无效的一个错误。1、场景你的dao层的interface里的各个方法和相应的mapper.xml里面的标签id是一一对应的,mapper里的namespace指定的也是没有问题的(如下方标注的红箭头)。你dao层的的interface或许如下。mapper.xml或许如下。你在properties文件里可能也做了配置(这里我的配置是

2020-08-03 14:28:17 237

原创 Kafka启动错误

Kafka启动错误:Socket server failed to bind to 49.234.143.64:9092: Cannot assign requested address.在kafka的配置文件server.propertis里有这样一行属性:listeners=PLAINTEXT://localhost:9092如果你这里写的不是localhost或者127.0.0.1的话,写的是你云主机的公网IP地址,就会出错。...

2020-07-31 14:13:27 767

转载 Session共享

Spring Boot中的Session共享1、问题背景我们知道,HttpSession是通过Servlet容器创建并且进行管理的,创建成功之后,都是保存在内存中的。现在就会有一个问题,如果我们需要对项目进行一些扩展,搭建了集群,利用一些手段做了负载均衡,那么我们接收到的HTTP请求就很有可能会被分发到不同的实例上去的,这个时候,问题就出现了,我们要如何保证各个实例之间的Session同步呢?2、解决方案SpringBoot中提供了自动化的Session共享配置,结合Redis可以非常方便解决此类

2020-06-10 13:27:12 128

原创 一种SpringBoot文件上传获取不到MultiparFile解决方案

前台代码:这里用于接收文件的input标签名为uploadFile。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <d...

2020-03-25 16:03:41 611

转载 提另一种SpringBoot跳转JSP页面却变成下载jsp文件而不进行页面展示的解决方案

这里提另一种SpringBoot跳转JSP页面却变成下载jsp文件而不进行页面展示的解决方案在你尝试了各种加依赖,加jsp解析包都没用后,应该跟我一样,重新建个项目,按照这个大佬的博客中的步骤来新建。https://www.cnblogs.com/liuyangfirst/p/8372291.html...

2020-03-12 21:49:12 852

原创 四大并发工具类

四⼤并发⼯具类的使⽤1 CountDownLatch-闭锁CountDownLatch类位于java.util.concurrent包下,利⽤它可以实现类似计数器的功能。⽐如有⼀个任务A,它要等待其他4个任务执⾏完毕之后才能执⾏,此时就可以利⽤CountDownLatch来实现这种功能了。CountDownLatch类只提供了⼀个构造器:下⾯这3个⽅法是CountDownLatch类中...

2019-12-02 15:40:11 181

原创 SpringBoot启动定时任务

SpringBoot构建一个简单的定时任务1.构建任务@Componentpublic class NotifyTime { @Scheduled(cron = "0/10 * * * * ?") public void notifyTime() { try{ TimeUnit.SECONDS.sleep(20); }c...

2019-11-21 10:55:03 234

转载 超级实用的网站工具

话不多说,上大佬原文地址,超级实用的网站工具:https://blog.csdn.net/m0_38106923/article/details/100130354

2019-11-20 10:40:15 173

原创 浅谈代理设计模式

浅谈代理模式一、什么是代理用例子来说理解起来总是简洁的:比如你觉得上分太累了,但是又想上分,怎么办?请代练(代理).医院挂号太麻烦?请黄牛(代理)帮我们挂号.写出威胁社会安定的代码被请到警察局喝茶?请律师(代理)帮我们打官司.借用某大佬的话来说,代理就是当前对象不愿意干、没法干的事委托给别的对象来做,而我们只要做好本分就行了。二、简单的示例代码1.静态代理一个描述职能接口:...

2019-10-02 13:52:39 84

原创 JavaWeb简易博客

JavaWeb简易博客一、项目简介我的简易博客的主要功能是围绕着对博客的基本管理来做的,包括发表博客、修改博客、删除博客。文章列表展示:修改文章界面展示:二、业务流程三、技术以及开发工具客户端使用JSP、JS、CSS、JQuery、Bootstrap作为客户端页面开发UEditor富文本编辑器前端插件服务端ServletJDBCJackson作...

2019-09-02 14:48:35 464

原创 操作系统之线程

线程一、线程的定义一个简短的定义:进程内的一个执行单位。二、进程和线程的关系线程是进程的一个组成部分。进程的多个线程都在进程的地址空间内活动。资源是分配给进程的,而不是分配给线程的。线程在执行中需要资源时系统从进程的的资源配额中扣除并分配给它。处理机调度的基本单位是线程,线程之间竞争处理机。真正在处理机上运行的是线程。...

2019-09-01 15:43:19 53

原创 操作系统之进程

浅谈进程一、进程的一个定义从并对发行和动态性的角度可以有这样的一个定义:进程是程序的一次执行,该程序可以与其他程序并发执行。二、进程的表示进程的组成程序:描述进程所要完成的功能。是进程执行时不可修改的部分。数据:程序执行时所需要的数据和工作区。只能为一个进程所专用,是进程的可修改部分。进程控制块(PCB, Process Control block):包含了进程的描述信息和控...

2019-09-01 15:31:51 100

原创 Java对象头

Java对象头1、存储结构32位的JVM Mark Word的存储结构为:锁状态25bit4bit1bit是否是偏向锁2bit标志位无锁状态对象的HashCode对象的分代年龄001在同步的时候获取对象的monnitor,即获取到对象的的锁。锁,无非就是一个对对象的标志,这个标志存放在Java对象的对象头。如上表格所示,Mark Word会默认存放...

2019-08-20 18:07:26 79

原创 HashTable核HashMap的区别

话不多说,看这个表区别HashMapHashTable推出版本JDK1.2JDK1.0性能异步处理,性能更高同步处理,性能低安全性非线程安全线程安全null操作允许一个null,只允许一个Key和Value都不能为空,否则出现NullPointerException...

2019-08-17 18:18:00 57

原创 ArrayList和Vector的区别

ArrayList和Vector的区别历史时间上:ArrayList是JDK1.2提供的,Vector是JDK1.0就提供的。处理形式:ArrayList异步处理,性能更高;Vector同步处理,性能低。数据安全:ArrayList非线程安全;Vector线程安全。TIPS:为什么说ArrayList非线程安全,而Vector线程安全呢?​ 我们来看一下JDK源码,首先是ArrayL...

2019-08-17 12:40:10 74

原创 JAVA之CAS操作

CAS操作一、什么是CAS操作?首先来说一下***悲观锁***策略线程在获取锁的时候,采取的是一种悲观锁的策略。即***认为每执行一次临界区代码都会产生冲突***,所以当前线程获取锁的时候也会阻塞其他线程获取锁。***CAS***操作CAS操作又称无锁操作,采取的是一种***乐观锁***的策略,即***它假设所有线程资源在访问共享资源时不会出现冲突***,所以不会阻塞其他线程的操...

2019-08-15 21:10:32 236

原创 超市收银系统简介

一、项目简介本项目是一款基于字符界面的收银系统,实现了对用户、商品的管理。二、项目意义对JavaSE部分知识做一个综合实践。提升数据库编程能力。三、项目实现的需求客户端:商品浏览购买商品查看自己的订单管理端:重置用户密码设置用户启停状态查看在册账户在册商品信息的更新商品的下架商品的上架在册商品的浏览通用处理注册账户登录呼出帮助信息系统...

2019-08-14 11:28:15 2250

转载 idea出现Unresolved function or method $(),是因为你没有JQuery依赖库,,,改了半天。。。

话不多说,附上大佬原文。https://blog.csdn.net/WorseMe/article/details/82594804

2019-08-13 00:22:28 2146

原创 Servlet调用数据库操作方法报告关于数据库空指针异常的错误

如果你数据库操作相关方法都是对的,启动Tomcat后,页面报告你数据库操作部分有空指针异常,以我的亲身经历,绝对是你Tomca的lib库里没有你用的jdbc-Connector的jar包。把你的connector丢进去就好了。...

2019-07-29 21:53:53 1228 2

原创 java数据类型的转换简则

java语言中数据类型转换有以下两种自动类型转换:编译器自动完成类型转换,不需要在程序中写代码。强制类型转换:强制编译器进行类型转换,必须在程序中编写代码。TIPS:由于基本类型中boolean类型不是数字型,所以基本数据类型转换是除了boolean类型以外的其他7种类型之间的转换。1、自动类型转换也称为隐式类型转换,由JVM自动完成,规则是从存储范围小的类型到存储范围...

2019-07-17 20:02:29 72

原创 序列化与反序列化

序列化与反序列化1、序列化对象序列列化指的是:将内存中保存的对象变为二进制数据流的形式进行传输,或者是将其保存在文本中。但是并不是所有类的对象都可以被序列化,严格来讲,需要被序列化的类对象往往需要传输使用,同时这个类必须实现java.io.Serializable接口。但是这个接口并没有任何的⽅方法定义,只是一个标识⽽而已。例如这个例子的对象就可以被序列化:import java.io....

2019-06-02 00:10:23 85

翻译 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。

1、原题描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3要求:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O...

2019-05-03 15:59:04 4037

原创 直接插入排序

直接插入排序1、什么是直接插入排序?把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。2、具体流程首先在当前有序区R[1…i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后将R[k..i-1]中的记录均后移一个位置,腾出k位置上的空间插入R[i]。若R[i]的关键字大于等于R[1..i-1]中所有...

2019-04-28 16:29:18 78

原创 对于一个单链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。

对于一个单链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。1、问题描述:给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例:1->2->2->1 返回:true2、解决思路找到链表中间节点(若链表的节点数偶数个,返回中间第二个)。将中间节点后面的...

2019-04-24 16:29:01 1326

原创 在一个有序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->51、解决方案我们重新构建一个链表来存放不重复的节点,设置一个引用,遍历原链表,遇到重复的节点往下走,一直到其后继节点与当前节点不相同,此时,我们继续向下走,判断这个后继节点本身...

2019-04-24 11:17:30 421

翻译 将一个数组从左开始第几位之前的进行旋转:左旋数组,如:将"abcdef"第2位之前(a为0号位置)进行旋转----》 "cdefab"

将一个数组从左开始第几位之前的进行旋转:左旋数组,如:将"abcdef"第2位之前(a为0号位置)进行旋转----> “cdefab”解决思路:将第n位之前需要变换的那部分字符串反转,例中经此变换后:ba cdef然后余下的部分进行反转,例中经此变换后:ba fedc最后整体再进行一次反转,例中经此变换后:cdef ab方法实现:这里,由于St...

2019-04-14 12:13:58 294

原创 一道面试题:i am biter 逆置为:biter am i

一道面试题:i am biter 逆置为:biter am i1、解决思路首先我们明确一点,这是每个单词的整体倒置;明确了这一点,我们可以在遍历字串时,先设计一个StringBuffer来暂存遇到空格之前的字符,每遇到空格就利用insert()方法让其插入到另一个StringBuffer的0号位置,并追加一个空格添加到末尾,以达到单词整体逆置并分开的效果。3、方法实现public s...

2019-04-13 00:39:30 354

原创 统计字符串中数字个数 //如:"abc21b416u" ===> 输出5

统计字符串中数字个数 , 如:“abc21b416u” ===> 输出5可以采用直接判断的方式如:if(((chs[i] <= 'z') && (chs[i] >= 'a')) || ((chs[i] <= 'Z') && (chs[i] >= 'A')))也可以采用比较ASCII码的方式:if(((chs[i...

2019-04-12 23:40:02 1076

转载 一道面试题:字符串转化(压缩) “aabbccdaa” -> "a2b2c2d1a2"

一道面试题字符串转化(压缩) “aabbccdaa” -> “a2b2c2d1a2”大佬的原文:https://blog.csdn.net/lds_lsj/article/details/487522991、解决方案这里如果我们想在原字符串上直接替换,我们可以预想到对一个时刻在变的字符串的操作的情况,非常复杂。那么我们采取新建一个变量以填充的方式构建这样的一个压缩字符串,这样就...

2019-04-12 23:15:34 1357 3

原创 Java抽象类与接口

Java抽象类与接口1、抽象类抽象类是abstract修饰的类,不能生成对象,抽象类一般含有抽象方法,它的意义在于继承,它的定义格式为;abstract class 类名称 [extends 父类名称] [implements 接口名称列表] { 成员变量定义以及初始化; 成员方法的定义以及初始化;}需要注意:抽象类可以没有抽象方法,但抽象方法必须定义在抽...

2019-04-10 21:32:43 119

翻译 浅谈工厂设计模式

浅谈工厂设计模式1、简单工厂模式又名静态工厂方法,实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。一个简单实例:interface Computer{//定义一个Computer接口 void printComputer();}class MacbookProComputer implements Computer...

2019-04-10 19:03:07 238

空空如也

空空如也

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

TA关注的人

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