java基础面试题,还不错,我面试了几家就遇到了上面的挺多的面试题

2024-02-07 10:48

本文主要是介绍java基础面试题,还不错,我面试了几家就遇到了上面的挺多的面试题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1: ArraylistLinkedlist的区别?

  ArrayList

1)ArrayList底层数组结构,原理:数组复制

2)底层自动扩容数组,初始为10,每次扩容上次的1/2

 

3)善于查询

4)利用index按顺序存储

LinkedList

1)底层链表结构(双链表)

2)善于插入删除数据

3)特殊方法:addLast(),addFirst(),removeFirst(),remove()删除第一个;removeLast()

总结:ArrayList更适合读取数据,linkedList更多的时候添加或删除数据。

ArrayList内部是使用可増长数组实现的,所以是用get和set方法是花费常数时间的,但是如果插入元素和删除元素,除非插入和删除的位置都在表末尾,否则代码开销会很大,因为里面需要数组的移动。
LinkedList是使用双链表实现的,所以get会非常消耗资源,除非位置离头部很近。但是插入和删除元素花费常数时间。

2:重载与重写有什么区别?

重写:不同类中,方法体结构相同,逻辑代码可以不同,方法被定义为final不能被重写。

重载:同一类中,方法体结构相同参数列表类型和个数不能相同。

3: &&&有什么区别?

&和&&都可以作逻辑与,&它的左边无论是true还是false,右边的条件都要进行判断,&&它的左边如果是false,右边则不用进行判断。

&可以用作位运算符,将左边和右边两个数转换成二进制数然后进行与运算。

这也是为什么两者都实现的一个功能,然而最后我们平时使用的是||  &&,因为短路高效啊,快啊

4:接口和抽象类有什么区别?

抽象类特点:

1)不能被实例化(子类继承后可实例化子类)

2)充当父类

3)有属性,方法,构造方法,抽象方法

4)抽象类中抽象方法必须被重写

5)子类有且只有一个父类

   接口特点:

1)不能被实例化

2)充当父接口

3)有属性,抽象方法(属性必须初始化,且不能更改)

4)子类可以实现多个接口

抽象类(abstract class):
1:abstract 关键字修饰,并且没有方法体
2:抽象类不能直接创建实例
3:抽象类只能被继承,一个具体类继承一个抽象类,必须实现所有抽象方法
接口(interface):
1:实现接口的一定要实现接口里定义的所有方法
2:接口可以实现多重继承
区别:
1:抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用
2:一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类
3:接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法
4:抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的
5:抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法

6.接口可以继承接口,甚至可以继承多个接口;类可以实现多个接口,只能继承一个类。

 

5:写出JDBC操作数据库的步骤?
1:加载驱动
 Class.forName("com.mysql.jdbc.Driver");
2:创建连接
Connection con = DriverManager.getConnection ("url", "1111", "1111");
3:创建语句
PreparedStatement ps = con.prepareStatement("select * from user");
4:执行语句
ResultSet rs = ps.executeQuery();
5:处理结果
   while(rs.next()) {
       rs.get.....(“”);
   }
6:关闭资源
   finally {
       if(con != null) {
           try {
               con.close();
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
   }

加载驱动-创建连接-创建语句-执行语句-处理结果-关闭资源

6: HashTableHashMap有什么区别?

1. HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口
2.主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高Hashtable
3.HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
4.最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是

   HashMap线程不安全。HashMap是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许包含空键和空值,而HashTable不允许空键值。

   HashTable线程安全。HashMap是HashTable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空键值,由于非线程安全,所以效率上可能高于HashTable。

 

7;创建多线程的方式有几种?分别是什么?线程死锁是如何产生的?如何防止线程死锁现象?

方式:继承Thread、实现 Runnable 接口
产生:
   - 一个资源每次只能被一个进程使用
   - 一个进程因请求发生阻塞时,依然对已获得的资源保持不放
   - 进程已经获得资源使用权,但是一直未使用
   - 同一个进程,频繁的获取资源的优先使用权,一直未释放
防止:
   加锁顺序(线程按照一定的顺序加锁)
   加锁时限(线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该

锁的请求,并释放自己占有的锁)
   死锁检测(一般是将所有的锁存放于map对象中,检测map

这篇关于java基础面试题,还不错,我面试了几家就遇到了上面的挺多的面试题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687464

相关文章

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

SpringBoot基于沙箱环境实现支付宝支付教程

《SpringBoot基于沙箱环境实现支付宝支付教程》本文介绍了如何使用支付宝沙箱环境进行开发测试,包括沙箱环境的介绍、准备步骤、在SpringBoot项目中结合支付宝沙箱进行支付接口的实现与测试... 目录一、支付宝沙箱环境介绍二、沙箱环境准备2.1 注册入驻支付宝开放平台2.2 配置沙箱环境2.3 沙箱

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

java两个List的交集,并集方式

《java两个List的交集,并集方式》文章主要介绍了Java中两个List的交集和并集的处理方法,推荐使用Apache的CollectionUtils工具类,因为它简单且不会改变原有集合,同时,文章... 目录Java两个List的交集,并集方法一方法二方法三总结java两个List的交集,并集方法一

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

Springboot的自动配置是什么及注意事项

《Springboot的自动配置是什么及注意事项》SpringBoot的自动配置(Auto-configuration)是指框架根据项目的依赖和应用程序的环境自动配置Spring应用上下文中的Bean... 目录核心概念:自动配置的关键特点:自动配置工作原理:示例:需要注意的点1.默认配置可能不适合所有场景

使用Apache POI在Java中实现Excel单元格的合并

《使用ApachePOI在Java中实现Excel单元格的合并》在日常工作中,Excel是一个不可或缺的工具,尤其是在处理大量数据时,本文将介绍如何使用ApachePOI库在Java中实现Excel... 目录工具类介绍工具类代码调用示例依赖配置总结在日常工作中,Excel 是一个不可或缺的工http://