Java面试题-web篇十五

简介: Java面试题-web篇十五

148,AJAX有哪些有点和缺点?



优点:

       1、最大的一点是页面无刷新,用户的体验非常好。

       2、使用异步方式与服务器通信,具有更加迅速的响应能力。

       3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

       4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。



缺点:

       1、ajax不支持浏览器back按钮。

       2、安全问题 AJAX暴露了与服务器交互的细节。

       3、对搜索引擎的支持比较弱。

       4、破坏了程序的异常机制。

       5、不容易调试。


149,AJAX应用和传统Web应用有什么不同?


       在传统的Javascript编程中,如果想得到服务器端数据库或文件上的信息,或者发送客户端信息到服务器,需要建立一个HTML form然后GET或者POST数据到服务器端。用户需要点击”Submit”按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载。


       因为服务器每次都会返回一个新的页面, 所以传统的web应用有可能很慢而且用户交互不友好。


       使用AJAX技术, 就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互。


       通过HTTP Request, 一个web页面可以发送一个请求到web服务器并且接受web服务器返回的信息(不用重新加载页面),展示给用户的还是同一个页面,用户感觉页面刷新,也看不到到Javascript后台进行的发送请求和接受响应,体验非常好。


150,Ajax的实现流程是怎样的?


     (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.

     (2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

     (3)设置响应HTTP请求状态变化的函数.

     (4)发送HTTP请求.

     (5)获取异步调用返回的数据.

     (6)使用JavaScript和DOM实现局部刷新.


具体一点:


1,创建XNLHttpRequest对象

(不考虑ie)XMLHttpRequest request = new XMLHttprequest();

2,创建新的Http请求

XMLHttprequest.open(method,url,flag,name,password);

3,设置响应Http请求变化的函数

XMLHttprequest.onreadystatechange=getData;

function getData(){

if(XMLHttprequest.readyState==4){

获取数据

       }

}

4,发送http请求

XMLHttprequest.send(data);

5,获取异步调用返回的对象

,function(data){

//异步提交后,交互成功,返回的data便是异步调用返回的对象,该对象是一个string类型的

}

6,使用js、DOM实现局部刷新

myDiv.innerHTML=''这是刷新后的数据''


151,简单说一下数据库的三范式?


       第一范式:数据库表的每一个字段都是不可分割的

       第二范式:数据库表中的非主属性只依赖于主键

       第三范式:不存在非主属性对关键字的传递函数依赖关系


152,Java集合框架是什么?说出一些集合框架的优点?


       每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。


       随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。


       集合框架的部分优点如下:


(1)使用核心集合类降低开发成本,而非实现我们自己的集合类。

(2)随着使用经过严格测试的集合框架类,代码质量会得到提高。

(3)通过使用JDK附带的集合类,可以降低代码维护成本。

(4)复用性和可操作性。


153,Java集合框架的基础接口有哪些?


       Collection为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。


       Set是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。


       List是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。


      Map是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。


一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。


154,集合框架中的泛型有什么优点?


       Java1.5引入了泛型,所有的集合接口和实现都大量地使用它。泛型允许我们为集合提供一个可以容纳的对象类型。


       因此,如果你添加其它类型的任何元素,它会在编译时报错。这避免了在运行时出现ClassCastException,因为你将会在编译时得到报错信息。


       泛型也使得代码整洁,我们不需要使用显式转换和instanceOf操作符。它也给运行时带来好处,因为不会产生类型检查的字节码指令。


155,Enumeration和Iterator接口的区别?


       Enumeration的速度是Iterator的两倍,也使用更少的内存。Enumeration是非常基础的,也满足了基础的需要。


       但是,与Enumeration相比,Iterator更加安全,因为当一个集合正在被遍历的时候,它会阻止其它线程去修改集合。


       迭代器取代了Java集合框架中的Enumeration。迭代器允许调用者从集合中移除元素,而Enumeration不能做到。为了使它的功能更加清晰,迭代器方法名已经经过改善。


156,Iterater和ListIterator之间有什么区别?


       1,我们可以使用Iterator来遍历Set和List集合,而ListIterator只能遍历List。


       2,Iterator只可以向前遍历,而LIstIterator可以双向遍历。


       3,ListIterator从Iterator接口继承,然后添加了一些额外的功能,比如添加一个元素、替换一个元素、获取前面或后面元素的索引位置。


157,我们如何对一组对象进行排序?


       如果我们需要对一个对象数组进行排序,我们可以使用Arrays.sort()方法。如果我们需要排序一个对象列表,我们可以使用Collection.sort()方法。


       两个类都有用于自然排序(使用Comparable)或基于标准的排序(使用Comparator)的重载方法sort()。


       Collections内部使用数组排序方法,所有它们两者都有相同的性能,只是Collections需要花时间将列表转换为数组。


158,与Java集合框架相关的有哪些最好的实践?


       1,根据需要选择正确的集合类型。比如,如果指定了大小,我们会选用Array而非ArrayList。如果我们想根据插入顺序遍历一个Map,我们需要使用TreeMap。如果我们不想重复,我们应该使用Set。


       2,一些集合类允许指定初始容量,所以如果我们能够估计到存储元素的数量,我们可以使用它,就避免了重新哈希或大小调整。


       3,基于接口编程,而非基于实现编程,它允许我们后来轻易地改变实现。


       4,总是使用类型安全的泛型,避免在运行时出现ClassCastException。


       5,使用JDK提供的不可变类作为Map的key,可以避免自己实现hashCode()和equals()。


       6,尽可能使用Collections工具类,或者获取只读、同步或空的集合,而非编写自己的实现。它将会提供代码重用性,它有着更好的稳定性和可维护性。


159,什么是事务?,


事务是恢复和并发控制的基本单位


事务的四个基本特征


原子性,一致性,隔离性,持久性


原子性和一致性差不多,意思是要么全部成功,要么就失败


一致性是说,从一个一致性状态到另一个一致性状态


隔离性是说一个事务执行的过程中不能被另一个事务干扰


持久性也就是事务一旦提交,他对数据库中数据的改变就应该是永久的,不能变的(这里只是面试简单的说一下理解,详细理解问度娘)


160,说说你开发中遇到过什么难题啊?怎么解决的?

卒.......


Java知音公众号推送Java开发中的一些必备技能,包括但不限于数据库、Java核心、流行框架、管理工具以及服务器相关,同时为您精选流行的开源项目,必会的面试选题,练手项目,优质视频资源等。让您闲暇之余巩固一下自己的知识,不知不觉中提高自己的开发水平。

相关文章
|
3月前
|
缓存 Java 关系型数据库
2025 年最新华为 Java 面试题及答案,全方位打造面试宝典
Java面试高频考点与实践指南(150字摘要) 本文系统梳理了Java面试核心考点,包括Java基础(数据类型、面向对象特性、常用类使用)、并发编程(线程机制、锁原理、并发容器)、JVM(内存模型、GC算法、类加载机制)、Spring框架(IoC/AOP、Bean生命周期、事务管理)、数据库(MySQL引擎、事务隔离、索引优化)及分布式(CAP理论、ID生成、Redis缓存)。同时提供华为级实战代码,涵盖Spring Cloud Alibaba微服务、Sentinel限流、Seata分布式事务,以及完整的D
148 0
|
2月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
293 0
|
1月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
232 63
|
2月前
|
缓存 NoSQL Java
Java Web 从入门到精通之苍穹外卖项目实战技巧
本项目为JavaWeb综合实战案例——苍穹外卖系统,涵盖Spring Boot 3、Spring Cloud Alibaba、Vue 3等主流技术栈,涉及用户认证、订单处理、Redis缓存、分布式事务、系统监控及Docker部署等核心功能,助你掌握企业级项目开发全流程。
228 0
|
2月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
114 0
|
3月前
|
算法 架构师 Java
Java 开发岗及 java 架构师百度校招历年经典面试题汇总
以下是百度校招Java岗位面试题精选摘要(150字): Java开发岗重点关注集合类、并发和系统设计。HashMap线程安全可通过Collections.synchronizedMap()或ConcurrentHashMap实现,后者采用分段锁提升并发性能。负载均衡算法包括轮询、加权轮询和最少连接数,一致性哈希可均匀分布请求。Redis持久化有RDB(快照恢复快)和AOF(日志更安全)两种方式。架构师岗涉及JMM内存模型、happens-before原则和无锁数据结构(基于CAS)。
82 5
|
3月前
|
Java API 微服务
2025 年 Java 校招面试全攻略:从面试心得看 Java 岗位求职技巧
《2025年Java校招最新技术要点与实操指南》 本文梳理了2025年Java校招的核心技术栈,并提供了可直接运行的代码实例。重点技术包括: Java 17+新特性(Record类、Sealed类等) Spring Boot 3+WebFlux响应式编程 微服务架构与Spring Cloud组件 Docker容器化部署 Redis缓存集成 OpenAI API调用 通过实际代码演示了如何应用这些技术,如Java 17的Record类简化POJO、WebFlux构建响应式API、Docker容器化部署。
108 5
|
3月前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
146 6
|
3月前
|
安全 Java API
2025 年 Java 校招面试常见问题及详细答案汇总
本资料涵盖Java校招常见面试题,包括Java基础、并发编程、JVM、Spring框架、分布式与微服务等核心知识点,并提供详细解析与实操代码,助力2025校招备战。
139 1
|
3月前
|
算法 Java 微服务
2025 年 Java 面试宝典社招春招秋招实操全方位攻略
2025年Java面试宝典涵盖核心技术及最新趋势,分为四大板块:1. Java基础:深入数据类型、多态等特性,结合学生信息管理等实例;2. JVM核心:解析内存模型与GC算法,附多线程转账等场景应用;3. 高并发方案:详解synchronized与线程池配置,提供Web服务器优化案例;4. Spring生态:剖析IoC/AOP原理,演示微服务架构实现。特别新增Java 17+特性实操,包括Record类、密封接口等语法糖,整合Spring Boot 3、响应式编程及云原生技术,通过订单状态机、API网关配置。
196 1