1.面向对象的特征都有哪些?
①抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分的注意与当前目标有关的方面。抽象并不打算了解全部过程,而是只选择其中一部分,暂时不用部分细节。
②封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算机始于这个基本概念,即现实世界可以被描述成一系列完全自治,封装的对象,这些对象通过一个受保护的接口访问其他对象
③继承
继承是一个联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承原始类的特性,新类称为原始类的派生类,而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和属性,并且类可以修改或增加新的方法使之更适合特殊的需要
④多态
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活,抽象,行为共享,代码共享优势,很好的解决了应用程序函数同名问题。
2.Int和Integer的区别
Java提供两种不同的类型,引用类型和内置类型。Int是Java的原始数据类型(基本类型),Integer是java为int提供的封装类。Java为每个原始类型都提供了封装类
基本类型 | 封装类 |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
3.String和StringBuffer的区别
Java平台提供了两个类,String和StringBuffer。都可以用来存储和操作字符串。
String类型提供了数值不可改变的字符串,当字符串发生拼接操作时,会产生大量新的对象,造成空间的浪费。
StringBuffer类提供了数值可以进行更改的字符串。如果字符数据需要修改,就可以用到StringBuffer。
4.可以作switch的参数的类型都有哪些?
switch(expr 1),expr1是一个整数表达式。
因此传递给switch和case语句的参数应该是 int,short,char,byte,而long,string都不能用作switch
在jdk1.7开始支持String类型,但实际上String类型有一个hashCode算法,结果也会隐式转换为int类型.而byte short char类型可以在不损失精度的情况下向上转型成int类型.所以总的来说,可以认为switch中只支持int.
5.JVM加载class文件的原理机制
JVM中类的装载是由ClassLoader和他的子类来实现的,Java ClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
6.Java语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意思?在try块中可以抛出异常吗?
Java中将各种不同的异常进行分类,并且提供了良好的接口。在Java中每一个异常都是一个对象,它时Throwable类或其他子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
try块中书写的是可能会发生异常的代码,在try后面紧跟catch子句来捕获异常。
throw语句来明确地抛出一个异常
throws用来标明成员函数可能会出现的异常,可以声明出来交给函数的调用者去捕获处理该异常
Finally为确保一段代码不管发生什么异常,都会被执行
异常详解
7.Java中有没有goto?
goto是Java中保留的关键字,但是现在并没有在Java中使用
8.数组中有没有length()这个方法,String中有没有length()这个方法?
数组中没有length()这个方法,有length属性。String中有length()这个方法。