Java面试题
iPwisdom
这个作者很懒,什么都没留下…
展开
-
session 和 cookie 有什么区别?
a、存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。b、安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。c、容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。d、存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。...原创 2021-01-06 08:35:36 · 101 阅读 · 0 评论 -
jsp有哪些内置对象?作用分别是什么?
a、request 用户端请求,此请求会包含来自GET/POST请求的参数b、response 网页传回用户端的回应c、pageContext 网页的属性是在这里管理d、session 与请求有关的会话期e、application 封装服务器运行环境的对象; f、out 输出服务器响应的输出流对象;g、config Web 应用的配置对象; h、page JSP网页本身i、exception 封装页面抛出异常的对象。...原创 2021-01-06 08:34:46 · 118 阅读 · 0 评论 -
request.getAttribute()和 request.getParameter()有何区别?
a、request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。 b、getAttribute是返回对象,getParameter返回字符串c、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()设置之后,才能够通过getAttribute()来获得值,它们传递的是Object类型的数据。而且必须在同一个request对象中使用才有效。,而getParameter()是接收表单的ge原创 2021-01-06 08:34:14 · 166 阅读 · 1 评论 -
什么是 JavaConfig?
Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean 方法等。减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在 XML 和 Java 之间来回切换。Java原创 2020-12-31 11:44:59 · 95 阅读 · 0 评论 -
Spring Boot 有哪些优点?
a、减少开发,测试时间和努力。b、使用 JavaConfig 有助于避免使用 XML。c、避免大量的 Maven 导入和各种版本冲突。d、通过提供默认值快速开始开发。没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。e、需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到原创 2020-12-31 11:44:23 · 157 阅读 · 0 评论 -
什么是 Spring Boot?
多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot 是解决这个问题的方法。Spring Boot 已经建立在现有原创 2020-12-31 11:43:52 · 77 阅读 · 0 评论 -
Redis中的常用命令哪些?
a、hset 存储一个哈希键值对的集合b、hget获取一个哈希键的值c、hdel 删除一个或多个字段d、hgetall 获取一个哈希是键值对的集合e、lpush key value向链表左侧添加f、rpush key value向链表右侧添加g、lpop key 从左边移出一个元素h、rpop key 从右边移出一个元素i、keys * 返回所有的key 可以加*通配j、exists key判断string类型一个key是否存在 如果存在返回1 否则返回0...原创 2020-12-31 11:43:20 · 86 阅读 · 0 评论 -
什么是Maven?
Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用Maven,而且公司项目采用 Maven 的比例在持续增长。Maven的出现,解决了开发过程中的jar包升级及依赖的难题。它可以对项原创 2020-12-30 09:07:19 · 99 阅读 · 0 评论 -
Maven仓库是什么
Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径。得益于 Maven 的坐标机制,任何 Maven项目使用任何一个构件的方式都是完全相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。对于Maven来说,仓库分为两类:本地仓库和远程仓库。...原创 2020-12-30 09:06:45 · 109 阅读 · 0 评论 -
Maven的工程类型有哪些?
POM工程:POM工程是逻辑工程。用在父级工程或聚合工程中。用来做jar包的版本控制。JAR工程:将会打包成jar用作jar包使用。即常见的本地工程 - Java Project。WAR工程:将会打包成war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic Web Project。war工程默认没有WEB-INF目录及web.xml配置文件,IDE通常会显示工程错误,提供完整工程结构可以解决。...原创 2020-12-30 09:06:08 · 173 阅读 · 0 评论 -
Spring Boot 有哪些优点?
a、减少开发,测试时间和努力。b、使用 JavaConfig 有助于避免使用 XML。c、避免大量的 Maven 导入和各种版本冲突。d、通过提供默认值快速开始开发。没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。e、需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到原创 2020-12-29 08:29:02 · 162 阅读 · 0 评论 -
什么是Maven?
Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用Maven,而且公司项目采用 Maven 的比例在持续增长。Maven的出现,解决了开发过程中的jar包升级及依赖的难题。它可以对项原创 2020-12-29 08:28:19 · 114 阅读 · 0 评论 -
shiro有哪些组件?
a、Authentication:身份认证/登录,验证用户是不是拥有相应的身份;b、Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验 证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;c、Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;d、Cryptography:加密,原创 2020-12-29 08:27:40 · 121 阅读 · 0 评论 -
SpringSecurity 和 Shiro
相比 Spring Security, Shiro 在保持强大功能的同时,使用简单性和灵活性。 SpringSecurity: 即使是一个一个简单的请求, 最少得经过它的 8 个Filter。SpringSecurity 必须在 Spring 的环境下使用。初学 Spring Security,曲线还是较大,需要深入学习其源码和框架, 配置起来也较费力....原创 2020-12-28 18:01:10 · 81 阅读 · 0 评论 -
MyBatis 与 Hibernate 有哪些不同?
a、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要程序员自己编写 Sql 语句,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象。b、Mybatis 学习门槛低,简单易学,程序员直接编写原生态 sql,可严格控制 sql 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运原创 2020-12-28 18:00:29 · 123 阅读 · 0 评论 -
#{}和${}的区别是什么?
a、#{}是预编译处理,${}是字符串替换。b、Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值;c、Mybatis 在处理时,就是把{}时,就是把时,就是把{}替换成变量的值。d、使用#{}可以有效的防止 SQL 注入,提高系统安全性。...原创 2020-12-28 17:59:45 · 217 阅读 · 0 评论 -
http的响应码200,404,302,500表示的含义分别是?
200 - 确定。客户端请求已成功302 - 临时移动转移,请求的内容已临时移动新的位置404 - 未找到文件或目录500 - 服务器内部错误原创 2020-12-24 09:42:29 · 188 阅读 · 0 评论 -
如何解决表单提交的中文乱码问题
a、设置页面编码,若是jsp页面,需编写代码<%@page language=“java” pageEncoding=“UTF-8” contentType=“text/html;charset=UTF-8” %>若 是 html 页 面 , 在 网 页 头 部 ( < head>< /head> ) 中 添 加 下 面 这 段 代 码 < meta http-equiv=“Content-Type” content=“text/html; charset=utf原创 2020-12-24 09:41:30 · 124 阅读 · 0 评论 -
使用过哪些JSTL标签?
项目中主要使用了JSTL的核心标签库,包括< c:if>、< c:choose>、< c: when>、< c: otherwise>、< c:forEach>等,主要用于构造循环和分支结构以控制显示逻辑。虽然JSTL标签库提供了core、sql、fmt、xml等标签库,但是实际开发中建议只使 用核心标签库(core),而且最好只使用分支和循环标签并辅以表达式语言(EL),这样才能真正做到数据显示和业务逻辑的分离,这才是最佳实践。...原创 2020-12-24 09:40:16 · 85 阅读 · 0 评论 -
HashMap集合的特点?
HashMap集合底层是哈希表:查询的速度非常快JDK1.8之前:数组+链表结构JDK1.8之后:数组+链表/红黑树(当链表长度超过8):提高查询性能HashMap集合是一个无序集合,存取顺序可能不一致原创 2020-12-08 09:43:45 · 221 阅读 · 0 评论 -
Lock底层原理
LOCK 的实现类其实都是构建在 AbstractQueuedSynchronizer 上,为何图中没有用 UML 线表示呢,这是每个 Lock 实现类都持有自己内部类 Sync 的实例,而这个 Sync 就是继承 AbstractQueuedSynchronizer (AQS)。为何要实现不同的 Sync 呢?这和每种 Lock 用途相关。另外还有 AQS 的 State 机制。FairSync 与 NonfairSync 的区别在于,是不是保证获取锁的公平性,因为默认是 NonfairSync(非公平原创 2020-12-03 18:55:09 · 293 阅读 · 0 评论 -
Mybatis框架、什么是 MyBatis、#{}和${}的区别是什么?、Mybatis 动态 sql 是做什么的?都有、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
1.什么是 MyBatis?MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。2.Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?a、Mybatis 动态 sql 可以让我们在 Xml 映射文件内,以标签的形式编写动态 sql,完成逻辑判断和动态拼接 sql 的功能。b、Mybatis 提 供 了 9 种 动 态 sql 标 签 : trim|where|set|foreach|if|choose|when|otherwi原创 2020-12-02 18:01:48 · 80 阅读 · 0 评论 -
MyBatis 与 Hibernate 有哪些不同?
a、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要程序员自己编写 Sql 语句,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象。b、Mybatis 学习门槛低,简单易学,程序员直接编写原生态 sql,可严格控制 sql 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运原创 2020-12-02 18:00:50 · 92 阅读 · 0 评论 -
Shiro 的优点
a、简单的身份认证, 支持多种数据源b、对角色的简单的授权, 支持细粒度的授权(方法级) c、支持一级缓存,以提升应用程序的性能d、内置的基于 POJO 企业会话管理, 适用于 Web 以及非 Web 的环境e、非常简单的加密 APIf、不跟任何的框架或者容器捆绑, 可以独立运行...原创 2020-12-02 18:00:03 · 175 阅读 · 0 评论 -
说一说Servlet的生命周期?
Servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口 的init(),service()和destroy方法表达。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。web容器加载servlet,生命周期开始。通过调用servlet的i原创 2020-12-02 17:59:15 · 77 阅读 · 0 评论 -
jsp和servlet的区别、共同点、各自应用的范围?
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于: Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩 展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于 控制层....原创 2020-12-02 17:58:29 · 98 阅读 · 0 评论 -
Servlet API中forward()与redirect()的区别?
a、从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览 器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客 户端向服务器端发出两次request,同时也接受两次response。b、从数据共享来说forward:转发页面和转发到的页面可以共享reques原创 2020-12-02 17:57:43 · 115 阅读 · 0 评论