经典Java基础面试题
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。下面小编给大家介绍经典Java基础面试题,欢迎阅读!

经典Java基础面试题 篇1
1、如果main方法被声明为private会怎样?
能正常编译,但运行的时候会提示”main方法不是public的”。
2、Java里的传引用和传值的区别是什么?
传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。
3、如果要重写一个对象的equals方法,还要考虑什么? hashCode。
4、Java的”一次编写,处处运行”是如何实现的?
Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平立的。
5、说明一下public static void main(String args[])这段声明里每个关键字的作用。
public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.
static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。
void: main方法没有返回值。
String是命令行传进参数的类型,args是指命令行传进的字符串数组。
6、与equals的区别 比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方。
比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和是等价的。String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
7、如果去掉了main方法的static修饰符会怎样?
程序能正常编译。运行时会抛NoSuchMethodError异常。
8、为什么oracle type4驱动被称作瘦驱动?
oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IP的Net8的实现,因此它是平立的,可以在运行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname。
9、介绍一下finalize方法
final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。
接口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如String和Integer。这样也使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize方法在一个对象被销毁和回收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。
10、什么是Java API?
Java API是大量软件组件的集合,它们提供了大量有用的功能,比如GUI组件。
11、GregorianCalendar类是什么东西?
GregorianCalendar提供了西方传统日历的支持。
12、ResourceBundle类是什么?
ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。
13、为什么Java里没有全局变量?
全局变量是全局可见的,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。
14、如何将String类型转化成Number类型?
Integer类的valueOf方法可以将String转成Number。
15、SimpleTimeZone类是什么?
SimpleTimeZone提供公历日期支持。
16、while循环和do循环有什么不同?
while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。
17、Locale类是什么?
Locale类用来根据语言环境来动态调整程序的输出。
18、面向对象编程的原则是什么?
主要有三点,多态,继承和封装。
19、介绍下继承的原则
继承使得一个对象可以获取另一个对象的`属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。
20、什么是隐式的类型转化?
隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。
21、sizeof是Java的关键字吗?
不是。
22、native方法是什么?
native方法是非Java代码实现的方法。
23、在System.out.println里面,System, out, println分别是什么?
System是系统提供的预定义的final类,out是一个PrintStream对象,println是out对象里面一个重载的方法。
24、封装,继承和多态是什么?
简单来说,多态是指一个名字多种实现。多态使得一个实体通过一个通用的方式来实现不同的操作。具体的操作是由实际的实现来决定的。
多态在Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。
25、显式的类型转化是什么?
显式的类型转化是明确告诉了编译器来进行对象的转化。
26、什么是Java虚拟机?
Java虚拟机是能移植到不同硬件平台上的软件系统。
27、类型向下转换是什么?
向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。
28、Java的访问修饰符是什么?
访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。它们包含:
public: 所有类都可以访问 protected: 同一个包内以及所有子类都可以访问 private: 只有归属的类才能访问默认: 归属类及相同包下的子类可以访问。
29、所有类的父类是什么?
Object.
30、Java的基本类型有哪些?
byte,char, short, int, long, float, double, boolean。
经典Java基础面试题 篇2
第一,谈谈final, finally, finalize的区别。
final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载 finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize?方法名。Java 技术允许使用 finalize 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object类中定义的,因此所有的类都继承了它。子类覆盖 finalize 方法以整理系统资源或者执行其他清理工作。finalize 方法是在垃圾收集器删除对象之前对这个对象调用的。 第二,HashMap和Hashtable的区别。
都属于Map接口的类,实现了将惟一键映射到特定的值上。 HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
第三,String s = new String(“xyz”);创建了几个String Object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
第四,sleep 和 wait 有什么区别? 搞线程的最爱
sleep方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程因为其它原因而阻塞。
wait是线程交互时,如果线程对一个同步对象x 发出一个wait调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
第五,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。
第六,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
第七,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用还是equals? 它们有何区别?
Set里的元素是不能重复的,那么用iterator方法来区分重复与否。equals是判读两个Set是否相等。
equals和方法决定引用值是否指向同一对象equals在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
第八,error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。 在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
第九,给我一个你最常见到的runtime exception。 ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
第十,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用还是equals? 它们有何区别?
Set里的元素是不能重复的,那么用iterator方法来区分重复与否。equals是判读两个Set是否相等。
equals和方法决定引用值是否指向同一对象equals在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
经典Java基础面试题 篇3
1.不用main方法如何定义一个类?
不行,没有main方法我们不能运行Java类。
在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。
2.main方法需要的参数不是字符串数组?
不是的,main方法的参数必须是字符串数组。
但是,在引进变参时,你可以将字符串类型的变参作为参数传递给main方法。变参一定得是数组。
package com.instanceofjava;
public class MainMethod
{
public static void main(String args[])
{
}
}
3.我们能不能改变main方法的返回类型?
不能,main方法的返回类型只能是空。任何其它类型都是不能接受的。
package com.instanceofjava;
public class A
{
public static int main(String[] args)
{
return 1;
//run time error : No main method found
}
}
4.main方法为什么必须是静态的?
main方法一定是静态的。
如果main允许是非静态的,那么在调用main方法时,JVM就得实例化它的类。
在实例化时,还得调用类的构造函数。如果这个类的构造函数有参数,那么届时就会出现歧义。
例如,在下面的程序中,在实例化类“A”的时候,JVM传递什么参数?
package com.instanceofjava;
public class A{public MainMethod(int i)
{
//Constructor taking one argument
}
public void main(String[] args)
{
//main method as non-static
}
5.我们能不能声明main方法为非静态?
不能,main方法必须声明为静态的,这样JVM才可以调用main方法而无需实例化它的类。
如果从main方法去掉“static”这个声明,虽然编译依然可以成功,但在运行时会导致程序失败。
package com.instanceofjava;
public class A
{
public void main(String[] args)
{
System.out.println(“indhu”);
//Run time error
}
}
6.我们能否重载main方法?
可以,我们可以重载main方法。一个Java类可以有任意数量的main方法。
为了运行java类,类的main方法应该有例如“public static void main(String[] args)”的声明。如果你对此声明做任何修改,编译也是可以成功的。但是,运行不了Java程序。你会得到运行时错误,因为找不到main方法。
package com.instanceofjava;
public class A
{
public static void main(String[] args)
{
System.out.println(“Indhu”);
}
void main(int args)
{
System.out.println(“Sindhu”);
}
long main(int i, long d)
{
System.out.println(“Saidesh”);
return d;
}
}
7.我们能否声明main方法为private或protected,或者不用访问修饰符?
不能,main方法必须public。你不能定义main方法为private和protected,也不能不用访问修饰符。
这是为了能让JVM访问main方法。如果你不定义main方法为public,虽然编译也会成功,但你会得到运行时错误,因为找不到main方法。
package com.instanceofjava;public class A{private static void main(String[] args){//Run time error}}
8.我们能否在Java中覆盖main方法?
不能,你不能在Java中覆盖main方法。这是因为main方法是静态方法,而在Java中静态方法在编译时会结合在一起,所以你在Java中不能覆盖静态方法。
9.我们能否在Java中终结main方法?
你可以在Java中终结main方法。JVM对此没问题。
10.我们能否在Java中同步main方法?
是的,main方法可以在Java中同步,synchronized修饰符允许用于main方法的声明中,这样就可以在Java中同步main方法了。
相关推荐
RK3588 InsightFace人脸识别移植及精度测试全解析
本文详细介绍了如何在RK3588平台上移植InsightFace人脸识别模型并进行精度验证。通过PyTorch转ONNX、ONNX转RKNN量化模型的关键步骤,实现了INT8量化模型的部署。测试数据显示,该模型在LFW数据集上达到99.43%的准确率(接近官方99.52%),推理时间仅14.23ms。ROC曲线和相似度分布图表明模型区分能力优秀,AUC超过0.99,满足实际应用需求。文中还详解了量化原理、环境搭建和测试方法,为边缘设备部署人脸识别提供了完整解决方案。
Java面试题大全~基础题(55题)
最近一段时间在准备面试,所以就整理了一下技术栈。在整理的过程中也能够沉淀一下学过的知识。本篇是Java面试题中的基础篇。总共55题,2万多字,以问答的形式呈现,这样也能更好的模拟面试的环节。本文的答案部分有图有代码,这样解释会更加详细和易懂
微信小程序 - 超详细小程序接入腾讯地图的完整流程,提供地图显示、IP 属地定位、地理位置名称、获取经纬度等超多功能示例(可一键复制并运行的功能源代码,详细的注释及常见问题汇总)小白直接上手!
微信小程序腾讯地图怎么接入,小程序项目中使用腾讯地图sdk,小程序中使用腾讯地图,微信小程序集成腾讯地图功能,微信小程序通过ip获取其地址、经纬度、详细地址,小程序使用腾讯地图跨域解决方法,微信小程序引入腾讯地图详细教程,原生小程序引入腾讯地图,微信小程序如何植入腾讯地图,微信小程序腾讯地图配置及使用详细教程,小程序植入腾讯地图SDK,微信小程序项目怎么用腾讯地图,微信小程序IP属地定位,获取当前用户位置名称,微信小程序如何使用腾讯地图获取用户的定位位置,在小程序中使用腾讯地图,实现定位,距离计算,实时搜索
为什么main方法是public static void?
Main方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么main方法是public、static、void的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么main方式是public、static、void,这篇文章尝试去找到一些答案。 Main方法是Java程序的入口,记住,我们这里不会讨论Servlet、
java面试题-基础篇(万字总结,带答案,面试官问烂,跳槽必备)
序号内容链接地址1Java基础篇(点击跳转)java面试宝典-基础篇2Java集合框架篇(点击跳转)java面试宝典-集合框架篇3Java多线程篇(点击跳转)java面试宝典- 多线程篇4JVM篇待分享5Spring篇待分享6Mybatis篇待分享7SpringcCloud篇待分享8Redis篇待分享9Mysql篇待分享10dubbo篇待分享11zookeeper篇待分享12kafka篇待分享13RocketMq篇待分享14Nacos篇待分享优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较
Java面试题经典面试题220道(附答案)
177. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?164. kafka 同时设置了 7天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?3. 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true吗?47. 线程池中 submit() 和 execute() 方法有什么区别?29. 在 Queue 中 poll()和 remove()有什么区别?
public static void main(String [] args) 中static能否去掉?为什么?
一个类的main()方法必须用static来修饰,这是因为Java运行时系统在开始执行一个程序之前,并没有生成类的一个实例,它只能通过类名来调用main()方法作为程序的入口。
3万字80道Java基础经典面试题总结(2024修订版)
本系列是《10万字208道Java经典面试题总结(附答案)》的2024修订版,打造Java面试题一站式解决方案。
经典Java面试题的答案——Java 基础
大家好,我是九神。
java编程必知手册-java网上经典基础面试题大全
经过整理的java网上经典基础面试题大全,希望能帮助有需要的人!
经典的 Java 基础面试题集锦
**问题**:**ResourceBundle 类是什么?** 答案:ResourceBundle 用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。 **问题**:**为什么 Java 里没有全局变量?** 答案:全局变量是全局可见的,Java 不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。 ### 问题:while 循环和 do 循环有什么不同? 答案:while 结构在循环的开始判断下一个迭代是否应该
66道经典的Java基础面试题集锦
面试题NO.01-NO.05 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”。 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。 问题:如果要重写一个对象的equals方法,还要考虑什么? 答案:hashCode。 问题:Java的”一次编写,处处运行”是如何实现的? 答案:Java程序会被编译成字节码组成的class文件,这些字节码可以
30道经典的Java基础面试题集锦
答案:Java虚拟机是能移植到不同硬件平台上的软件系统。问题类型向下转换是什么?答案:向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。问题Java的访问修饰符是什么?答案:访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些关键字来限定程序的方法或者变量的访问权限。
经典面试题回答——学习Java基础的目的
本系列知识解释:相信每一个学习Java的人都是从JavaSE开始的,也就是Java基础开始。但是却并不清楚学习Java基础到底有什么用? 首先我来回答这个问题,学习Java基础是有两个目的: 一、掌握基本的Java语言底层编码方法,同时掌握Java这门语言的编程思想,为了后期学习JavaEE打下基础,要不然在学习JavaEE的时候,连封装,继承,多态都不懂,那就实在是没法说了(相
经典Java基础面试题大集合!
经典Java基础面试题大集合! 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”。 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。 问题:如果要重写一个对象的equals方法,还要考虑什么? 答案:hashCo
经典的Java基础面试题集锦_经典的Java基础面试题集锦(1)
原标题:经典的Java基础面试题集锦(1)经典的Java基础面试题集锦,欢迎收藏和分享。1.问题:如果main方法被声明为private会怎样?答案:能正常编译,但运行的时候会提示"main方法不是public的”。2.问题:Java里的传引用和传值的区别是什么?答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。3.问题:如果要重写一个对象的equals方法,还要考虑什么?答案:...
JAVA基础面试题 经典
JAVA基础面试题 经典
Java经典基础面试题
有时候面试,你不知道面试官会问什么问题,觉得有水平的面试官,应该会问你比较深奥的题,但是你也不要抱有这样的心理,有的面试官,喜欢不按常理出牌,会问你比较简单得问题,今天小编就为大家整理了一份,比较基础得面试题。 一、Java基础 1.JDK和JRE有什么区别? 2.==和equals的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final在java中有什么作用? 5.java中的Math.round(-1.5)等于多少? 6.String属于基础的数
【每日八股】Java基础经典面试题2
哈喽大家好,我是黑洞晓威,25届毕业生,正在为即将到来的秋招做准备。本篇将记录学习过程中经常出现的知识点以及自己学习薄弱的地方进行总结🥰。本篇文章记录的Java基础面试题,适合在学Java基础的小白,也适备战秋招,面试过程中的大佬🥳。才疏学浅,如果文章有什么出错的地方还请指教😈。🔥 个人主页:
成都市geojson(包含高新区三个区域合一,天府新区)
成都市geojson(包含高新区三个区域合一,天府新区)

3503



被折叠的 条评论
为什么被折叠?



