![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 54
崔雨田
这个作者很懒,什么都没留下…
展开
-
dubbo 的SPI机制Adaptive适配
SPI机制和Adaptive适配机制Adaptive适配机制我们可以使用dubbo的SPI机制, 将dubbo中的一些扩展点通过注解改变原有的实现SPI(“dubbo”), 除此之外Adaptive适配机制则可以帮助我们从参数级别对dubbo的扩展点做出改变。接口@SPI("dubbo")public interface AdaptiveExt2 { @Adaptive() String echo(String msg, URL url);}实现类public class原创 2021-10-17 16:35:32 · 466 阅读 · 0 评论 -
dubbo的SPI机制
SPI 注解SPI 注解加载流程目录 MATA-INF.dubbo.internal文件名:com.weimob.spi.AdaptiveExt2dubbo= com.weimob.spi.DubboAdaptiveExt2cloud= com.weimob.spi.SpringCloudAdaptiveExt2thrift= com.weimob.spi.ThriftAdaptiveExt2接口@SPI("dubbo")public interface AdaptiveExt2 {原创 2021-10-17 16:29:24 · 173 阅读 · 0 评论 -
tomcat 运行web项目乱码 & maven项目package修改war&jar文件名
tomcat 运行web项目乱码1、修改tomcat的运行环境变量Name: JAVA_TOOL_OPTIONSValue: -Dfile.encoding=UTF-82、添加jvm运行参数-Dfile.encoding=UTF-8maven项目package修改war&jar文件名在pom文件中添加构建参数:<build> <finalName>ssm_esms</finalName></build>...原创 2021-10-05 22:36:29 · 128 阅读 · 0 评论 -
Spring Boot 在 linux 部署
一、项目打成 jar 包参考以下项目打包以及日志配置的方法,将项目打包后的文件上传的服务器,随后开始运行。参考:Spring Boot 项目打包参考:Spring Boot 日志配置二、后台挂起运行项目运行项目之后,可以查看输出的日志文件。 nohup java -jar api.jar & ...原创 2021-09-06 00:39:21 · 157 阅读 · 0 评论 -
JDK SPI 机制,底层探究。
JDK SPI 机制什么是 SPI SPI(Service Provider Interface)主要是被框架开发人员使用的一种技术。例如,使用 Java 语言访问数据库时我们会使用到 java.sql.Driver 接口,不同数据库产品底层的协议不同,提供的 java.sql.Driver 实现也不同,在开发 java.sql.Driver 接口时,开发人员并不清楚用户最终会使用哪个数据库,在这种情况下就可以使用 Java SPI 机制在实际运行过程中,为 java.sql.Driver 接口寻找原创 2021-08-29 18:19:01 · 138 阅读 · 0 评论 -
注册Redis为windows本地服务
注册Redis为windows本地服务redis-server.exe --service-install redis.windows.conf搜索打开服务,找到Redis 服务,运行服务。原创 2021-08-03 15:26:53 · 120 阅读 · 0 评论 -
2021 京东 校招面试
一面自我介绍询问深度学习项目== 和 equals 区别string = “a”、new String(“a”) 使用 == 和 equals 对比的结果对于接口应该如何定义划分方式接口内部调用逻辑调用多个方法 or 一个方法复用开启一个线程的方式如何解决并发问题加锁、CAS、ThreadLocal乐观锁的实现过程、如何用乐观锁控制并发场景扣减余额时候,乐观锁失败怎么处理ThreadLocal 的使用场景hashmap数据存储结构扩容机制如果有人原创 2021-07-11 14:17:09 · 522 阅读 · 0 评论 -
spring boot 日志配置文件,开发、测试、生产环境
<?xml version="1.0" encoding="UTF-8"?> <!-- 彩色日志 --><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /><conversionR原创 2021-05-04 13:45:51 · 319 阅读 · 0 评论 -
eclipse java web项目右击项目,Run As 没有Run On Server选项
问题描述Run As 没有Run On Server选项解决办法原创 2021-04-20 09:10:16 · 917 阅读 · 0 评论 -
AB 压测工具命令
-n 即requests,用于指定压力测试总共的执行次数。-c 即concurrency,用于指定的并发数。-t 即timelimit,等待响应的最大时间(单位:秒)。-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。-T 即content-type,用于设置Content-Type请求头信息,例如:applic原创 2021-03-19 11:13:41 · 391 阅读 · 0 评论 -
Spring Data Jpa 软删除
在需要设置软删除的实体类上添加以下注解即可@SQLDelete(sql = "update sdk_event_chart set deleted = 1 where id = ?")@Where(clause = "deleted = 0")@Data@Entity@DynamicUpdate@DynamicInsert@Table(name = "sdk_event_chart", schema = "log_monitor_system", catalog = "")public cl原创 2021-01-15 09:16:48 · 1104 阅读 · 1 评论 -
java 数据结构之二叉堆
树的基本概念节点的度: 这个节点子树的个数树的度: 所有节点中度的最大值叶子节点: 度为0的节点非叶子节点: 度不是0的节点节点的深度: 从根节点到当前节点唯一路径上的节点总数节点的高度: 从当前节点到最远叶子节点的路径上的节点总数树的深度: 所有节点深度的最大值树的高度: 所有节点高度的最大值树的深度等于树的高度有序树树中任意节点的子节点之间有顺序的关系无序树树中任意节点的子节点之间没有顺序关系二叉树每个节点度的最大值为 2一个节点最多拥有2个子树左子原创 2021-01-11 16:46:46 · 283 阅读 · 0 评论 -
Spring data jpa 配置多数据源
一、数据源配置文件AlertDbConfig@Configuration@EnableTransactionManagement@EnableJpaRepositories( entityManagerFactoryRef = "entityManagerFactoryAlert", transactionManagerRef = "transactionManagerAlert", basePackages = {"com.dianhun.multi原创 2020-12-30 13:23:44 · 447 阅读 · 0 评论 -
阻塞队列之 LinkedBlockingQueue分析探究
LinkedBlockingQueue内部使用Node 节点组成一个单链表head 、 last 并且保存了头尾节点、takeLock = new ReentrantLock();删除的时候锁putLock = new ReentrantLock();存放的时候锁notEmpty = takeLock.newCondition();不为空时候的newConditionnotFull = putLock.newCondition();不满时候的newConditio.原创 2020-12-22 14:11:24 · 193 阅读 · 2 评论 -
阻塞队列之 ArrayBlockingQueue 分析探究
阻塞队列ArrayBlockingQueue内部使用数组来实现具有存放位置具有弹出位置数量内部含有 ReentrantLock一个不为空的Condition \ 一个不满的 Conditionpublic class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable { /**原创 2020-12-21 19:23:58 · 162 阅读 · 2 评论 -
Java GUI绘制三角形
效果图主要流程Main 展示出主界面SanJiao 用来接受主界面的坐标值Work 用来检查输入的坐标是否能构成三角形Ans 用来存放计算出的周长和面积Drwg 从SanJiao中获得坐标值,并且绘制出图像BackgroundPanel.java 设置背景图代码展示public class Drwg { public static void write(SanJiao sanJiao) { JFrame frame = new JFrame(); // 设置点击关闭原创 2020-12-21 13:50:54 · 1484 阅读 · 0 评论 -
秋招面试 宝宝树
二面自我介绍介绍项目自己接口,面临高并发怎么处理?如果是在多台机器怎么处理?java 里面比较熟悉的地方, 聊一个点就行java 集合聊聊 arraylist 和 hashsetmysql 里面比较熟悉的地方事务、索引聊聊事务和索引你在实验室都做些什么工作算法和数据结构有无熟悉的地方, 聊一个点就行说说自己的DFS 、BFS的见解和心得一面自我介绍介绍项目深度学习: 矩阵运算、求逆、梯度下降、学习率。java 里面的锁原创 2020-12-18 14:07:59 · 155 阅读 · 0 评论 -
秋招面试 捷信二面
自我介绍spring 框架中用到的关键技术询问知道的设计模式建造者模式的用处,如何实现一个建造者模式mysql中的事务spring 中怎么使用事务, spring事务的传播方式介绍单元测试如何看待写单元测试一些开放性问题职业规划和你的上级出现矛盾怎么处理交给你的任务不能按时完成时候怎么处理平时怎么学习如果公司和你想的不一样怎么处理需要你改变语言怎么处理...原创 2020-12-18 14:06:01 · 121 阅读 · 0 评论 -
秋招面试 捷信一面
自我介绍介绍项目介绍AOP的概念以及如何使用AOP使用AOP实现记录请求日志的功能如何使用AOP记录方法的执行时间介绍ThreadLocal是什么意思ThreadLocal具体使用的时候是怎么用的还用过AOP做过那些功能redis的数据类型都有那些, 用redis存入过什么东西redis的String类型都可以存什么,可以存对象吗优化数据库的查询mysql 数据量特别大的时候会出现什么样的事情什么是Elastic search, 和..原创 2020-12-18 14:04:36 · 136 阅读 · 0 评论 -
Java 对元素进行排序 Comparator接口、Comparable接口的区别
非基本类型实现比较定义外部比较器实现 Comparator 接口定义外部比较器的方式实现比较是很灵活的,我们可以对指定的元素建立不同的比较器来实现不同的比较策略而不用考虑其他的因素。比如说:分别建立按照ID 升序、降序排序的排序器,这样我们在实现排序方法的时候就不用考虑排序策略,只专注于排序算法。主要是实现Comparator中的 int compare(T o1, T o2); 方法, 外部使用比较器进行元素比较的时候会使用这个方法来进行元素之间的比较public class Compa原创 2020-12-18 12:37:15 · 208 阅读 · 0 评论 -
小米手机部 Java 面试
十一月二十五日, 面试时间三十分钟。自我介绍讲解项目从项目开始问线程线程安全的集合类说出自己知道的设计模式讲解代理模式hashmap的存储原理,添加元素和扩容的机制线程中的 run、start方法进程之间的通讯方式DMA是什么深浅拷贝java GC的流程垃圾回收算法分代回收介绍排序算法有几种快速排序的算法思想时间复杂度...原创 2020-11-25 16:23:54 · 230 阅读 · 0 评论 -
Java 集合源码探究之Vector 底层实现、扩容、线程安全
Vector类图得到的信息实现 Cloneable 接口, 可以拷贝实现RandomAccess接口, 可以随机访问实现Serialzable 接口, 可以序列化实现List 以及继承AbstractList类类信息public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializabl原创 2020-09-29 14:53:00 · 306 阅读 · 0 评论 -
String 探究
String1.8public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ priva原创 2020-09-27 15:15:02 · 61 阅读 · 0 评论 -
java 集合源码探究之 LinkedList 底层实现,常用方法分析。
类图public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable{ }实现Serializable实现Cloneable实现Deque实现Queue继承AbstractList继承AbstractSequentialListL原创 2020-09-25 17:18:31 · 139 阅读 · 0 评论 -
java使用数组模拟列表并且考虑扩容
主要功能添加元素删除元素得到元素初始大小自动扩容public class Tb { private static int[] arr = new int[10]; private static int index = 0; public static int get(int e) { return arr[e]; } public static void remove(int e) { for (int i = e原创 2020-09-24 16:36:10 · 86 阅读 · 0 评论 -
java 得到指定范围之内的所有日期
日期转换工具类字符串转换日期指定日期之后\之前的日期指定日期和之后\之前X 天范围之内的所有日期去除日期中间的 “-”public class DateUtils { /** * 得到当前日期和当前日期之后的所有日期 (字符串) * * @param day * @param pattern * @return */ public List<String> getDateStringAfterDay(in原创 2020-09-23 20:41:55 · 605 阅读 · 0 评论 -
java 阻塞队列、同步队列总结
阻塞队列public class demo1 { /** * 阻塞队列 * <p> * 会抛出异常 * java.lang.IllegalStateException: Queue full * <p> * java.util.NoSuchElementException * @param args */ public static void main(String[] args) {原创 2020-09-18 23:08:02 · 309 阅读 · 0 评论 -
java 集合源码探究之ArrayList 扩容机制、底层实现原理
List接口的继承关系图ArrayList构造函数new ArrayList<>()构造函数, 构造出来一个空的集合,并且使用给定的大小初始化。可以得到以下信息可以指定大小创建ArrayList其底层是由数组实现具有默认的初始化大小 /** * Constructs an empty list with the specified initial capacity. * * @param initialCapacity the原创 2020-09-16 00:25:28 · 211 阅读 · 0 评论 -
java基础之 深拷贝、浅拷贝
克隆创建对象1、实现 Cloneable 接口2、调用 clone() 方法浅拷贝拷贝的只是引用堆中只有一个实例栈中多了一个拷贝的引用改变原有对象的属性, 拷贝对象也会变public class Test { /** * 原型模式。 就是能够对之前的对象进行克隆, 然后产生一个新的对象 * 浅克隆 * 1、实现 cloneenble 接口 * 2、重写 clone方法 * * @param args */原创 2020-09-12 14:44:33 · 101 阅读 · 1 评论 -
JVM 垃圾回收 之 强引用、弱引用、软引用、虚引用
强引用强引用 是最常见的引用, 首先用 new 关键字创建对象的时候。这个对象就是一个强引用也就是默认的引用类型。 只要强引用的对象是可触及的, 那么他就不会被回收!如果强引用对象超过了他的作用范围或者被设置为 null 那就可以被回收了。只要有强引用在, 当内存不足的时候jvm就算抛出OOM也不会回收掉它!public class Strong { /** * 强引用 是最常见的引用, 首先用 new 关键字创建对象的时候 * 这个对象就是一个强引用也就是默认的引用类型原创 2020-09-12 14:28:02 · 556 阅读 · 1 评论 -
JAVA基础之枚举类
枚举类public class TestOne { /** * 这是因为enum类型的每个常量在JVM中只有一个唯一实例,所以可以直接用==比较 * * @param args */ public static void main(String[] args) { Weekday sat = Weekday.SAT; Weekday sun = Weekday.SUN; System.out.print原创 2020-09-09 16:47:23 · 98 阅读 · 0 评论 -
Java GUI 练习
图示code private Frame f; private MenuBar bar; private TextArea ta; private Menu fileMenu; private MenuItem openItem, saveItem, closeItem; private FileDialog openDia, saveDia; private File file; MyMenuTest() { init(); } public void init()原创 2020-08-31 09:52:22 · 169 阅读 · 0 评论 -
Java8 HashMap源码分析面试必备
Java8 HashMap关于jdk 8 中hashmap的知识总结讲围绕着下面的几个问题来开展, 带着问题来一步一步探索未知。1、key的hashcode取模来得到数组的下标2、hashmap的初始化大小3、什么时候转化为红黑树4、什么时候会扩容5、hashmap在构造器中是没有初始化的6、如何 put元素7、如何 get元素8、负载因子 为何 是 0.759、容量为何 都是2 的次幂10、hashmap的存储结构存储结构在jdk 1.原创 2020-08-30 16:37:06 · 639 阅读 · 0 评论 -
Spring中的事件监听, 完成测试
相关概念1、事件源:事件对象的产生者,任何一个EventObject都有一个来源2、事件监听器注册表:当事件框架或组件收到一个事件后,需要通知所有相关的事件监听器来进行处理,这个时候就需要有个存储监听器的地方,也就是事件监听器注册表。3、事件广播器:事件广播器在整个事件机制中扮演一个中介的角色,当事件发布者发布一个事件后,就需要通过广播器来通知所有相关的监听器对该事件进行处理。测试事件public class MsgSendEvent extends ApplicationContextE原创 2020-08-01 18:23:28 · 247 阅读 · 0 评论 -
力扣 343. 整数拆分
题目给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。思路尽可能拆分出来 3AC 代码class Solution { public int integerBreak(int n) {原创 2020-07-31 21:07:56 · 81 阅读 · 0 评论 -
力扣 T392 判断子序列
思路使用双指针,进行循环匹配。指针A 指向 字串的头, 指针 B 指向父串的头, 当字串和父串匹配的时候, 指针A 、B 就右移一位, 不匹配的时候指针B右移一位 public static void main(String[] args) { String s1 = "bbbbb"; String s2 = "aaabb"; /* * 使用双指针 进行循环匹配 */ int n = s1.len原创 2020-07-27 20:13:21 · 84 阅读 · 0 评论 -
HttpClient、okhttp3 简单示例
1、HttpClientmaven 依赖<!---文件上传--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.3</version> </depe原创 2020-07-27 19:59:01 · 1964 阅读 · 0 评论 -
Java 注解、反射、自定义注解、使用反射获得自定义注解信息
1、注解什么是注解 注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响。通过官方描述得出以下结论:注解是一种元数据形式。即注解是属于java的一种数据类型,和类、接口、数组、枚举类似。注解用来修饰,类、方法、变量、参数、包。注解不会对所修饰的代码产生直接的影响。注解的分类:内置注解、元注解、自定义注解内置注解:重写、废弃、镇压警告等。元注解:元注解的作用就是负责解释其他的注解。1、@targ原创 2020-07-19 18:46:55 · 161 阅读 · 0 评论 -
AOP 的详细说明以及基本的使用
AOP(Aspect-OrientedProgramming,面向切面编程),可以说是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。...原创 2020-07-19 17:41:23 · 40736 阅读 · 2 评论 -
mysql聚合索引、组合索引
索引排好序的快速查找数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。聚合索引聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个聚集索引存储记录是物理上连续存在,.原创 2020-07-02 15:21:50 · 4788 阅读 · 3 评论