自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java基础高频面试题带答案

文章目录深入理解OOP思想重载和重写的区别Java接口和抽象类有什么区别?什么是单例模式?有几种?String,StringBuilder和StringBuffer的区别?==和equals的区别hashCode和equalsJava的异常体系?受检查和非受检查异常区别?final关键字final、finally、finalize三个关键字的区别?final关键字finallyfinalizeJava中的泛型是什么 ? 使用泛型的好处是什么?(重点)冒泡排序BIO、NIO、AIO有什么区别?了解Java反射

2022-03-30 11:43:32 289

原创 多线程高频面试题带答案

文章目录进程和线程的区别进程的都有哪些状态?wait 和 sleep 方法的不同?怎么避免死锁?创建线程有几种方式线程池的原理线程池中线程复用的原理线程执行的顺序 -重要线程池的工作流程 -重要线程池的核心参数有哪些线程池的拒绝策略 -重要说一下对CAS的理解?说一下CAS的优点?说一下CAS的缺点?说一下你对synchronize的理解说一下公平锁和非公平锁的区别?lock和synchronize的区别?volatile的理解Java内存模型(JMM)ThreadLocal的理解进程和线程的区别我所理

2022-03-30 10:59:43 432

原创 Java集合容器高频面试题带答案

文章目录ArrayList和LinkedList的区别?Java本身就有一个数组了,为什么还要用ArrayList呢?有哪些线程安全的list呢?说一下HashMap的get() 和put() 方法?HashMap是怎么判断一个元素是否相同的?为什么说HashMap是线程不安全的?介绍一下HashMap如果这个时候面试官问你红黑树了解吗?ArrayList和LinkedList的区别?从底层,对数据的处理效率来回答。ArrayList:是连续存储的动态数组,适合随机访问。LinkedList:是

2022-03-28 21:41:18 895

原创 Redis高频面试题带答案

文章目录说下你对Redis的理解?Redis的过期数据的删除策略是什么?缓存穿透布隆过滤器怎么实现的:缓存击穿缓存雪崩Redis常见的数据结构以及使用场景分析说下你对Redis的理解?提示:从基本数据类型开始–》贯穿 持久化机制机制–》加上应用场景首先,Redis有5种数据类型,分别是String、list、set、zset、hash,我在项目中最常用的是String,因为String是Key-value形式存储的。Redis的话还有一个持久化机制,因为Redis是基于内存的,所以如果没有这个机

2022-03-28 21:40:21 1339

原创 MySQL高频面试题带答案

文章目录MySQL的存储引擎MySQL索引使用的是什么数据结构?B+树的结构是什么,跟B树有什么区别?为什么InnoDB选择B+树来作为索引?什么是回表?事务的基本特性事务的隔离级别你线上使用的是什么隔离级别?Mysql的锁有哪些索引的分类什么情况下适合建索引?什么情况下不适合建索引?SQL优化谈一下你是怎么用MySQL的索引?如何优化一条很慢的SQLMySQL的存储引擎提示:MyISAM和InnoDB的区别常用的就是MyISAM和InnoDBMyISAM只支持表级锁,而InnoDB支持表级锁和

2022-03-28 21:39:44 900

原创 Spring注解驱动开发个人心得总结

文章目录注册bean的方式通过自动扫描的方式注册bean@Scope注解详解@Lazy懒加载@Condition根据条件注册bean@Import注册bean使用Spring提供的FactoryBean(工厂Bean)来注册beanBean的声明周期--bean的初始化和销毁方法属性赋值@Value("${ }")详解自动装配@Autowire自动注入方式Aware相关的接口@Profile可以切换不同环境下的配置AOP报错:Null return value from advice does not ma

2022-03-27 22:02:21 668

原创 Spring框架中常用注解分析

@PostConstruct@PostConstruct该注解被用来修饰一个非静态的void()方法。当bean创建完成的时候,会后置执行@PostConstruct修饰的方法,只会在初始化的时候执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。// 以下两种注入方法,任选一种使用即可/*************************注入方法一,使用构造器注入*********************************************

2021-07-05 16:05:37 302

原创 为什么要在resources下面的META-INF中配置spring.factories

因为如果是公共的模块(base-common)里面的一些配置,比如对数据源的配置,虽然别的服务模块依赖公共模块,但是在别的服务启动的时候并不会扫描到base-common下的组件。案例://新建一个Test类public class Test { public Test() { System.out.println("Test加载"); }}如果我们要想将这个Test类注入到IOC中,以前的方式只能写到启动类的包下面,或者在启动类中加上@Comp..

2021-07-05 16:03:24 2682

原创 多线程的理解

多线程多线程的创建方式继承Thread类创建线程实现Runnable接口创建线程使用匿名内部类的形式创建线程使用lambda表达式创建线程使用Callable和Future创建线程特点:可以获取到返回结果Thread02 thread02 = new Thread02();FutureTask<String> task = new FutureTask<String>(thread02);new Thread(task).start();//

2021-07-02 16:03:41 58

原创 注解和反射的理解

