专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 职业指南 Java初级工程师面试题常见问题集锦

Java初级工程师面试题常见问题集锦

更新时间:2022-12-20 14:53:59 来源:星辉 浏览821次

小编发现网上有不少的Java相关面试题,但问题也同样存在,第一就是面试题不全、第二就是没有答案、第三有答案但未必会有解答思路等等,所以今天小编就根据以上问题,总结出了比较详细的Java初级工程师面试题:

java初级工程师面试题

1.你对SpringMVC的了解

答:采用三层框架,降低代码之间的耦合,提高代码质量。SpringMVC的重要核心组件有:前端控制器(dispatcherServlet), 处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)

工作流程

1.客户端发送请求到前端控制器(中央处理器),前端控制器判断请求是否符合格式,

如果符合格式到请求到达处理映射器,处理器映射器查找对应的处理器,将查找到的结果(处理器路径)返回给前端控制器,前端控制器到处理器适配器,处理器适配器进行处理业务,将业务执行的结果返回给前端控制器,前端控制器到视图解析器,进行视图解析,视图解析后返回一个view(数据)到前端控制器,前端控制器到视图渲染,将渲染后的结果返回给客户端

2.面向对象的特征有哪些

封装、继承、多态、重载、重写

(1)继承:就是保留父类的属性,开扩新的东西。通过子类可以实现继承,子类继承父类的所有状态和行为,同时添加自身的状态和行为。

(2)封装:就是类的私有化。将代码及处理数据绑定在一起的一种编程机制,该机制保证程序和数据不受外部干扰。

(3)多态:是允许将父对象设置成为和一个和多个它的子对象相等的技术。包括重载和重写。重载为编译时多态,重写是运行时多态。

(4)重载:在同一个类中,方法名一样。参数列表、方法体、返回值类型、访问修饰符可以不一样

(5)重写:存在于子父类关系中,子类重写父类方法,方法名一样访问权限修饰符大于等于父类,抛出异常范围小于等于父类,参数列表一样,方法体不一样

3.抽象类和接口的区别

(1)抽象类中有抽象方法有构造方法,构造方法不能直接创建对象,可以有静态代码块和静态方法;子类继承抽象类必须重写所有抽象方法,否则把自己变成抽象类

(2)接口中只能有抽象方法,jdk1.8之后允许有普通方法,不能含有静态代码块以及静态方法

一个类只能继承一个抽象类,而一个类却可以实现多个接口

4.在java里面有反射,反射的用途

反射:动态地发现和绑定类、方法、字段,以及所有其他的由于有所产生的的元素。通过反射,能够在需要时完成创建实例、调用方法和访问字段的工作。

在程序运行中通过类名,可以调用这个类中的所有方法以及属性

优点: 可以在程序运行的过程中,操作这些对象。

可以解耦,提高程序的可扩展性。

缺点:因为是JVM操作,所以对于性能来说会有所下降。

容易对程序源码造成一定的混乱。

用途:

1.在运行时判断任意一个对象所属的类

2.在运行时构造任意一个类的对象

3.在运行时判断任意一个类所具有的成员变量和方法

3.在运行时调用任意一个对象的方法,通过反射甚至可以调用到private修饰的方法

4.生成动态代理

5.实现线程的方法

1.继承Thread类,重写run方法

2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target

3.通过Callable和FutureTask创建线程

4.通过线程池创建线程

线程的物种状态:创建、就绪、运行、阻塞、死亡

6.get和post的区别

(1)get:地址栏传输数据,携带数据数量小,地址栏可见,速度快,不安全

(2)post:Tcp包传输数据,携带数据量大,地址栏不可见,速度相对慢,安全

7.SpringBoot相对于SpringMVC优势

(1)SpringBoot减少了大量的配置文件,约定优于配置 ,可以极大地简化了 spring 的配置流程,Spring Boot实现了自动配置,降低了项目搭建的复杂度。

(2)Spring 是一个“引擎”;

Spring MVC 是基于Spring的一个 MVC 框架 ;

Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。

8.在java里面常用的集合类都有哪些

(1)单集合:set不能重复(HashSet,LinkedHashSet,TreeSet)

List有序、可重复(ArrayList,LinkedList)

(2)双列集合:Map(HashMap,TreeMap)

1、List(有序、可重复)

List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所以插入删除数据速度慢。

ArrayList:基于数组实现,查找、更新效率高,自动扩容1.5倍,初始容量10

LinkedList:基于双向链表实现,删除插入效率高,链表是由节点组成的节点中分两部分一部分存储节点元素,另一部分存储指针,指向下一个节点,删除一个元素,只要改变他前一个节点的指针指向就可以了

2、Set(不能重复)

Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。

HashSet,基于Hash表去重,重写equals和hashcode

LinkedHashSet,通过比较器,实现Comparable重写comporTo()方法,底层是红黑树

3、Map(键值对、键唯一、值不唯一)

Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。

HashMap,初始大小11,加载因子0.75,扩容2倍+1

TreeMap,有序(自然升序)基于红黑树叶

集合的优点

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

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

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

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

以上就是“Java初级工程师面试题常见问题集锦”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注星辉Java官网。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>