2024年java春招面试题及答案_关于arraylist,初始化指定容量为10,在添加第11个元素时,会发生什么

判断

回到题目,如果你真想检验一个人的水平。第一步先考察一下基本的编程基础,问几个基本的编程问题,可以和前端相关也可以无关。比如垃圾收集大致是怎么做的,setTimeout 大致做了什么(说会在另一个线程里执行回调的直接毙掉)。

第二步考察一下知识面,问问http、tcp的基本知识,dns是怎么工作的,或者常用框架的实现原理,看看候选人是不是除了自己的一亩三分地什么都不关心。

第三步考察hold业务逻辑的能力,从一个简单的注册页,或者查询页开始,先让说下代码的基本架构,然后需求、性能、可靠性、安全层层加码,看看能不能很快的反馈出解决方案。能对答如流的要么做过,要么对他来说这种复杂度的东西是小case。

前三步都没问题,基本上说明候选人已经还行了,但是行到什么程度,不知道。如果想找比较厉害的,就增加个第四步,亮点项目考察。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了,我整理一套前端面试题分享给大家,希望对即将去面试的小伙伴们有帮助!

🏠个人主页:@编程ID
🧑个人简介:大家好,我是编程ID,一个想要与大家共同进步的程序员儿
🧑如果各位在准备面试,找工作,刷算法,刷选择题,可以使用我找工作前用的刷题神器哦![面试刷题神器🎁]
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,望能帮到各位想要找工作或者提高自己的小伙伴儿们,如果有什么需要改进的地方,还请大佬不吝赐教🤞🤞

上一篇–2023春招java面试题及答案(上)》》》》》》

1、下面有关jdbc statement的说法错误的是?

A、JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程

B、对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,由于
PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象”

C、PreparedStatement中,“?” 叫做占位符,一个占位符可以有一个或者多个值

D、PreparedStatement可以阻止常见的SQL注入式攻击

正确答案:C

2、下面有关JVM内存,说法错误的是?

A、程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的

B、虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的

C、方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的

D、原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的

正确答案:C

参考答案:方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 
在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常
量以及编译器编译后的代码等。

3、下面有关servlet service描述错误的是?

A、不管是post还是get方法提交过来的连接,都会在service中处理

B、doGet/doPost 则是在 javax.servlet.GenericServlet 中实现的

C、service()是在javax.servlet.Servlet接口中定义的

D、service判断请求类型,决定是调用doGet还是doPost方法

正确答案:B

参考答案:B doGet/doPost 则是在 javax.servlet.http.HttpServlet 中实现的

4、下面有关servlet和cgi的描述,说法错误的是?

A、servlet处于服务器进程中,它通过多线程方式运行其service方法

B、CGI对每个请求都产生新的进程,服务完成后就销毁

C、servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等

D、cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi

正确答案:D

参考答案:选择D,servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请
求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

5、下面有关SPRING的事务传播特性,说法错误的是?

A、PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行

B、PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就抛出异常

C、PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起

D、PROPAGATION_NESTED:支持当前事务,新增Savepoint点,与当前事务同步提交或回滚

正确答案:B

6、看以下代码:

文件名称:forward.jsp

<html>  
     <head><title> 跳转  </title> </head> 
     <body>  
         <jsp:forward page="index.htm"/>     
     </body>
 </html> 

如果运行以上jsp文件,地址栏的内容为
A、http://127.0.0.1:8080/myjsp/forward.jsp

B、http://127.0.0.1:8080/myjsp/index.jsp

C、http://127.0.0.1:8080/myjsp/index.htm

D、http://127.0.0.1:8080/myjsp/forward.htm

正确答案:A

参考答案:forward和redirect是最常问的两个问题 forward,服务器获取跳转页面内容传给用户,用户地址栏不变 
redirect,是服务器向用户发送转向的地址,redirect后地址栏变成新的地址 因此这个题是A

7、下面哪一项不是加载驱动程序的方法?

A、通过DriverManager.getConnection方法加载

B、调用方法 Class.forName

C、通过添加系统的jdbc.drivers属性

D、通过registerDriver方法注册

正确答案:A

参考答案:答案:A DriverManager.getConnection方法返回一个Connection对象,这是加载驱动之后才能进行的

8、关于sleep()和wait(),以下描述错误的一项是( )

A、sleep是线程类(Thread)的方法,wait是Object类的方法;

B、sleep不释放对象锁,wait放弃对象锁

C、sleep暂停线程、但监控状态仍然保持,结束后会自动恢复

D、wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态

正确答案:D

参考答案:D Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行。 共同点 : 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。 2. wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException。 如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep/join,则线程B会立刻抛出InterruptedException,在catch() {} 中直接return即可安全地结束线程。 需要注意的是,InterruptedException是线程自己从内部抛出的,并不是interrupt()方法抛出的。对某一线程调用 interrupt()时,如果该线程正在执行普通的代码,那么该线程根本就不会抛出InterruptedException。但是,一旦该线程进入到 wait()/sleep()/join()后,就会立刻抛出InterruptedException 。 不同点 : 1.每个对象都有一个锁来控制同步访问。Synchronized关键字可以和对象的锁交互,来实现线程的同步。 sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 2.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用 3.sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常 4.sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 5.wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

