java初级工程师面试题一

本文是对一次Java初级工程师面试的总结,涵盖了jsp作用域、servlet生命周期、mvc模式、switch语句、数据类型运算、collection接口、数据库连接、Singleton模式以及SQL查询等基础面试题,旨在巩固和提升Java基础知识。

今天去面试了,做了份笔试题,很基础,由于没有关注基础最后还是挂了。在这里对今天的面试做一个总结以防止下一次再犯同样的错误。

1.写出jsp的四个作用域

     解:application,session,request,pageContext

2.描述servlet的生命周期?

    解:首先调用init()方法初始化,然后调用service()方法处理请求,最后调用destroy()销毁。由jvm进行垃圾回收。

3.详细描述一下mvc?

    解:mvc即模型(mode)-视图(view)-控制(controler)的缩写。模型层即从业务抽取出来用于存储数据的实体类(pojo);视图层用于展示数据的地方。控制层用于存取数据,转发请求,它是衔接模型层和视图层的中央枢纽。程序采用mvc的开发方式,可以提高程序的可维护性,降低代码直接的耦合度,每个层之间各司其职。

4.switch的表达式可以作用于byte吗?可以作用于long吗?可以作用于String吗?

    解:switch表达式作用的数据类型byte,short,char,enum(java5),String(java7)

5.short s1 = 1;s1=s1+1错在哪?short s1 = 1;s1 +=s1错在哪?

    解:java语言中基本数据类型之间进行运算,运算结果会向高位数据类型转换,所以s1+1结果为int类型在赋给s1会出现编译报错。由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

6.描述一下java中的collection?

    解:java中的collection的子接口主要List和Set两大类。<

### 常见面试题目汇总 以下是针对汇丰银行 Java 初级工程师职位可能涉及的些常见面试题目,涵盖了基础知识、编程技能以及实际应用等方面: #### 1. **Java 基础** - 解释 `final` 关键字的作用及其应用场景[^1]。 - 描述 Java 中的多态性是如何实现的?举个简单的例子说明[^3]。 ```java class Animal { void makeSound() { System.out.println("Some sound"); } } class Dog extends Animal { @Override void makeSound() { System.out.println("Bark"); } } ``` - 如何理解 JVM 的垃圾回收机制?有哪些常见的垃圾收集器? #### 2. **数据结构与算法** - 实现个方法,判断字符串是否为回文串[^2]。 ```java public boolean isPalindrome(String s) { int i = 0, j = s.length() - 1; while (i < j) { if (s.charAt(i++) != s.charAt(j--)) { return false; } } return true; } ``` - 给定组整数数组,找出其中两个数之和等于目标值的所有组合[^4]。 ```java import java.util.*; public List<List<Integer>> twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); List<List<Integer>> result = new ArrayList<>(); for (int num : nums) { if (map.containsKey(target - num)) { result.add(Arrays.asList(num, target - num)); } map.put(num, map.getOrDefault(num, 0) + 1); } return result; } ``` #### 3. **SQL 查询** - 编写 SQL 查询语句,统计某张表中每个用户的订单数量并按降序排列。 ```sql SELECT user_id, COUNT(*) AS order_count FROM orders GROUP BY user_id ORDER BY order_count DESC; ``` #### 4. **设计模式** - 简述单例模式的概念,并给出其实现方式之。 ```java public class Singleton { private static volatile Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } } ``` #### 5. **并发处理** - 使用线程池执行多个异步任务,并等待所有任务完成后再继续主线程逻辑。 ```java ExecutorService executor = Executors.newFixedThreadPool(5); List<Future<?>> futures = new ArrayList<>(); for (int i = 0; i < 10; i++) { Future<?> future = executor.submit(() -> { try { Thread.sleep(1000); // Simulate task execution time. } catch (InterruptedException e) {} }); futures.add(future); } futures.forEach(future -> { try { future.get(); } catch (Exception ignored) {} }); executor.shutdown(); System.out.println("All tasks completed."); ``` --- ###
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值