面试
文章平均质量分 68
明月常新
一个人必须不停地写作,才能不被茫茫人海湮灭。
展开
-
16、SpringBoot配置文件有哪些?怎么实现多环境配置?17、Spring Boot和Spring Cloud是什么关系18、SpringCloud都用过哪些组件?介绍一下作用
16、SpringBoot配置文件有哪些?怎么实现多环境配置?17、Spring Boot和Spring Cloud是什么关系18、SpringCloud都用过哪些组件?介绍一下作用经常用的组件:服务发现——Netflix Eureka实现服务治理(服务注册与发现)远程调用——Feign 实现服务间的远程调用客服端负载均衡——Netflix Ribbon主要提供客户侧的软件负载均衡算法。断路器——Netflix Hystrix断路器,保护系统,控制故障范围。服务网关——Gateway网原创 2022-04-13 15:27:19 · 199 阅读 · 0 评论 -
创建线程的几种方式?JSP的九大内置对象及作用分别是什么?servlet的生命周期及常用方法?转发和重定向区别?ajax书写方式及内部主要参数都有哪些
创建线程的几种方式?1 ,通过继承Thread类实现,多个线程之间无法共享该线程类的实例变量。2 ,实现Runnable接口,较继承Thread类,避免继承的局限性,适合资源共享。3 ,使用Callable,方法中可以有返回值,并且抛出异常。4 ,创建线程池实现,线程池提供了一个线程队列,队列中保存所有等待状态的线程,避免创建与销毁额外开销,提高了响应速度。问题扩展:线程的生命周期:线程要经历新建、就绪、运行(活动)、阻塞和死亡五种不同的状态。这五种状态都可以通过Thread类中的方法进行控制。原创 2022-04-10 10:47:07 · 1231 阅读 · 0 评论 -
9、synchronized底层实现是什么?lock底层是什么?有什么区别?10、java类加载过程?11、什么是类加载器,类加载器有哪些?
9、synchronized底层实现是什么?lock底层是什么?有什么区别?Synchronized原理:方法级的同步是隐式,即无需通过字节码指令来控制的,它实现在方法调用和返回操作之中。JVM可以从方法常量池中的方法表结构(method_info Structure) 中的 ACC_SYNCHRONIZED 访问标志区分一个方法是否同步方法。当方法调用时,调用指令将会 检查方法的 ACC_SYNCHRONIZED 访问标志是否被设置,如果设置了,执行线程将先持有monitor(虚拟机规范中用的是管程一原创 2022-04-12 15:54:30 · 151 阅读 · 0 评论 -
线程的状态转换有什么?(生命周期)15、什么情况下会产生死锁?16 Java 中有几种类型的流17字节流如何转为字符流18请写出你最常见的5个RuntimeException19谈谈你对反射的理解
1 , 线程的状态转换有什么?(生命周期)15、什么情况下会产生死锁?16 、Java 中有几种类型的流17、字节流如何转为字符流字节输入流转字符输入流通过 InputStreamReader 实现,该类的构造函数可以传入 InputStream 对象。字节输出流转字符输出流通过OutputStreamWriter 实现,该类的构造函数可以传入 OutputStream 对象。18、请写出你最常见的5个RuntimeException(1)java.lang.NullPointer原创 2022-04-12 10:59:59 · 51 阅读 · 0 评论 -
你是怎样理解面向对象的2、你是怎样理解多态的?什么地方用过?3、举例说明封装和继承是怎么回事?4、char型变量能不能储存一个中文汉字,为什么? 5、什么是自动拆装箱? int和Integer有
1,你是怎样理解面向对象的面向对象是利于语言对现实事物进行抽象。面向对象具有以下四大特征:(1)继承:继承是从已有类得到继承信息创建新类的过程(2)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。(3)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。(4)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。自己的话描述:继承:就是继承父类的方法和属性并且创建不同于父类的类封装:就是把属性和get set 方原创 2022-04-11 22:51:44 · 77 阅读 · 0 评论 -
6、==和Equals区别7、String能被继承吗?为什么用final修饰?8、String buffer和String builder区别 9、Final、Finally、Finalize
6、==和Equals区别(1) ==如果比较的是基本数据类型,那么比较的是变量的值如果比较的是引用数据类型,那么比较的是地址值(两个对象是否指向同一块内存)(2) equals如果没重写equals方法比较的是两个对象的地址值如果重写了equals方法后我们往往比较的是对象中的属性的内容equals方法是从Object类中继承的,默认的实现就是使用==7、String能被继承吗?为什么用final修饰?不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的。原创 2022-04-11 23:00:59 · 152 阅读 · 0 评论 -
4、什么情况下会产生StackOverflowError(栈溢出)和OutOfMemoryError(堆溢出)?怎么排查?5、什么是线程池,线程池有哪些?
4、什么情况下会产生StackOverflowError(栈溢出)和OutOfMemoryError(堆溢出)?怎么排查?5、什么是线程池,线程池有哪些?原创 2022-04-12 11:49:08 · 136 阅读 · 0 评论 -
6、ThreadPoolExecutor对象有哪些参数?都有什么作用?怎么设定核心线程数和最大线程数?拒绝策略有哪些?7、常见线程安全的并发容器有哪些?8、atomic原子类了解多少?原理是什么?
6、ThreadPoolExecutor对象有哪些参数?都有什么作用?怎么设定核心线程数和最大线程数?拒绝策略有哪些?参数与作用:共7个参数线程池大小设置:拒绝策略:1、 AbortPolicy:直接抛出异常,默认策略;2、CallerRunsPolicy:用调用者所在的线程来执行任务;3、DiscardOldestPolicy:丢弃阻塞队列中靠最前的任务,并执行当前任务;4、DiscardPolicy:直接丢弃任务;当然也可以根据应用场景实现 RejectedExecutionHand原创 2022-04-12 12:08:43 · 246 阅读 · 0 评论 -
10、Object中有哪些方法11、说一下集合体系?ArrarList和LinkedList区别12 、HashMap底层源码,数据结构13 、HashMap和HashTable区别
10、Object中有哪些方法(1)protected Object clone()--->创建并返回此对象的一个副本。 (2)boolean equals(Object obj)--->指示某个其他对象是否与此对象“相等”。 (3)protected void finalize()--->当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 (4)Class<? extendsObject> getClass()--->返回一个对象的运行时原创 2022-04-12 00:13:09 · 356 阅读 · 0 评论 -
20、什么是 java 序列化,如何实现 java 序列化?1、JVM内存分哪几个区,每个区的作用是什么?2、java中垃圾收集的方法有哪些?3、如何判断一个对象是否存活?(或者GC对象的判定方法)
20、什么是 java 序列化,如何实现 java 序列化?序列化就是一种用来处理对象流的机制,所谓**对象流也就是将对象的内容进行流化。**可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序 列 化 的 实 现 : 将 需 要 被 序 列 化 的 类 **实 现 Serializable 接 口 , 该 接 口 没 有 需 要 实 现 的 方 法 , implements Serializable 只是为了标注该对象是可被序列化的原创 2022-04-12 11:26:17 · 142 阅读 · 0 评论 -
介绍一下Spring bean 的生命周期、注入方式和作用域?
1、Spring中常用的设计模式2、介绍一下Spring bean 的生命周期、注入方式和作用域Bean的生命周期(1)默认情况下,IOC容器中bean的生命周期分为五个阶段:(2)当加入了Bean的后置处理器后,IOC容器中bean的生命周期分为七个阶段:Bean的作用域总共有四种作用域: Singleton 单例的 Prototype 原型的 Request Session...原创 2022-04-12 16:07:15 · 66 阅读 · 0 评论 -
2、数组和链表结构简单对比?
数组:相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标数组的特性:数组必须先定义固定长度,不能适应数据动态增减当数据增加时,可能超出原先定义的元素个数,当数据减少时,造成内存浪费数组查询比较方便,根据下标就可以直接找到元素,时间复杂度O(1);增加和删除比较复杂,需要移动操作数所在位置后的所有数据,时间复杂度为O(N)链表:是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是原创 2022-03-13 23:58:01 · 111 阅读 · 0 评论 -
1、怎么理解时间复杂度和空间复杂度?2、数组和链表结构简单对比?3、怎么遍历一个树?冒泡排序(Bubble Sort)?快速排序(Quick Sort?归并排序(Merge Sort)?二分查找
时间复杂度:指算法语句的执行次数。O(1),O(n),O(logn),O(n2)空间复杂度:就是一个算法在运行过程中临时占用的存储空间大小,换句话说就是被创建次数最多的变量,它被创建了多少次,那么这个算法的空间复杂度就是多少。......原创 2022-03-13 23:40:09 · 143 阅读 · 0 评论 -
跨域处理的几种方案
跨域处理跨域:浏览器对于javascript的同源策略的限制 。以下情况都属于跨域:跨域原因说明 示例域名不同 www.jd.com 与 www.taobao.com域名相同,端口不同 www.jd.com:8080 与 www.jd.com:8081二级域名不同 item.jd.com 与 miaosha.jd.com如果域名和端口都相同,但是请求路径不同,不属于跨域,如:www.jd.com/itemwww.jd.com/goodshttp和https也属于跨域而我们刚才是从loc原创 2022-04-21 17:56:02 · 1864 阅读 · 0 评论 -
Redis的拒绝策略Redis的key过期策略以及内存淘汰机制双写一致性问题 数据库缓存一致性问题
9、Redis集群方案应该怎么做?都有哪些方案?10、说说Redis哈希槽的概念?11、Redis有哪些适合的场景?Redis的拒绝策略Redis提供了5种数据淘汰策略:volatile-lru(推荐):使用LRU算法进行数据淘汰(淘汰上次使用时间最早的,且使用次数最少的key),只淘汰设定了有效期的keyallkeys-lru:使用LRU算法进行数据淘汰,所有的key都可以被淘汰volatile-random:随机淘汰数据,只淘汰设定了有效期的keyallkeys-random:随机淘汰原创 2022-04-13 16:52:43 · 801 阅读 · 0 评论 -
5、缓存穿透怎么解决?6、哨兵模式是什么样的?7、Redis常见性能问题和解决方案?8、MySQL里有大量数据,如何保证redis中的数据都是热点数据
4、redis是单线程的,为什么那么快?5、缓存穿透怎么解决?key不存在且不放null入缓存解决什么是布隆过滤器特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。比如说你存一个值,经过hash运算生成多个hash值,你在存一个值,又生成了几个hash值。这几个hash值可能有相等的,当你要判断某个值存不存在的时候,就通过hash值来看,如果没有hsah值就一定不存在,如果有也不一定存在。多个key同时失效某个key刚好失效6、哨兵模式是什么样的?7原创 2022-04-13 15:47:53 · 499 阅读 · 0 评论 -
19、Eureka和zookeeper的区别1、介绍下Redis?redis有哪些数据类型? 2、为什么Redis需要把所有数据放到内存中?3、Redis提供了哪几种持久化方式?
19、Eureka和zookeeper的区别Redis缓存常用的数据结构 1、介绍下Redis?redis有哪些数据类型?2、为什么Redis需要把所有数据放到内存中?3、Redis提供了哪几种持久化方式?原创 2022-04-13 15:26:31 · 2113 阅读 · 0 评论 -
12、Mybatis 如何完成MySQL的批量操作,举例说明13、谈谈怎么理解SpringBoot框架?14、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
12、Mybatis 如何完成MySQL的批量操作,举例说明MyBatis完成MySQL的批量操作主要是通过标签来拼装相应的SQL语句.例如:例如: 1. <insert id="insertBatch" > 2. insert into tbl_employee(last_name,email,gender,d_id) values 3. <foreach collection="emps" item="curr_emp" separator=",">原创 2022-04-12 16:24:10 · 372 阅读 · 0 评论 -
9、Mybatis 中一级缓存与二级缓存?10、MyBatis如何获取自动生成的(主)键值?11、简述Mybatis的动态SQL,列出常用的6个标签及作用
9、Mybatis 中一级缓存与二级缓存?10、MyBatis如何获取自动生成的(主)键值?在标签中使用 useGeneratedKeys 和 keyProperty 两个属性来获取自动生成的主键值。示例:<insert id=”insertname” usegeneratedkeys=”true” keyproperty=”id”> insert into names (name) values (#{name}) </insert>原创 2022-04-12 16:14:31 · 93 阅读 · 0 评论 -
http 的长连接和短连接?http 常见的状态码有哪些?GET 和POST 的区别?Cookie 和Session 的区别什么是jsp,什么是Servlet?jsp 和Servlet 有什么区别?
1、http 的长连接和短连接HTTP1.1 默认保持长连接,数据传输完成保证TCP连接不断开,等待在同域名下继续用这个通道传输数据。HTTP/1.0 中,默认使用的是短连接。,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。2、http 常见的状态码有哪些?200 OK //客户端请求成功301 Moved Permanently(永久移除),请求的 URL 已移走。Response 中应该包含一个 Location URL, 说明资源现在所处的位置302 fou原创 2022-04-11 16:14:14 · 2962 阅读 · 0 评论 -
简单的谈一下SpringMVC的工作流程?说出Spring 或者 Springmvc中常用的5个注解,并解释含义? 简述Springmvc中如何返回JSON数据 4、谈谈你对Spring 的理解
基本步骤:1) 客户端请求提交到DispatcherServlet2) 由DispatcherServlet控制器**查询一个或多个HandlerMapping**,**找到**处理请求的**Controller**3) DispatcherServlet**将请求提交到**Controller(也称为Handler)4) Controller调用业务逻辑处理后,返回ModelAndView5) DispatcherServlet**查询一个或多个**ViewResoler视图解析器,找到Mo..原创 2022-04-11 11:24:00 · 133 阅读 · 0 评论 -
springmvc获取表单数据的几种方式?MyBatis中使用#和$书写占位符有什么区别?SSM架构的整合流程是怎样的?MyBatis中的动态SQL是什么意思?
1 ,springmvc获取表单数据的几种方式?(1)问题解析:考官主要针对Spring MVC中Controller如何获取Form表单提交的数据的考核,比如通过HttpServletRequest接收等。(2)核心答案解析Controller的方法,添加HttpServletRequst类型入参,通过HttpServletRequst.getParameter()获取请求数据。Controller的方法,添加对应表单字段name的参数,有几个表单字段就添加多少个对应的入参。Controlle原创 2022-04-11 09:49:35 · 819 阅读 · 0 评论 -
SpringMVC的工作流程?spring以及springMVC常用注解有哪些?springmvc前端控制器是什么?处理器映射器是什么?springmvc如何进行参数绑定
SpringMVC的工作流程?原创 2022-04-11 09:30:02 · 311 阅读 · 0 评论 -
Spring AOP的实现原理?IOC和DI是什么?Spring 中用到了那些设计模式?Spring中Bean的作用域有哪些?spring框架实现实例化和依赖注入的方式分别是什么?
1 , Spring AOP的实现原理?(1)问题分析Spring AOP的面向切面编程,是面向对象编程的一种补充,用于处理系统中分布的各个模块的横切关注点,比如说事务管理、日志、缓存等。它是使用动态代理实现的,在内存中临时为方法生成一个AOP对象,这个对象包含目标对象的所有方法,在特定的切点做了增强处理,并回调原来的方法。(2)核心问题讲解Spring AOP的动态代理主要有两种方式实现,JDK动态代理和cglib动态代理。JDK动态代理通过反射来接收被代理的类,但是被代理的类必须实现接口,核心是原创 2022-04-10 22:53:18 · 597 阅读 · 0 评论 -
常见的http返回状态码(200,301,302,400)json数据的格式是什么? xml的解析方式有哪些?Spring 是如何管理事务的,事务管理机制?以及隔离级别?
1 , 常见的http返回状态码(200,301,302,400)(2)核心答案讲解100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果。200:返回200表示请求响应成功202:返回202表示请求已经被受理还未做出响应。400:表示请求无效,常见的情况是请求参数有误,http头构建错误等404:访问不到资源。500:服务原创 2022-04-10 19:31:04 · 1544 阅读 · 0 评论 -
多线程解决同步问题的方式?Hashtable 与 HashMap 有什么不同之处?单例中的懒汉和饿汉模式的区别?类加载机制有了解嘛?
文章目录1,多线程解决同步问题的方式?核心答案讲解:问题扩展2,Hashtable 与 HashMap 有什么不同之处?核心答案讲解:问题扩展3 ,单例中的懒汉和饿汉模式的区别?4 , 类加载机制有了解嘛?(1) 问题分析:(2) 核心答案讲解:5 ,什么是事务?事务常见的并发问题及含义核心答案讲解:问题扩展:1,多线程解决同步问题的方式?核心答案讲解:同步代码块:使用 synchronized() 对需要完整执行的语句进行“包裹”,synchronized(Obj obj) 构造方法里是可以传入任原创 2022-04-10 14:24:43 · 440 阅读 · 0 评论 -
String,StringBuilder,StringBuffer三者的区别? 是否可以从一个static方法内部发出对非static方法的调用?java中 sleep 和 wait 的区别?
String,StringBuilder,StringBuffer三者的区别?String是引用类型,底层是被final修饰的字符数组,所以String相当于一个常量,是不可改变的,每拼接一次就会产生一个新的对象,而由于垃圾回收机制的原理,原有的对象不会立马被回收,这是对内存极大的消耗;而StringBuilder和StringBuffer 是可变长度的,可以利用append方法向原有对象拼接,然后用toString方法将其转化为String类型;这两个相比起来StringBuilder的效率更高,因为原创 2022-04-10 11:42:47 · 122 阅读 · 0 评论 -
说说HashCode()、equals()的区别?实现一个线程有哪几种方式,各有什么优缺点,比较常用的是那种?你所了解的数据库优化都有哪些?mysql和oracle的区别?
核心答案讲解:equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。对于需要大量并且快速的对比的话如果都用equal()去做显然效率太低,所以解决方式是,每当需要对比的时候,首先用hashCode()去对比,如果hashCode()不一样,则表示这两个对象肯定不相等(也就是不必再用equal()去再对比了),如果hashCode()相同,此时再对原创 2022-04-10 11:01:18 · 654 阅读 · 0 评论 -
谈谈你对垃圾回收机制的了解?左链接和右链接的语法及区别?cookie和session的区别与联系 在HTTP请求中,什么情况下我们会选择post方式而非get?反之也是如何考虑的?
核心答案解析什么是垃圾回收机制:在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用对象的内存,可能会导致内存的耗尽,所以垃圾回收机制回收的是内存。同时GC回收的是堆区和方法区的内存。JVM回收特点:(stop-the-world)当要进行垃圾回收时候,不管何种GC算法,除了垃圾回收的线程之外其他任何线程都将停止运行。被中断的任务将会在垃圾回收完成后恢复进行。GC不同算法或是GC调优就是减少stop-the-world的时间。à(为何非要stop-the-wor原创 2022-04-10 10:57:02 · 129 阅读 · 0 评论 -
简单说说Java中的异常处理机制的简单原理和应用。拦截器和过滤器区别 一次完整的http请求是什么样的? ajax提交请求 默认是 异步还是同步 怎么改成同步?你的项目中使用过那些JSTL标签?
简单说说Java中的异常处理机制的简单原理和应用。所有异常的根类为Java.lang.Throwable.Throwable派生了2个子类:Error和Exception。Error代表了JVM本身的错误,不能被程序员通过代码处理,如内存溢出。Exception分为IoException和RuntimeException 。Error 和 RuntimeException 以及他们的子类 Javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异常称之为非检查异常,比如下标越界。编原创 2022-04-10 10:38:20 · 514 阅读 · 0 评论 -
Java虚拟机中的内存模型?JSP常用的动作标签及作用? 如何防止表单重复提交问题? JSP四大作用域及请求范围? 分别说出http,https,ftp,talnet的默认端口?
Java虚拟机中的内存模型?Java虚拟机运行时内存所有的类的实例(不包括局部变量与方法参数)都存储在Java堆中,每条线程有自己的工作内存(Java栈),不同线程之间无法直接访问对方工作内存中的变量。方法区用于存储被虚拟机加载的类信息、常量、static变量等数据,堆用于存储对象实例,比如通过 new创建的对象实例就保存在堆中,堆中的对象的由垃圾回收器负责回收。Java栈用于实现方法调用,每次方法调用就对应栈中的一个栈帧,栈帧包含局部变量表、操作数栈、方法接口等于方法相关的信息,栈中的数据当没有引用指向原创 2022-04-10 10:26:48 · 138 阅读 · 0 评论 -
hashmap的特性?HashMap底层源码,数据结构?Hashmap和hashtable ConcurrentHashMap区别?
hashmap的特性?允许空键和空值(但空键只有一个,且放在第一位)元素是无序的,而且顺序会不定时改变key 用 Set 存放,所以想做到 key 不允许重复,key 对应的类需要重写 hashCode 和 equals 方法。底层实现是 链表数组,JDK 8 后又加了红黑树。实现了 Map 全部的方法问题扩展:红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色),同时具有一定的规则。*每个节点要么是红色,要么是黑色;根节点永远是黑色的*所有的叶节点都是是原创 2022-04-07 10:55:01 · 939 阅读 · 0 评论 -
遍历map的几种方法?
题目1:遍历map的几种方法?第一种,通过key取值。(Map.keyset()遍历key和value)。package main.com.edu.shengda.map;import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class TestMap1 { public static void main(String[] args)原创 2022-04-07 10:24:45 · 277 阅读 · 0 评论