14道Java开发岗面试题

简介: 14道Java开发岗面试题

开头

大家好,我是程序员Manor,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。

今天为大家带来14道Java开发岗面试题

1、问:short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

答:对于short s1 = 1; s1 = s1 + 1;

由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。

队友锁在边

对于short s1 = 1; s1 += 1;

由于 += 是java语言规定的运算符,

java编译器会对它进行特殊处理,

因此可以正确编译。

队友加一

2、问:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

答:

使用final关键字修饰一个变量时,是指引用变量不能变,

引用变量所指向的对象中的内容还是可以改变的

3、"=="和equals方法究竟有什么区别?

答案(

1、””是运算符,
2、equals是超(人)类(型)Object中的方法
3、”
”比较基本类型是数值,

引用类型是地址比较内存地址,

String类中重写的equals方法比较的是值)

因此圣诞树

4、是否可以从一个static方法内部发出对非static方法的调用?

不可以。

普通方法属于对象,

只有对象创建后才可以调用,

而static方法调用时不需要创建对象,

从static方法中调用非static方法时可能还没有创建任何实例对象

趴着睡退出

5、Integer与int的区别

Int是基本数据类型,

Integer为int对应的封装类型。

int的默认值为0,

而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别

家都没去

6、请说出作用域public,private,protected,以及不写时的区别

作用域 当前类 同一包 子类 其他包

Public(公开的 √ √ √ √

Protected(受保护的 √ √ √ ×

Default(默认的 √ √ × ×

Private(私有的 √ × × ×

类包子其

那包紫琪

公受默私

公司没收

7、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

答:Overload是重载的意思,

Override是覆盖的意思,也就是重写。

Override覆盖要注意以下的几点:

1.覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;

2.覆盖的方法的返回值必须和被覆盖的方法的返回值一致;

3.被覆盖的方法不能为private,

否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

  1. 子类覆盖父类方法,方法访问权限必须大于等于父类

5.覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;

表反派附议

overload要注意以下的几点:

1.重载只和参数列表有关。例如,不同的参数类型,不同的参数个数,不同的参数顺序

2.不能通过访问权限、返回类型、抛出的异常进行重载;

3.方法的异常类型和数目不会对重载造成影响;

4.对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。

才不要·对喷

8、abstract class和interface有什么区别?

1.抽象类可以有构造方法,接口中不能有构造方法。

2.抽象类中可以有普通成员变量,接口中没有普通成员变量

3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

  1. 抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

5.抽象类和接口中都可以包含静态成员变量,

抽象类中的静态成员变量的访问类型可以任意,

但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

5. 一个类可以实现多个接口,但只能继承一个抽象类

接口中不能有构造方法

接口中没有普通成员变量

接口中的所有方法必须都是抽象的,不能有非抽象的普通方法

接口中的抽象方法只能是public类型的,并且默认即为public abstract类型

接口中定义的变量只能是public static final类型,并且默认即为public static final类型

9、String是最基本的数据类型吗?

不是,基本数据类型包括byte、int、char、long、float、double、boolean和short。

java.lang.String类是final类型的,

因此不可以继承这个类、不能修改这个类。

为了提高效率节省空间,

我们应该用StringBuilder类

10、String s = new String(“xyz”);创建了几个String Object? 二者之间有什么区别?

答:创建了两个,

“xyz” 是一个,

new String 是一个,

存储的位置不一样,前者存储在常量池中,后者在堆中分配存储空间。

处分

11、String 和StringBuilder的区别

答案:

(String做字符串拼接会产生多个对象,

加大系统的开销。

而StringBuilder做字符串拼接只会产生一个对象,大大提高了频繁拼接字符串的效率)

参加真高

12、下面这条语句一共创建了多少个对象:String s=“a”+“b”+“c”+“d”;

答案:(创建了一个对象)

编译可以对字符串常量直接相加的表达式进行优化,

不必要等到运行期去进行加法运算处理,

而是在编译时去掉其中的加号,

直接将其编译成一个这些常量相连的结果。

不包邮

不对劲,饿不起,自己

13、简述List、Map、Set三个接口的特点

答案:

(List: 存储的元素有序、

可重复、

允许值为空

Map:以键值对形式存储元素,

键不能重复,

值可重复

Set:存储的元素无序、

不可重复)

来嘛死人

有序重复 值为空

14、简述ArrayList和LinkedList的结构以及操作特点

答案:(ArrayList底层是数组,

LinkedList底层是双向链表。

ArrayList查找快增删慢,

LinkedList查找慢增删快


目录
相关文章
|
1月前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
110 10
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
1月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
19天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
38 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
7天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
54 13
|
12天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
44 10
|
5天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
42 2
|
21天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
53 14
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
1月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
下一篇
DataWorks