反射Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。==> 本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。在运行时期,一个类只有一个Class

2021-06-30 18:07:37 318

原创 Nacos客户端启动以后频繁刷日志的问题

# 1、根据心跳日志,定位日志输出的包名c.a.n.client.config.impl.ClientWorker : get changedGroupKeys:[]# 2、在 IDEA 中搜索 ClientWorker 所在的包路径 package com.alibaba.nacos.client.config.impl;# 3、在任意格式的配置文件中将该包路径的日志设置为 ERROR 或者 WARN 级别即可# Nacos 注册中心客户端心跳日志禁用 get changedGrou

2021-06-29 10:00:54 2008

原创 《Java编程的逻辑》阅后心得

《Java编程逻辑》Java编程的逻辑第一部分 编程基础与二进制第一章 编程基础1.1 数据类型和变量1.2 赋值1.2.1 基本类型1.2.2 数组类型1.3 基本运算1.3.1 算术运算1.4 条件执行1.5 循环1.5.1 循环的4种形式1.5.2 循环控制Java编程的逻辑第一部分 编程基础与二进制第一章 编程基础1.1 数据类型和变量数据类型是用于对数据的分类,便于理解和操作。Java语言有8种基本数据类型:byte,short,int,long,float,double,char,

2021-06-26 13:47:37 452

原创 Java开发常见的坑(一)

Java开发常见的坑Java中equals方法造成空指针异常的原因及解决方案BigDecimalBigDecimal 的用处BigDecimal 的大小比较BigDecimal 的使用注意事项总结基本数据类型与包装数据类型的使用标准不要在 foreach 循环里进行元素的 remove/add 操作Java中equals方法造成空指针异常的原因及解决方案Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals// 不能使用一个值为null的引用类型变量来调用非静态

2021-04-22 22:16:55 179

原创 Spring注解驱动(三)之Bean的声明周期

文章目录Bean的声明周期第一种:使用@bean指定初始化和销毁方法第二种:实现InitializingBean和DisposableBean接口第三种:使用JSR250:@PostConstruct和 @PreDestroy第四种:BeanPostProcessor-后置处理器Bean的声明周期因为bean的声明周期是:bean创建–初始化–销毁的方法容器管理bean的声明周期:我们可以自定义初始化和销毁方法,容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁的方法构造

2021-03-10 15:41:51 267

原创 Spring注解驱动(二)

文章目录@conditional - 按照条件注册Bean@Import -- 给容器中快速导入一个组件使用FactoryBean注册组件@conditional - 按照条件注册Bean@Conditional 按照一定的条件进行判断,满足条件给容器中注册bean如果系统是windows,给容器中注解(“bill”)如果系统是linux,给容器中注解(“linux”)@Conditional({ WindowsCondition.class })加在方法上,表示这个类在满足这个条件就加

2021-03-09 22:44:34 149 1

原创 Spring注解驱动(一)

文章目录@Configuration注解+@Bean给容器中注入组件@ComponentScan注解是自动扫描组件,也可以指定扫描规则@Scope注解设置组件的作用域懒加载@Configuration注解+@Bean给容器中注入组件在maven项目中,定义一个Person实体类,配置beans.xml文件<bean class="com.atguigu.pojo.Person" id="person">--> <property name="name" value="奥

2021-03-07 19:24:34 289 1

原创 二分查找

思路:定义两个指针,一个指针指向数组的首位元素begin,第二个指针指向数组的最后一个元素end。当begin<=end时,找出中间值mid=(right+left)/2如果此时中间值就是要查找的元素,则直接返回mid如果要查找的值大于中间值,则将begin移动到中间值+1的位置如果要查找的值小于中间值,则将end移动到中间值-1的位置如果查不到则返回-1int binarySearch(int[] nums, int target) { int left = 0; .

2021-02-21 21:56:28 74

原创 冒泡排序

思想:有一个数组,两两比较,每一次循环都能找出一个最大的,把大的放在最右边代码实现:int[] a = {13, 12, 43, 22, 2, 3, 3};int isChange; // 记录是否发生了置换,0:没有发生;1:发生了置换int num = 0; //记录执行了多少遍// 外层循环是排序的躺数for (int i = 0; i < a.length - 1; i++) { // 没比较一趟就重新初始化为0 isChange = 0; //

2021-02-21 20:42:29 75

原创 多线程高频面试题

文章目录在 java 中 wait 和 sleep 方法的不同?死锁产生的条件,如何避免死锁ThreadLocal 了解么?-- 等有时间再研究,先不看(4大引用)线程池原理线程复用线程池的组成拒绝策略线程池的工作流程线程执行的顺序线程池的核心参数有哪些为什么我们调⽤ **start()** ⽅法时会执⾏ **run()** ⽅法,为什么我们不能直接调⽤ **run()** ⽅法?说⼀说⾃⼰对于 **synchronized** 关键字的了解说说⾃⼰是怎么使⽤ **synchronized** 关键字请你说

2021-02-10 22:14:28 286

空空如也

空空如也

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

TA关注的人

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