首页 Java Java面试题 Java中高级面试题(附答案)

Java中高级面试题(附答案)

Nov 14, 2019 pm 04:51 PM
java 中级

Java中高级面试题(附答案)

1、redis如何跟本地数据同步?

程序实现mysql更新、添加、删除就会同步操作redis

程序查询redis,不存在就查询mysql,自动保存redis

2、redis几种数据结构?

set、list、hash、string、zset

3、java内存溢出是如何造成的?

OutOfMemoryError:

(1)PerGern Space 程序中使用了大量的jar或class,使虚拟机装载类空间不够。

解决方案:调参 XX:PermSize 和XX:MaxPermSize、减少jar包减少类的重复加载 

(2)Java Heap

Space Java虚拟机创建太多对象。 解决方法:调参Xms(初始化堆大小)Xmx(最大堆大小)、检查死循环或不必要创建的重复对象。

(3)unable to create new native Thread

JVM占用了太多内存空间,而在JVM中创建线程还要再操作系统中创建线程。 解决方案:调整JVM中线程大小。

4、String s = “123”,这个语句有多少对象产生?

若字符串池中没有“123”,则产生一个,并且放入常量池中,若有“123”,则产生0个

5、JDK8的新特性,举例描述

(1)lambda表达式:函数式编程,方法的引用 

(2)Stream API 

(3)接口的默认方法

(4)日期时间API的改进,新增DateTimeFormatter方法

6、解决高并发和高负载

(1)尽可能html静态化,采用信息录入发布系统CMS实现信息录入自动生成静态页面,在前端缓存不经常改变的动态数据。

(2)CDN加速,把CSS/JS等资源分布在不同的服务器上

(3)缓存不常改变的数据(Redis、memcache)。

(4)图片服务器与应用服务器分离。 

(5)集群

7、生产者和消费者模型得瑟作用是什么?

(1)通过平衡生产能力和消费者的消费能力来提升整个系统的运行效率 (2)解耦

8、Mybatis一级、二级缓存

(1)一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域Session,当Session

flush或close之后,该Session中的所有Cache就将清空。

(2)二级缓存与一级缓存机制相同,默认也是采用PerpetualCache,HashMap存储,不同在存储作用域Mapper,并且可自定义存储源,如需开启二级缓存。在sql映射文件添加

9、描述一个服务从发布到被消费的详细过程

首先获取zk的配置信息,然后获取需要暴露的url,然后调用registry,register方法将url注册到zookeeper上去

10、如何实现负载均衡,有哪些算法可以实现?

随机(random)、轮训(round-robin)、一致哈希(consistent-hash)和主备(master-slave)

11、如果要你实现Spring AOP,怎么实现?

实现aop技术,主要分为两大类:一采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行

二是采用静态织入的方式,引入特定语法创建“方面”,从而使得编译器间织入有关“方面”的代码

12、如何防止页面重复提交?

集群环境:采用token加redis(redis是单线程的,处理需要排队)

处理流程:

1、数据提交前要向服务申请token,token放到redis内存,token有效时间

2、提交后后台校验token,同时删除token,生成新的token返回

13、什么是微服务?

将工程根据不同的业务规则拆分成微服务,部署在不同的机器上。服务间进行相互调用

14、什么是web服务?

(1)web service就是一个应用程序,它向外界暴露出一个能够通过web进行调用的API

(2)基于HTTP协议传输数据,这使得运行在不同机上的不同应用程序,无需借助附加的、专门的第三方软件和硬件,就可以相互交换数据或集成

15、谈一下你的项目选择Struts2的理由?

①Action是POJO类,没有依赖Servlet API,具有良好的可测试性; ②强大的拦截器,简化了开发的复杂度;

③支持多种表现层技术:JSP、Freemarker等; ④灵活的验证方式; ⑤国际化(I18N)支持 ⑥声明式异常管理;

⑦通过JSON插件简化Ajax; ⑧通过Spring插件跟Spring整合;

16、谈一下拦截器和过滤器的区别?

拦截器和过滤器都可以用来实现横切关注功能,其区别主要在于: ①拦截器是基于JAVA反射机制的,而过滤器是基于函数回调的

②过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器

③拦截器只能对Action请求起作用(Action中的方法),而过滤器可以对几乎所有的请求起作用(CSS JSP JS)

17、Spring支持的事务管理类型?

编程式事务管理:编程的方式管理事物,极大的灵活性,难维护

声明式事务管理:可以将业务代码和事物管理分离、只需要用注解和XML配置来管理事物

php中文网,大量的免费Java入门教程,欢迎在线学习! 

以上是Java中高级面试题(附答案)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java 中的完美数 Java 中的完美数 Aug 30, 2024 pm 04:28 PM

Java 完美数指南。这里我们讨论定义,如何在 Java 中检查完美数?,示例和代码实现。

Java 中的随机数生成器 Java 中的随机数生成器 Aug 30, 2024 pm 04:27 PM

Java 随机数生成器指南。在这里,我们通过示例讨论 Java 中的函数,并通过示例讨论两个不同的生成器。

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java 版 Weka 指南。这里我们通过示例讨论简介、如何使用weka java、平台类型和优点。

Java 中的史密斯数 Java 中的史密斯数 Aug 30, 2024 pm 04:28 PM

Java 史密斯数指南。这里我们讨论定义,如何在Java中检查史密斯号?带有代码实现的示例。

Java Spring 面试题 Java Spring 面试题 Aug 30, 2024 pm 04:29 PM

在本文中,我们保留了最常被问到的 Java Spring 面试问题及其详细答案。这样你就可以顺利通过面试。

突破或从Java 8流返回? 突破或从Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

Java 中的时间戳至今 Java 中的时间戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的时间戳到日期指南。这里我们还结合示例讨论了介绍以及如何在java中将时间戳转换为日期。

Java程序查找胶囊的体积 Java程序查找胶囊的体积 Feb 07, 2025 am 11:37 AM

胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4

See all articles