9、根据下面的程序代码,哪些选项的值返回true?

public class Square {  
    long width;  
    public Square(long l) {   
        width = l;  
    }  
    public static void main(String arg[]) {   
        Square a, b, c;  
        a = new Square(42L);   
        b = new Square(42L);   
        c = b;   
        long s = 42L;  
    } 
}

A、a == b

B、s == a

C、b == c

D、a.equals(s)

正确答案:C

参考答案:答案:C a = new Square(42L);     b = new Square(42L);    这里new了两个对象,所以a,b不是同
一个引用a!=b s的类型跟a,b不同类型,所以s!=a,s!=b  c = b; 这里b,c是同一个对象的引用,所以b==c是true

10、下面哪个不对?

A、RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.

B、A method is not required to declare in its throws clause any subclasses of RuntimeExeption that might be thrown during the execution of the method but not caught

C、An RuntimeException is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.

D、NullPointerException is one kind of RuntimeException

正确答案:C

参考答案:运行时异常: 都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、
IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以
不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。        
运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch
语句捕获它,也没有用throws子句声明抛出它,也会编译通过。 非运行时异常 (编译异常): 是
RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如
果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不
自定义检查异常。

11、关于以下程序代码的说明正确的是?

 public class HasStatic{
       private static int x=100;
       public static void main(String args[]){
            HasStatic hs1=new HasStatic();
            hs1.x++;
            HasStatic  hs2=new HasStatic();
            hs2.x++;
            hs1=new HasStatic();
            hs1.x++;
            HasStatic.x--;
            System.out.println("x="+x);
       }
       } 

A、程序通过编译,输出结果为:x=103

B、10行不能通过编译,因为x是私有静态变量

C、5行不能通过编译,因为引用了私有静态变量

D、程序通过编译,输出结果为:x=102

正确答案:D

参考答案:此题选择D。 首先要了解static的意思。 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员
方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 static变量在第一次使用的时候初始
化,但只会有一份成员对象。 所以这里不仅可以调用,而且每一次调用都确实修改了x的值,也就是变化情况是这样
的: x=101 x=102 x=103 x=102

12、下列LINUX系统的键盘命令中,显示当前工作目录的命令是

A、ls命令

B、cd命令

C、pwd命令

D、cat命令

正确答案:C

13、下面哪种方式不可以实现数据约束

A、NOT NULL

B、UNIQUE INDEX

C、PRIMARY KEY

D、非唯一索引 INDEX

正确答案:D

14、在往个表插入记录时,有10条成功,5条失败,数据还没有提交,需要把所有数据回退,选择下面的命令

A、DELETE

B、ROLLBACK

C、UNCOMMIT

D、TRUNCATE TABLE

正确答案:B

15、要计算表student中score*0.8的值,并生成别名ScoreA的SQL语句是

A、SELECT SCORE*0.8 ‘ScoreA’FROM student

B、SELECT SCORE*0.8 “ScoreA”FROM student

C、SELECT SCORE*0.8 AS ScoreA FROM student

D、SELECT SCORE*0.8 AS‘ScoreA’FROM student



##### 框架相关

原生JS虽能实现绝大部分功能,但要么就是过于繁琐,要么就是存在缺陷,故绝大多数开发者都会首选框架开发方案。现阶段较热门是React、Vue两大框架,两者工作原理上存在共通点,也存在一些不同点,对于校招来说,不需要两个框架都学得特别熟,一般面试官会针对你简历中写的框架进行提问。

在框架方面,**生命周期、钩子函数、虚拟DOM这些基本知识是必须要掌握的**,在学习的过程可以结合框架的官方文档

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

**Vue框架**

>**知识要点:**
>**1. vue-cli工程**
>**2. vue核心知识点**
>**3. vue-router**
>**4. vuex**
>**5. http请求**
>**6. UI样式**
>**7. 常用功能**
>**8. MVVM设计模式**

![](https://img-blog.csdnimg.cn/img_convert/55474d91c28f66a0442bb527f081d897.webp?x-oss-process=image/format,png)


**React框架**

>**知识要点:**
>**1. 基本知识**
>**2. React 组件**
>**3. React Redux**
>**4. React 路由**

![](https://img-blog.csdnimg.cn/img_convert/4441eaefbcdf9331f78df33a09df4e83.webp?x-oss-process=image/format,png)



掌握的**,在学习的过程可以结合框架的官方文档

**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

**Vue框架**

>**知识要点:**
>**1. vue-cli工程**
>**2. vue核心知识点**
>**3. vue-router**
>**4. vuex**
>**5. http请求**
>**6. UI样式**
>**7. 常用功能**
>**8. MVVM设计模式**

[外链图片转存中...(img-S6mjoM8E-1714816325229)]


**React框架**

>**知识要点:**
>**1. 基本知识**
>**2. React 组件**
>**3. React Redux**
>**4. React 路由**

[外链图片转存中...(img-7dEQMtTo-1714816325230)]



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值