请简述JAVA语言的特点
Java语言是一种相对简单的编程语言,能够通过最基本的方法完成指定的任务。(1分)
Java语言是一个纯粹的面向对象程序设计语言,它提供了类、接口和继承等原语。(1分)
Java语言安全可靠。(1分)
Java通过JVM(虚拟机)以及字节码实现跨平台。(1分)
Java语言支持多线程。(0.5分)
Java是分布式语言,既支持各种层次的网络连接,又可以通过Socket类支持可靠的流(stream)进行网络连接。(0.5分)
什么是继承
继承就是在现有类基础上构建新类,使用extends关键字实现(1分),继承类叫子类被继承类叫父类(1分)。子类可以继承父类中可使用的属性和方法(1分)。Java仅允许单继承不支持多继承(1分),但可以多层继承(1分)。
内部类有哪些
成员内部类
成员内部类是定义在另一个类内部的非静态类。它可以访问外部类的所有成员,包括私有成员,并且持有外部类的隐式引用。成员内部类的实例化需要外部类的实例。
局部内部类
局部内部类是定义在方法内部的类。它的作用域限制在定义它的方法内部,并且可以访问外部类的成员以及方法的局部变量。
匿名内部类
匿名内部类是没有指明名称的内部类,通常用于实现一次性的类实例。
它可以自继承一个类或实现一个接口,并且可以在声明时立即实例化。匿名内部类不持有外部类的引用,可以避免内存泄漏问题。
静态内部类
静态内部类是使用static关键字修饰的类。它不持有外部类的引用,可以像内部类一样直接访问静态成员,但不能直接访问外部类的非静态成员。
请简述final关键字的使用
- 修饰类
当final关键字修饰类时,表示这个类不能被继承。
- 修饰属性
当final关键字修饰属性时,表示这个属性是个常量,一旦初始化后,其值就不能被改变。
- 修饰方法
当final关键字修饰方法时,表示这个方法不能被子类重写。
构造方法的特点和作用
作用:创建对象
特点:
- 调用构造方法可以实例化一个新的对象
- 构造方法名必须和类名同名且无返回值
- 一个类可以有多个构造方法(构造方法的重载)
- 如果用户不写构造方法,编译器将自动添加一个无参的构造方法
什么是抽象类?什么是抽象方法?有什么特点?
1.抽象类不能创建实例。
2.抽象类中可以没有抽象方法,但一旦包含,该类必须是抽象类
3.子类必须实现父类中的抽象方法,否则子类也得是抽象类
4.抽象类的构造方法不能都定义私有的,否则不能有子类
5.抽象类不能使用final修饰
简述Java语言的特点(和第一题不一样,这个少一个请字且java是J大写其他小写,第一题都大写)
简答性,面向对象,安全性,跨平台性,支持多线程,分布性。
什么叫方法重载?构造方法可以重载吗?
一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数个数不同,或者是参数的类型不同。
可以。
简答标识符的概念及定义原则?
- 标识符是用来标识类名,变量名,方法名,类型名等有效字符序列。
- Java语言规定标识符由字母,下划线,美元符号和数字组成,并且第一个字符不能是数字,及java中的关键字不能做标识符。
简述java程序的开发过程
- 使用编辑环境,编写源文件。
- 使用java编译器,编译源文件得到字节码文件。
- 运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。
类体的内容中声明成员变量是为了体现对象的属性还是行为?
属性
“Hello”.equals(“hello”)和·”java”.equals(“java”)的值分别是多少?
False和true
什么叫标识符?标识符的规则是什么?false是否可以作为标识符。
用来表示类名,变量名,方法名,类型名,数组名,文件名的有效字符序列称为标识符。
标识符由字母,下划线,美元符号和数字组成,第一个字符不能是数字,java关键字不能是标识符。
false不是标识符。
请简述java中继承的概念以及使用继承的好处。
在java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有的类被称为父类,子类会自动拥有父类可继承的属性和方法。
好处:
继承性主要描述的是类与类之间的关系,通过继承可以无需重新编写原有类的情况下,对原有类的功能进行使用和扩展。
final关键字有什么特点?
属性常量
方法不可以覆盖
类不可以继承
请写出处理异常的5个关键字,并对其使用进行解释。
try:把可能出会抛出异常的代码放在try块中。如果tyr块内代码抛出了异常,那么异常会被捕获并处理。
catch:用来捕获和处理特定类型的异常。
finally:finally块是可选的,但它总是被执行,无论是否发生异常。
throw:当想手动抛出一个异常时,可以使用throw关键字。
throws:如果方法可能抛出某个异常,但方法内部没有处理它,需要在方法签名中使用throws关键字声明这个异常。
方法重写和重载的区别?
- 方法重写:发生在子类与父类之间。方法名,参数列表必须与父类方法相同。访问权限不能小于父类的访问权限。返回类型必须与父类方法的返回类型相同。可以抛出与父类抛出的异常相同或为子类。
- 方法重载:发生在同一个类中。方法名必须相同。参数列表必须不同。返回类型可以相同也可以不同。重载对访问权限,返回类型,抛出的异常没有特别要求
简述&&与&的区别并举例说明。
如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行右边表达式。
例如定义 int x=2,y=0;boolean b=x<y&x/y>0; 表达是会发生被0除的异常,因为x/y的表达式执行了。
而boolean b=x<y&&x/y>0; 是不会出现这种异常的,因为x<y为false,表达式x/y不会执行。
abstract class 和interface有什么区别·
interface中所有方法都是抽象的,抽象类·中可以包含抽象方法也可以包含具体方法。
类只能继承一个抽象类,但可以实现多个接口。
Interface只能包含公有的静态常量,抽象类可以有各种访问修饰符的字段。
Interface不能有构造方法,抽象类可以,但不能被子类调用。
Interface接口默认是public,不能是private和protected,抽象类可以有private和protected的方法。
什么叫接口的回调?
可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。