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查找慢增删快


目录
相关文章
|
2天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
12 0
|
2天前
|
安全 Java 程序员
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
6 0
|
3天前
|
存储 Java 数据库连接
使用Java开发桌面应用程序
使用Java开发桌面应用程序
14 0
|
3天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
11 0
|
3天前
|
分布式计算 负载均衡 Java
构建高可用性Java应用:介绍分布式系统设计与开发
构建高可用性Java应用:介绍分布式系统设计与开发
8 0
|
3天前
|
前端开发 安全 Java
使用Spring框架加速Java开发
使用Spring框架加速Java开发
7 0
|
3天前
|
前端开发 JavaScript Java
Java与Web开发的结合:JSP与Servlet
Java与Web开发的结合:JSP与Servlet
8 0
|
3天前
|
设计模式 算法 Java
设计模式在Java开发中的应用
设计模式在Java开发中的应用
15 0
|
3天前
|
监控 Java Maven
揭秘Java Agent技术:解锁Java工具开发的新境界
作为JDK提供的关键机制,Java Agent技术不仅为Java工具的开发者提供了一个强大的框架,还为性能监控、故障诊断和动态代码修改等领域带来了革命性的变革。本文旨在全面解析Java Agent技术的应用场景以及实现方式,特别是静态加载模式和动态加载模式这两种关键模式。
23 0
|
4天前
|
存储 Java 开发者
探索Java开发中触发空指针异常的场景
作为一名后端开发者在Java编程的世界中,想必大家对空指针并不陌生,空指针异常是一种常见而又令人头疼的问题,它可能会在我们最不经意的时候突然出现,给我们的代码带来困扰,甚至导致系统的不稳定性,而且最可怕的是有时候不能及时定位到它的具体位置。针对这个问题,我们需要深入了解触发空指针异常的代码场景,并寻找有效的方法来识别和处理这些异常情况,而且我觉得空指针异常是每个Java开发者都可能面临的挑战,但只要我们深入了解它的触发场景,并采取适当的预防和处理措施,我们就能够更好地应对这个问题。那么本文就来分享一下实际开发中一些常见的触发空指针异常的代码场景,并分享如何有效地识别和处理这些异常情况。
19 1
探索Java开发中触发空指针异常的场景