Java面试题(二)_可以取得多选框提交的参数的所有记录值的方法是什么 a getparameter() b getat

最后

腾讯T3大牛总结的500页MySQL实战笔记意外爆火,P8看了直呼内行

腾讯T3大牛总结的500页MySQL实战笔记意外爆火,P8看了直呼内行

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性

  • 请说明一下web.xml文件中可以配置哪些内容?
     web.xml用于配置Web应用的相关信息,如:监听器(listener)、过滤器(filter)、 Servlet、相关参数、会话超时时间、安全验证方式、错误页面等。
  • 请问使用Servlet如何获取用户配置的初始化参数以及服务器上下文参数?
     可以通过重写Servlet接口的init(ServletConfig)方法并通过ServletConfig对象getInitParameter()方法来获取Servlet的初始化参数。可以通过ServletConfig对象的getServletContext()方法获取ServletContext对象,并通过该对象的getInitParameter()方法来获取服务器上下文参数。当然,ServletContext对象也在处理用户请求的方法(如doGet()方法)中通过请求对象的getServletContext()方法来获得。
  • 请问使用Servlet如何获取用户提交的查询参数以及表单数据?
     可以通过请求对象(HttpServletRequest)的getParameter()方法通过参数名获得参数值。如果有包含多个值的参数(例如复选框),可以通过请求对象的getParameterValues()方法获得。当然也可以通过请求对象的getParameterMap()获得一个参数名和参数值的映射(Map)。
  • 在Servlet执行的过程中,一般实现哪几个方法?(生命周期)
    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
    Servlet 通过调用 init () 方法进行初始化:public void init(ServletConfig config)
    Servlet 调用 service() 方法来处理客户端的请求:
      public ServletConfig getServletConfig()
      public String getServletInfo()
      public void service(ServletRequest request,ServletResponse response)
    Servlet 通过调用 destroy() 方法终止(结束):public void destroy()
    最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

Redis

  • redis的5种数据类型
    string 字符串(可以为整形、浮点型和字符串,统称为元素)
    list 列表(实现队列,元素不唯一,先入先出原则)
    set 集合(各不相同的元素)
    hash hash散列值(hash的key必须是唯一的)
    sort set 有序集合
  • 请分别介绍一下AOF和RDB?
     RDB(Redis DataBase):RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。
     AOF(Append Only File):Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
  • RDB的优缺点
    优点:
     1 适合大规模的数据恢复。
     2 如果业务对数据完整性和一致性要求不高,RDB是很好的选择。
    缺点:
     1 数据的完整性和一致性不高,因为RDB可能在最后一次备份时宕机了。
     2 备份时占用内存,因为Redis 在备份时会独立创建一个子进程,将数据写入到一个临时文件(此时内存中的数据是原来的两倍),最后再将临时文件替换之前的备份文件。
  • AOF的重写机制?AOF的优缺点
    重写机制:AOF的工作原理是将写操作追加到文件中,文件的冗余内容会越来越多。所以Redis 新增了重写机制。当AOF文件的大小超过所设定的阈值时,Redis就会对AOF文件的内容压缩。
    优点:数据的完整性和一致性更高
    缺点:因为AOF记录的内容多,文件会越来越大,数据恢复也会越来越慢。
  • redis为什么是单线程?
     官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
  • 为什么 redis 读写速率快、性能好?
     Redis是纯内存数据库,相对于读写磁盘,读写内存的速度就不是几倍几十倍了,一般,hash查找可以达到每秒百万次的数量级。
     多路复用IO,“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗)。可以直接理解为:单线程的原子操作,避免上下文切换的时间和性能消耗;加上对内存中数据的处理速度,很自然的提高redis的吞吐量。
  • redis的主从复制
    第一阶段:与master建立连接
    第二阶段:向master发起同步请求(SYNC)
    第三阶段:接受master发来的RDB数据
    第四阶段:载入RDB文件

MySQL基础

  • 数据库事务4个特性(ACID)
    (1)原子性(atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中如果发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
    (2)一致性(consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
    (3)隔离性(isolation):事务的隔离性是指在并发环境中,并发的事务时相互隔离的,一个事务的执行不能不被其他事务干扰。不同的事务并发操作相同的数据时,每个事务都有各自完成的数据空间,即一个事务内部的操作及使用的数据对其他并发事务时隔离的,并发执行的各个事务之间不能相互干扰。
    (4)持久性(durability):一旦事务提交,那么它对数据库中的对应数据的状态的变更就会永久保存到数据库中。即使发生系统崩溃或机器宕机等故障,只要数据库能够重新启动,那么一定能够将其恢复到事务成功结束的状态
  • 事务四大特性隔离性的隔离级别
    事务隔离分为不同级别,包括
      -读未提交(Read uncommitted) 安全性最差,可能发生并发数据问题,性能最好
      -读提交(Read committed) Oracle默认的隔离级别
      -可重复读(Repeatable read)MySQL默认的隔离级别,安全性较好,性能一般
      -串行化(Serializable) 表级锁,读写都加锁,效率低下,安全性高,不能并发
  • left join 和 right join 的区别?
    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
    right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
  • 介绍一下 mysql的主从复制(Master-Slave)?
     MySQL主从复制是其最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。
    复制的基本过程如下:
      (1)Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容。
      (2)Master接收到来自Slave的IO进程的请求后,负责复制的IO进程会根据请求信息读取日志指定位置之后的日志信息,返回给Slave的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置。
      (3)Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”。
      (4)Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

JDBC编程

  • JDBC使用过程
    1.注册驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
    2.获取和数据库的连接
    Connection connection = DriverManager.getConnection("数据库url","用户名","登陆密码");
    3.获取传输器
    PreparedStatement ps = connection.prepareStatement(sql语句骨架);//preparedStatement预编译,防止sql注入问题
    4.获取结果
    ResultSet rs = ps.executeQuery();
  • 请你讲解一下数据连接池的工作机制?
     J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量由配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
  • 数据库的三大范式?

最后

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

Java核心知识

  • Spring全家桶(实战系列)

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

  • 其他电子书资料

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

t/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值