后端
文章平均质量分 81
JAVA
TPH-BETTER
不要低估时间
展开
-
重载和重写
转自。转载 2022-08-10 11:16:41 · 3836 阅读 · 1 评论 -
Zookeeper实现简单分布式锁
比如当前线程获取到的节点序号为/locks/seq-00000003,然后所有的节点列表为[/locks/seq-00000001,/locks/seq-00000002,/locks/seq-00000003],则对/locks/seq-00000002这个节点添加一个事件监听器。创建节点成功后,获取/locks目录下的所有临时节点,再判断当前线程创建的节点是否是所有的节点的序号最小的节点。如果当前线程创建的节点不是所有节点序号最小的节点,则对节点序号的前一个节点添加一个事件监听。......转载 2022-08-08 15:21:29 · 297 阅读 · 0 评论 -
equals和==
1、==用来比较两个变量的值是否相等,一般用于比较基本数据类型,如果比较的变量为引用类型(对象)的时候,比如:Object a = new Object(),a占用一块内存,new Object()占用另一块内存,a中存储的值就是new Object()内存的首地址。2、equals方法比较的是两个独立对象的内容是否相等。这时a==b为false,a.equals(b)为true。.........原创 2022-08-08 14:59:28 · 2718 阅读 · 0 评论 -
JAVA基本数据类型及转化
转自。转载 2022-08-04 16:44:38 · 1739 阅读 · 0 评论 -
Spark Sql 函数
Spark Sql 函数字符串函数字符串截取字符串截取之substring_index函数substring_index(str,delim,count)其中:str:要处理的字符串;delim:分隔符;count:计数①count为正数的情况下,从左往右数,第count个分隔符的左边的全部内容例子:str=www.baidu.comsubstring_index(str,’.’,1) 结果是:wwwsubstring_index(str,’.’,2) 结果是:www.ba原创 2021-11-29 17:48:29 · 7628 阅读 · 0 评论 -
SQL函数
ROW_NUMBER() over(partitioned by xxx order by xxx) select * from (select ROW_NUMBER()over(partition by Aid order by BidTime desc) rowId,* from auto_AuctionRecords where Uid=353) as AuctionRecords where rowId=1先按aid分组,在按时间降序排列然后给每组设置编号,在查原创 2022-03-02 17:57:09 · 248 阅读 · 0 评论 -
Java异常try{}catch{}中的return机制
在探索try{}catch{}finally{}中return的时机之前,我们先根据return的位置,定义一下return的类型。转载 2022-08-02 10:56:07 · 283 阅读 · 0 评论 -
Cookie和Session
视频。原创 2022-07-28 21:59:15 · 207 阅读 · 0 评论 -
创建线程的3种方式
转自。转载 2022-07-26 20:38:51 · 98 阅读 · 0 评论 -
利用kafka实现消息总线Spring Cloud Bus
相信大多数读者之前都使用过各种各样的消息队列,例如RabbitMQ、kafka等等,消息总线和他的概念差不多,在微服务系统的架构中,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有的微服务都连接上来,由于该主题中产生的消息会被所有实例监听和消费,所以我们称他们为消息总线。在总线上的各个实例都可以方便的广播一些需要让其他连接到该主题上的实例都知道的消息,例如配置的变更或者其他一些管理操作等。......转载 2022-07-25 20:17:27 · 946 阅读 · 0 评论 -
JAVA面试集锦(二)
多个线程同时访问一个共享资源并有至少一个线程对其进行修改时,导致数据出现读写不一致的现象。转载 2022-07-22 15:54:36 · 98 阅读 · 0 评论 -
Java 对象集合数据导出到Excel
Java 对象集合数据导出到Excel导出类package test;import java.io.FileOutputStream;import java.io.OutputStream;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.Map;import java.util.UU转载 2022-01-04 16:15:15 · 1772 阅读 · 0 评论 -
文件上传下载
配套视频。原创 2022-07-19 21:13:21 · 153 阅读 · 0 评论 -
JUC包下的常见类
可重入锁;信号量;计数器;循环屏障。转载 2022-07-19 18:26:01 · 3075 阅读 · 0 评论 -
HTTP、HTTPS详解及相关面试题
对称加密算法双方持有相同的密钥,进行加密速度快,典型对称加密算法DES、AES。非对称加密算法密钥成对出现(私钥、公钥),私钥只有自己知道,不在网络中传输;而公钥可以公开。相比对称加密速度较慢,典型的非对称加密算法有RSA、DSA。.........转载 2022-07-19 17:45:47 · 879 阅读 · 0 评论 -
Tomcat部署Web项目的3种方式
转自https://blog.csdn.net/weixin_44259233/article/details/121085077这是最简单粗暴的方式:将web工程打成war,丢进tomcat/webapps目录即可,tomcat会自动解压。无需修改任何配置文件即可完成部署。这里我准备了tomcat8.5.43与dubbo控制台的war包来做测试。 ①启动tomcat②将war丢进webapps目录,tomcat会自动解压该war包。 浏览器直接访问:localhost:8080/dubbo-转载 2022-07-13 15:29:39 · 6249 阅读 · 0 评论 -
自定义类加载器加载过Class文件被替换后如何生效
转自https://cloud.tencent.com/developer/article/1636595这篇文章是在上一篇文章的基础上进行补充。写这篇文章的原因是因为在今天的面试中,聊到自己小程序后台在线编辑代码,其中涉及到防止非必要重启(如果是系统类加载器就不支持热加载,需要重启JVM才能加载已经被加载过且被修改过的类),我使用自定义类加载去加载某些类,然后面试官问到这样一个问题:如果你第一版的class文件放服务器上去被加载之后,你又修改了源代码重新编辑替换,此时怎么解决?听到这个问题的时候,我愣住了转载 2022-07-12 22:24:28 · 392 阅读 · 0 评论 -
@TableField介绍和使用
转自https://blog.csdn.net/Nathan_Yang/article/details/103265215?spm=1001.2014.3001.5501###Error querying database. Cause:com.mysql.jdbc.exception.jdbc4.MySQLSyntaxErrorException:Unknown column ‘***’ 'in field list’订票数量这个字段是我表里面没有的,但是又经常用到的。...转载 2021-12-14 22:30:11 · 28432 阅读 · 3 评论 -
ThreadPoolExecutor 线程池的七个参数
转自https://blog.csdn.net/FUTEROX/article/details/122893521现在点进去看 newFixedThreadPool 的实现创建线程池的方法实现了 ThreadPoolExecutor 方法。从源码中可以看出,线程池的构造函数有7个参数,分别是 corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。那么接下来分别说说这七个参数。线程池核心线程大小线程转载 2022-07-12 17:22:55 · 177 阅读 · 0 评论 -
面试集锦——集合
1、⾸先CopyOnWriteArrayList内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素时,会复制⼀个新的数组,写操作在新数组上进行,读操作在原数组上进⾏2、并且,写操作会加锁,防止出现并发写入丢失数据的问题3、写操作结束之后会把原数组指向新数组CopyOnWriteArrayList允许在写操作时来读取数据,大大提高了读的性能,因此适合读多写少的应用场景,但是CopyOnWriteArrayList会比较占内存,同时可能读到的数据不是实时最新的数据,所以不适合实原创 2022-07-12 12:11:01 · 134 阅读 · 0 评论 -
Redis相关面试题
Redis的数据结构有:Redis的主从复制是提高Redis的可靠性的有效措施,主从复制的流程如下:缓存中存放的大多都是热点数据,目的就是请求可以直接从缓存中获取到数据,而不用访问 Mysql。原创 2022-07-09 09:17:07 · 131 阅读 · 0 评论 -
@Configuration注解的详细介绍(也就是@Configuration注解的作用)
转自https://www.cnblogs.com/init-qiancheng/p/14623522.html由该注解定义可知,该注解首先是一个组件,所以会被@SpringBootApplication注解扫描(扫描的前提是该注解必须在与启动类相同包或者子包中) 该注解中有一个属性 proxyBeanMethods,该属性的默认值是true,这个属性可以分为两种模式使用Full模式,这个配置类就被代理,就可以解决组件之间的依赖关系,他会先检查容器中是否存在组件的实例,如果存在就会直接使用,不存在才会进行转载 2022-07-07 13:14:46 · 853 阅读 · 0 评论 -
SpringBoot自动装配原理及自定义starter开发
springboot自动装配原理及自定义starter开发starter解决的问题思考的问题解析自动装配加载yml、properties、yaml文件自动装配原理如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入starter解决的问题 当我们定义一个公共的组件时,如果原创 2021-05-01 22:34:24 · 827 阅读 · 0 评论 -
MVC设计模式
转自https://blog.csdn.net/lj15559275886/article/details/121803156MVC设计模式一般是指MVC框架,Model数据模型层,View视图层,Controller控制层。1、web项目中,用户请求网页上一个URL路径,web服务器获取请求后如何解析用户输入并执行相关逻辑处理,最终跳转至正确的页面反馈结果,这些工作是在Controller控制层完成的。2、在请求过程中,用户信息被封装在实体类中,实体类在web项目中属于数据模型层model。3、在请求显示转载 2022-07-06 09:27:51 · 205 阅读 · 0 评论 -
LeetCode算法—排序算法(以升序为例)
执行流程参考视频https://www.bilibili.com/video/BV1PT4y13767?p=19&vd_source=3558fd85254f40ca0361146cc92d2cce快速排序原理是首先要找到一个中枢,把小于中枢的值放到他前面,大于中枢的值放到他的右边,然后再以此方法对这两部分数据分别进行快速排序。这里是先用待排数组的第一个作为中枢,把数组划分两部分,小于他的往前挪,那大于他的自然就在后面了,然后再把中枢值放到大于和小于他之间的位置。三、冒泡排序1. 冒泡排序原理将第原创 2022-06-30 17:49:44 · 422 阅读 · 0 评论 -
Leetcode算法—反转链表(迭代、递归、栈、双链表求解)
反转一个单链表。输入: 1->2->3->4->5 输出: 5->4->3->2->1反转单链表这里用两种方式实现:递归和迭代先了解一下递归和迭代的区别递归和迭代的区别含义不同:递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。结构不同:递归与迭代都是基于控制原创 2022-03-27 22:17:39 · 475 阅读 · 0 评论 -
Spring全家桶面试题(四)之SpringCloud
SpringBoot是用来快速开发Spring应用的一个脚手架、其设计目的是用来简化Spring应用的初始搭建以及开发过程。SpringBoot是Spring生态的产品。Spring Framework是一个容器框架。SpringBoot 它不是一个框架、它是一个可以快速构建基于Spring的脚手架(里面包含了Spring和各种框架),为开发Spring生态其他框架铺平道路,2个不是一个层面的东西, 没有可比性。1.通过@SpringBootApplication引入了@EnableAutoConfigu原创 2022-06-19 13:46:11 · 328 阅读 · 0 评论 -
Spring全家桶面试题(二)之SpringMVC
(1)解决post请求乱码问题:在web.xml中配置一个CharacterEncodingFilter过滤器,设置成utf8;(2)get请求中文参数出现乱码解决方法有两个:①修改tomcat配置文件添加编码与工程编码一致,如下:②另外一种方法对参数进行重新编码:(3)确保前端请求的数据不是乱码,确保开发工具和文件本身的编码为utf-81、控制器也是一个bean,默认是单例。2、单例的Bean如果有状态则线程不安全,如果无状态则线程安全(有状态指有成员变量声明在类中)(1)用户发送请求至前端控制器原创 2022-06-18 14:29:15 · 98 阅读 · 0 评论 -
JavaWeb项目 Web.xml文件详解(启动顺序)
web.xml作用是用来初始化配置信息的。比如:Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等web.xml加载过程(步骤)当启动一个WEB项目的时候,容器(比如Tomcat等),首先会读取项目web.xml配置文件里的配置,如果这一步骤不出错且完成之后,项目才能正常启动起来1、在启动Web项目时,容器(如Tomcat)会首先读web.xml配置文件中的两个节点<listener></listener>和 &原创 2021-12-26 22:07:09 · 3069 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(九)
事件事件发布监听了对应事件的监听器当监听器监听的事件发布之后,对应的监听器就会执行。事件(ApplicationEvent) :负责对应相应监听器,事件源发生某事件是特定事件监听器被触发的原因。监听器(ApplicationListener): 对应于观察者模式中的观察者。监听器监听特定事件,并在内部定义了事件发生后的响应逻辑。事件发布器(ApplicationEventMulticaster ):对应于观察者模式中的被观察者/主题, 负责通知观察者对外提供发布事件和增删事件监听器的接口,原创 2022-06-16 16:37:07 · 113 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(八)
⑴ 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚, 因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性原创 2022-06-16 14:00:13 · 132 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(七)
设置暴露当前代理对象到本地线程, 可以通过AopContext.currentProxy() 拿到当前正在调用的动态代理对象54.Spring的AOP是在哪里创建的动态代理?正常的Bean会在Bean的生命周期的初始化后, 通过BeanPostProcessor.postProcessAfterInitialization创建aop的动态代理还有一种特殊情况: 循环依赖的Bean会在Bean的生命周期属性注入时存在的循环依赖的情况下, 也会为循环依赖的Bean通过MergedBeanDefi原创 2022-06-15 21:00:23 · 125 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(六)
AOP(Aspect-Oriented Programming),一般称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理等。AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。**OOP(面向对象编程)**针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。原创 2022-06-15 15:17:57 · 105 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(五)
1.因为BeanDefinition会在ioc容器加载的先注册, 而BeanFactoryPostProcess就是在所有的BeanDefinition注册完后做扩展的,所以要先加载BeanFactoryPostProcess2. 解析配置类的组件 它就实现BeanFactoryPostProcess, 所以要先去加载BeanFactoryPostProcessBean的创建顺序是由BeanDefinition的注册顺序来决定的, 当然依赖关系也会影响Bean创建顺序 (A-B)。主要是由注解(原创 2022-06-14 20:27:39 · 177 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(四)
Bean生命周期:指定的就是Bean从创建到销毁的整个过程: 分4大步:如何解决:采用三级缓存解决,也就是3个map。一级缓存:存储完整的Bean三级缓存:a. 缓存的是函数接口:通过lambda 把方法传进去( 把Bean的实例(纯净态的实例)和Bean名字传进去(aop创建) )b. 不会立即调:(如果在实例化后立即调用的话:所有的aop 不管bean是否循环依赖都会在 实例化后创建proxy, 正常Bean 其实spring还是希望遵循生命周期在初始化创建动态代理, 只能循环依赖原创 2022-06-13 20:39:03 · 356 阅读 · 1 评论 -
Spring全家桶面试题(一)之Spring Framework(三)
在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化、组装和管理的对象。概念简单明了,我们提取处关键的信息:Spring框架支持以下五种bean的作用域:注意: 缺省的Spring bean 的作用域是Singleton。使用 prototype 作用域需要慎重的思考,因为频繁创建和销毁 bean会带来很大的性能开销。指定作用域的方式:由于不会每次都新创建新对象,所以有一下几个性能上的优势:不是,Spring框架中的单例原创 2022-06-11 16:11:26 · 115 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(二)
总的来说:概念态 ==》定义态 ==》纯净态 ==》成熟态从概念态 ==》定义态的过程1、实例化一个ApplicationContext的对象;2:调用bean工厂后置处理器(new一个ApplicationContext对象的时候,调用了refresh方法,refresh就是IOC的整个加载过程,它调用的invokeBeanFactoryPostProcessors方法)解析配置类;3:扫描配置的扫描包(component-scan base-package)下的所有类信息,看是否配置了@Compo原创 2022-06-09 13:22:57 · 119 阅读 · 0 评论 -
Spring全家桶面试题(一)之Spring Framework(一)
搭配视频地址https://www.bilibili.com/video/BV1vS4y1h7Kn?p=1什么是spring核心解释spring是一个轻量级的开源容器框架。spring是为了解决企业级应用开发的业务逻辑层和其他各层对象和对象直接的耦合问题spring是一个IOC和AOP的容器框架。特点:方便解耦,简化开发通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等原创 2022-06-08 20:47:35 · 362 阅读 · 0 评论 -
JAVA面试集锦(一)
CopyOnWriteArrayList的底层原理是怎样的⾸先CopyOnWriteArrayList内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素 时,会复制⼀个新的数组,写操作在新数组上进⾏,读操作在原数组上进⾏并且,写操作会加锁,防⽌出现并发写⼊丢失数据的问题写操作结束之后会把原数组指向新数组CopyOnWriteArrayList允许在写操作时来读取数据,⼤⼤提⾼了读的性能,因此适合读多写少的应 ⽤场景,但是CopyOnWriteArrayList会⽐较占内原创 2022-04-23 22:50:27 · 800 阅读 · 0 评论 -
数据结构—散列表及HashMap的put方法和扩容机制
定义散列表:散列表(也叫哈希表),就是把任意长度值(key)通过散列算法变换成固定长度的key(地址)通过这个地址进行访问的一种数据结构也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找记录的速度。而这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希函数哈希碰撞通过哈希算法之后映射到散列表的位置上但已经有值的时候,就称为哈希碰撞。哈希碰撞解决办法JDK1.7:采用链表引用 JDK1.8:链表引用+红黑树红黑树查询的原理:红黑树又原创 2022-03-28 20:34:24 · 1087 阅读 · 0 评论