精华内容
下载资源
问答
  • Java中高级面试题

    千次阅读 2021-03-06 21:21:13
    10)数组在内存如何分配; 11)用过哪些设计模式,手写一个(除单例); 12)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的; 13)spring里面的aop的原理是什么; 14)mybatis如何处理结果...

    一.基础知识:

    1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);

    2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;

    3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;

    4)HashTable和ConcurrentHashMap的区别;

    5)String,StringBuffer和StringBuilder的区别;

    6)Object的方法有哪些:比如有wait方法,为什么会有;

    7)wait和sleep的区别,必须理解;

    8)JVM的内存结构,JVM的算法;

    9)强引用,软引用和弱引用的区别;

    10)数组在内存中如何分配;

    11)用过哪些设计模式,手写一个(除单例);

    12)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;

    13)spring里面的aop的原理是什么;

    14)mybatis如何处理结果集:反射,建议看看源码;

    15)java的多态表现在哪里;

    16)接口有什么用;

    17)说说http,https协议;

    18)tcp/ip协议簇;

    19)osi五层网络协议;

    20)tcp,udp区别;

    21)用过哪些加密算法:对称加密,非对称加密算法;

    22)说说tcp三次握手,四次挥手;

    23)cookie和session的区别,分布式环境怎么保存用户状态;

    24)git,svn区别;

    25)请写一段栈溢出、堆溢出的代码;

    26)ThreadLocal可以用来共享数据吗;

    f4cffc1300b2b86fa4d5b2ba81e950e9.png

    二.IO:

    1)bio,nio,aio的区别;

    2)nio框架:dubbo的实现原理;

    3)京东内部的jsf是使用的什么协议通讯:可参见dubbo的协议;

    三.算法:

    1)java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据。

    2)TreeMap如何插入数据:二叉树的左旋,右旋,双旋;

    3)一个排序之后的数组,插入数据,可以使用什么方法?答:二分法;问:时间复杂度是多少?

    4)平衡二叉树的时间复杂度;

    5)Hash算法和二叉树算法分别什么时候用;

    6)图的广度优先算法和深度优先算法:详见jvm中垃圾回收实现;

    fe5dd97fc752d67964c0311359131352.png

    三.多线程相关:

    1)说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);

    2)进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;

    3)用过并发包的哪些类;

    4)什么地方用了多线程;

    5)Excutors可以产生哪些线程池;

    6)为什么要用线程池;

    7)volatile关键字的用法:使多线程中的变量可见;

    四.数据库相关(mysql):

    1)msyql优化经验:

    2)mysql的语句优化,使用什么工具;

    3)mysql的索引分类:B+,hash;什么情况用什么索引;

    4)mysql的存储引擎有哪些,区别是什么;

    5)说说事务的特性和隔离级别;

    6)悲观锁和乐观锁的区别,怎么实现;

    6c668db8e31ef406f605246a7bfc6140.png

    五.mq:

    1)mq的原理是什么:有点大。。都可以说;

    2)mq如何保证实时性;

    3)mq的持久化是怎么做的;

    六.nosql相关(主要是redis):

    1)redis和memcache的区别;

    2)用redis做过什么;

    3)redis是如何持久化的:rdb和aof;

    4)redis集群如何同步;

    5)redis的数据添加过程是怎样的:哈希槽;

    6)redis的淘汰策略有哪些;

    7)redis有哪些数据结构;

    七.zookeeper:

    1)zookeeper是什么;

    2)zookeeper哪里用到;

    3)zookeeper的选主过程;

    4)zookeeper集群之间如何通讯;

    5)你们的zookeeper的节点加密是用的什么方式;

    6)分布式锁的实现过程;

    13a975d26d979ca101893100db79b81e.png

    八.linux相关:

    1)linux常用的命令有哪些;

    2)如何获取java进程的pid;

    3)如何获取某个进程的网络端口号;

    4)如何实时打印日志;

    5)如何统计某个字符串行数;

    九.设计与思想:

    1)重构过代码没有?说说经验;

    2)一千万的用户实时排名如何实现;

    3)五万人并发抢票怎么实现;

    展开全文
  • java中高级面试题整理

    2021-03-06 08:49:55
    java中高级面试题整理 问题 答案 java编程如何保证多线程运行安全? 线程的安全性问题体现在: 原子性:一个或者多个操作在CPU执行的过程中不被中断的特性 可见性:一个线程对共享变量的修改,另外...

    java中高级面试题整理

                     问题                                                                                                    答案
    java编程如何保证多线程运行安全?线程的安全性问题体现在:
      原子性:一个或者多个操作在 CPU 执行的过程中不被中断的特性
      可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到
      有序性:程序执行的顺序按照代码的先后顺序执行
    导致原因
      缓存导致的可见性问题
      线程切换带来的原子性问题
      编译优化带来的有序性问题
    解决方法
      1、无状态类   没有任何成员变量的类,就叫无状态类,这种类一定是线程安全的。
      2、volatile  并不能保证类的线程安全性,只能保证类的可见性,最适合一个线程写,多个线程读的情景。
      3、锁和CAS  我们最常使用的保证线程安全的手段,使用synchronized关键字,使用显式锁,使用各种原子变量,修改数据时使用CAS机制等等。
      4、ThreadLocal  ThreadLocal是实现线程封闭的最好方法
    map都有哪些实现类1、HashMap
    2、HashTable
    3、TreeMap
    4、ConcurrentHashMap
    5、LinkedHashMap
    6、weakHashMap
    list集合1.ArrayList集合:
      1).底层数据结构是数组,查找快,增删慢。
      2). 线程不安全,效率高
    2.Vector集合:
      1) 底层数据结构是数组,查询快,增删慢
      2)线程安全,效率低
    3.LinkedList集合:
      1) 底层数据结构是链表,查询慢,增删快
      2)线程不安全,效率高
    基本和引用数据的区别1、基本数据类型只有8种
    ①整数类型:long、int、short、byte
    ②浮点类型:float、double
    ③字符类型:char
    ④布尔类型:boolean
    2、引用数据类型
    引用数据类型非常多,大致包括:类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
    区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的
    ioc依赖注入形式a、接口注入;
    b、setter方法注入;
    c、构造方法注入;
    拦截器注解和配置两种方式1、Spring中继承HandlerInterceptorAdapter或实现HandlerInterceptor接口: 重写preHandler等方法
    2、在web.xml中注册拦截器
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**" /><!--如果不配置或/**,将拦截所有的Controller-->
            <mvc:exclude-mapping path="/static/**" />
            <mvc:exclude-mapping path="/views/**" />
            <bean class="com.zhuanzhuan.zzappqa.annotations.Auth58Interceptor" />
        </mvc:interceptor>
    </mvc:interceptors>
    spring的核心7大模块1、核心容器(Spring Core)
      核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。
    2、应用上下文(Spring Context)
      Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如JNDI、EJB、电子邮件、国际化、校验和调度功能。
    3、Spring面向切面编程(Spring AOP)
      通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
    4、JDBC和DAO模块(Spring DAO)
      JDBC、DAO的抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理,和不同数据库供应商所抛出的错误信息。异常层次结构简化了错误处理,并且极大的降低了需要编写的代码数量,比如打开和关闭链接。
    5、对象实体映射(Spring ORM)
      Spring框架插入了若干个ORM框架,从而提供了ORM对象的关系工具,其中包括了Hibernate、JDO和 IBatis SQL Map等,所有这些都遵从Spring的通用事物和DAO异常层次结构。
    6、Web模块(Spring Web)
      Web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。所以Spring框架支持与Struts集成,web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
    7、MVC模块(Spring Web MVC)
      MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的。MVC容纳了大量视图技术,其中包括JSP、POI等,模型来有JavaBean来构成,存放于m当中,而视图是一个街口,负责实现模型,控制器表示逻辑代码,由c的事情。Spring框架的功能可以用在任何J2EE服务器当中,大多数功能也适用于不受管理的环境。Spring的核心要点就是支持不绑定到特定J2EE服务的可重用业务和数据的访问的对象,毫无疑问这样的对象可以在不同的J2EE环境,独立应用程序和测试环境之间重用。
    BeanFactory和FactoryBean的区别共同点:都是接口
    区别:BeanFactory 以Factory结尾,表示它是一个工厂类,用于管理Bean的一个工厂在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。
         但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似。

    展开全文
  • Java中高级面试题整理

    2021-03-03 11:38:26
    10)数组在内存如何分配; 11)用过哪些设计模式,手写一个(除单例); 12)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的; 13)spring里面的aop的原理是什么; 14)mybatis如何处理结果...

    一.基础知识:

    1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);

    2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;

    3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;

    4)HashTable和ConcurrentHashMap的区别;

    5)String,StringBuffer和StringBuilder的区别;

    6)Object的方法有哪些:比如有wait方法,为什么会有;

    7)wait和sleep的区别,必须理解;

    8)JVM的内存结构,JVM的算法;

    9)强引用,软引用和弱引用的区别;

    10)数组在内存中如何分配;

    11)用过哪些设计模式,手写一个(除单例);

    12)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;

    13)spring里面的aop的原理是什么;

    14)mybatis如何处理结果集:反射,建议看看源码;

    15)java的多态表现在哪里;

    16)接口有什么用;

    17)说说http,https协议;

    18)tcp/ip协议簇;

    19)osi五层网络协议;

    20)tcp,udp区别;

    21)用过哪些加密算法:对称加密,非对称加密算法;

    22)说说tcp三次握手,四次挥手;

    23)cookie和session的区别,分布式环境怎么保存用户状态;

    24)git,svn区别;

    25)请写一段栈溢出、堆溢出的代码;

    26)ThreadLocal可以用来共享数据吗;

    二.IO:

    1)bio,nio,aio的区别;

    2)nio框架:dubbo的实现原理;

    3)京东内部的jsf是使用的什么协议通讯:可参见dubbo的协议;

    三.算法:

    1)java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据。

    2)TreeMap如何插入数据:二叉树的左旋,右旋,双旋;

    3)一个排序之后的数组,插入数据,可以使用什么方法?答:二分法;问:时间复杂度是多少?

    4)平衡二叉树的时间复杂度;

    5)Hash算法和二叉树算法分别什么时候用;

    6)图的广度优先算法和深度优先算法:详见jvm中垃圾回收实现;

    四.多线程相关:

    1)说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);

    2)进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;

    3)用过并发包的哪些类;

    4)什么地方用了多线程;

    5)Excutors可以产生哪些线程池;

    6)为什么要用线程池;

    7)volatile关键字的用法:使多线程中的变量可见;

    五.数据库相关(mysql):

    1)msyql优化经验:

    2)mysql的语句优化,使用什么工具;

    3)mysql的索引分类:B+,hash;什么情况用什么索引;

    4)mysql的存储引擎有哪些,区别是什么;

    5)说说事务的特性和隔离级别;

    6)悲观锁和乐观锁的区别,怎么实现;

    六.mq:

    1)mq的原理是什么:有点大。。都可以说;

    2)mq如何保证实时性;

    3)mq的持久化是怎么做的;

    七.nosql相关(主要是redis):

    1)redis和memcache的区别;

    2)用redis做过什么;

    3)redis是如何持久化的:rdb和aof;

    4)redis集群如何同步;

    5)redis的数据添加过程是怎样的:哈希槽;

    6)redis的淘汰策略有哪些;

    7)redis有哪些数据结构;

    八.zookeeper:

    1)zookeeper是什么;

    2)zookeeper哪里用到;

    3)zookeeper的选主过程;

    4)zookeeper集群之间如何通讯;

    5)你们的zookeeper的节点加密是用的什么方式;

    6)分布式锁的实现过程;

    九.linux相关:

    1)linux常用的命令有哪些;

    2)如何获取java进程的pid;

    3)如何获取某个进程的网络端口号;

    4)如何实时打印日志;

    5)如何统计某个字符串行数;

    十.设计与思想:

    1)重构过代码没有?说说经验;

    2)一千万的用户实时排名如何实现;

    3)五万人并发抢票怎么实现;

    我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。

    展开全文
  • Java中高级面试题最新

    2021-07-28 16:51:38
    一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等 点击免费领取我的学习笔记:学习视频+大厂面试真题+微服务+MySQL+Java+Redis+算法+网络+Linux+Spring全家桶+JVM+学习笔记图 高效学习视频 +微服务+...

    第一份资料:Kafka实战笔记

    image.png

    • Kafka入门
    • 为什么选择Kafka
    • Karka的安装、管理和配置

    image.png

    • Kafka的集群
    • 第一个Kafka程序
    • image.png

    afka的生产者

    image.png

    • Kafka的消费者
    • 深入理解Kafka
    • 可靠的数据传递

    image.png

    image.png

    • Spring和Kalka的整合
    • Sprinboot和Kafka的整合
    • Kafka实战之削峰填谷
    • 数据管道和流式处理(了解即可)

    image.png

    • Kafka实战之削峰填谷

    image.png

    第二份资料:ActiveMQ实战笔记

    image.png

    • ActiveMQ入门
    • ActiveMQ的安装
      image.png

    image.png

    • 原生JMS API操作ActiveMQ
    • Spring与ActiveMQ整合

    image.png

    image.png

    • SpringBoot与ActiveMQ整合
    • ActiveMQ消息组成与高级特性
    • ActiveMQ企业面试经典问题

    image.png

    第三份资料:RabbitMQ实战笔记

    image.png

    • 1.消息中间件概述
    • 2.安装及配置RabbitMQ
    • 3. RabbitMQ入门

    image.png

    image.png

    • 4. AMQP
    • 5. RabbitMQ工作模式
    • 6. Spring Boot整合RabbitMQ

    image.png

    image.png

    image.png

    • 7. RabbitMQ高级
    • 8. RabbitMQ集群
    • 9. RabbitMQ高可用集群[扩展]
    • 10. RabbitMQ应用与面试

    更多:Java进阶核心知识集

    包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

    image

    点击免费领取我的学习笔记:学习视频+大厂面试真题+微服务+MySQL+Java+Redis+算法+网络+Linux+Spring全家桶+JVM+学习笔记图

    高效学习视频

    题+微服务+MySQL+Java+Redis+算法+网络+Linux+Spring全家桶+JVM+学习笔记图](https://gitee.com/vip204888/java-p7)**

    高效学习视频

    image

    展开全文
  • Java高级面试题整理(附答案)

    千次阅读 2021-02-12 12:59:18
    javajava8java开发Java高级面试题整理(附答案) 这是我收集的10道高级Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战...
  • tomcat 服务器在JavaEE项目使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了,对于tomcat的优化,主要是从2个方面入手,一是tomcat本身的配置,另一个是tomcat所运行的Jvm虚拟机的调优 二、Tomcat配置...
  • 容器化时代来了 虚拟化技术已经走过了三个时代...容器化解决了软件开发过程一个令人非常头疼的问题,用一段对话描述: 测试人员:你这个功能有问题。 开发人员:我本地是好的啊。 开发人员编写代码,在自己本地环境
  • 1、redis如何跟本地数据同步? 程序实现mysql更新、添加、删除...(1)PerGern Space 程序使用了大量的jar或class,使虚拟机装载类空间不够。 解决方案:调参 XX:PermSize 和XX:MaxPermSize、减少jar包减少类的重复加载
  • 一道面试题 让我们开门见山,直面主题:Dubbo 服务里面有个服务端,还有个消费端你知道吧? 服务端和消费端都各有一个线程池你知道吧? 那么面试题来了:一般情况下,服务提供者比服务消费者多吧。一个服务消费方...
  • 这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。1. 什么是可变参数?可变参数允许调用参数数量不同的方法。请看下面例子的...
  • 零基础如何学习Java? 首先,你要明白一点,Java入门不难! 无论你是从事哪个行业,兴趣一定是最好的老师,也是你学习的动力。 学习方式1:自学 自学模式其实我个人不建议绝大部分的人选择,因为自学是需要比较强的...
  • 比如两个不同的服务 A、B 部署在两台不同的机器上,那么服务 A 如果想要调用服务 B 的某个方法该怎么办呢?使用 HTTP请求 当然可以,但是可能会比较慢而且一些优化做的并不好。 RPC 的出现就是为了解决这个问题。 ...
  • Java中级面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编精心整理的一些java高级工程师面试题及答案吧。 如果不背 Java面试题的答案,肯定面试会挂! 这套...
  • 2021 java高级面试题收集及答案 以下问题是个人面试时收集,答案纯属个人见解,如有错误请不吝赐教,感激不尽。 这里写目录标题2021 java高级面试题收集及答案一级目录二级目录三级目录1. 抽象类能使用 final 修饰...
  • 一、前言 Redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),理解每种...面试这一块,分别有基础、中级、高级等三部分,一步一步检测。 Java基础面试+解析
  • 学习Java技术体系,设计模式,流行的框架与组件 常见的设计模式,编码必备 Spring5,做应用必不可少的最新框架 MyBatis,玩数据库必不可少的组件 二:分布式架构 高并发,高可用,海量数据,没有分布式的架构知识...
  • java高级工程师面试题及答案解析

    万次阅读 2021-03-07 03:50:08
    面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编精心整理的一些java高级工程师面试题及答案吧。一、堆的年轻代和老年代怎么理解?堆的年轻代大则老年代小,GC...
  • (1)SpringBoot 面试专题 什么是 Spring Boot? Spring Boot 有哪些优点? 什么是 JavaConfig? 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? Spring Boot 的监视器是什么? 如何在 Spring Boot ...
  • java代码的执行步骤有三点 java源码文件->编译器->字节码文件 字节码文件->JVM->机器码 机器码->系统CPU执行 JVM执行的字节码需要用类加载来载入;字节码文件可以来自本地文件,可
  • (精选97道Java核心面试题) 常量池有哪些,数据结构,自己设计一个常量池 String为啥设计为final,好处是啥,其中的equals方法如何实现的 jdk序列化怎么实现,有测试过他的性能吗,serialVersionUID的作用是什么,...
  • 前言 进程和线程的提出极大的提高了操作提供的性能。进程让操作系统的并发性成为了可能,而线程让进程的内部...由此可见多线程的学习对程序员来说是至关重要的,这也是为什么不论是大大小小的公司面试官都会问到的问
  • ,根据读者的反馈优化了部分答案存在的错误,同时根据最新面试总结和读者的建议,删除了低频问题,并添加了一些常见面试题,对文章进行了精简优化,目前约2000+道面试题,欢迎大家关注,关注后回复Java面试,即可...
  • 高级Java面试题精选

    2021-03-16 22:43:19
    高级Java面试题精选}示例输出Instance InitializerCount when Instance Initializer is run is 1Instance InitializerCount when Instance Initializer is run is 2Instance InitializerCount when Instance ...
  • 有一段时间没更新了,在这个金九银十的跳槽季,献给大伙奉上一套热腾腾的互联网面试题,来自朋友的面试经历(2面技术+1面hr),由于朋友还没入职,不让我透露具体公司,但是绝对是大厂不假(想知道可以先下偷偷告诉...
  • 像阿里巴巴,亚马逊,谷歌,微软等在内的所有科技巨头对Spring都有很大的贡献,因此Spring经常在大厂面试的时候被问到,下面我选了几道关于pring源码的面试题,看大家能不能回答出来: IOC源码主要流程 bean相互...
  • 今年这一年又过去一半了,职场的炎热持续蔓延,又即将迎来金九银十。疫情现在也还没完全过去,大家一定...我梳理了各个大厂春秋招面经分享,分享上万道面试题及答案,从实习生到开发1-10年的简历模板,面试过程的文...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,172
精华内容 25,668
关键字:

java中高级面试题

java 订阅