小编继续分享小编在面试Java程序员过程中碰到过的面试题。(限于篇幅,小编每4道面试题分享一次,后面仍会陆续更新)
一.抽象类和接口有什么区别?
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类可以有普通成员变量,接口中没有普通成员变量。
3.抽象类中可以包含非抽象方法,接口中的所有方法必须都是抽象的。
4.抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型,并且默认为public abstract类型。
5.抽象类中可以包含静态方法,接口中不能包含静态方法。
6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量默认并且只能是public static final。
7.一个类可以实现多个接口,但只能继承一个抽象类。
二.error和exception的区别。
Error:表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。
Exception:表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序的设计而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。
三.Java变量命名规则。
(小编在好几次Java面试过程中都考过Java变量命名规则,并且一般是以不定项选择题的形式出现。)
Java变量命名规则:变量名以字母、下划线或者美元符($)开头,不能以数字开头,后面跟字母、下划线、美元符、数字,变量名对大小写敏感,无长度限制。
例如:2java是不合法的,SS和sS是两个不同的变量,还要注意:数字“1”和小写字母“l”的微小区别。
四.int a=5,b=10不引入第三个变量,如何交换a和b的值。
a=a^b;
b=a^b;
a=a^b;
本文为头条号作者发布,不代表今日头条立场。