1、什么是抽象?
抽象是面向对象软件开发的一个基本方法,是从众多的事物抽取出共同的、本质性的特征,然后赋予这些事物一个统一的名字,方便我们去理解和记忆某些复杂的事物的方法;在计算机科学中,抽象是一种过程,在这个过程中,数据和程序定义的形式与代表的内涵语言相似,同时隐藏了实现细节;
2、类与对象的关系?
类是对象的模板,是抽象的;
对象是类的实例,是具体的;
3、基本数据类型?(占用空间大小、取值范围、包装类型、默认值)
4、第一个Java程序(打印一个字符串,输出当前日期)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Test {
public static void main(String[] args) {
Date now=new Date();
Calendar now=Calendar.getInstance();
Format formatter=new SimpleDateFormat(“yyyy年MM月dd日HH时mm分ss秒”);
System.out.println(“当前日期=”+formatter.format(date));
}
}
5、什么是“驼峰命名法”?
驼峰命名法:当变量名或函数名是由一个或多个单词链接在一起构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
小驼峰法: 变量一般用小驼峰去标识。用法是:除第一个单词之外,其他单词首字母大写。例如:int myStudentCount;
大驼峰法: 大驼峰法把每一个单词首字母都大写。常用语类名、函数名、属性。如:class DataBaseUser;
6、什么是继承?
继承是一种由已有的类创建新类的机制;新类继承一般类的状态和行为,并根据需要增加新的状态和行为。Java不支持多重继承(子类只能有一个父类)
7、什么是多态?分为那4类?
多态指同一个实体同时具有多种形式,它是面向对象程序设计的一个重要特征。(如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的)不同的对象收到同一消息可以产生完全不同的结果,这一现象称为多态;
分为四类:参数多态,包含多态,过载多态,强制多态,前两种为通用多态,后两种为特定多态;
8、面向对象设计五大原则?
单一职责原则SRP(Single-ResposibilityPrinciple):对一个类而言,应该仅有一个引起它变化的原因,本原则揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多,那么这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的履行;
开放封闭原则OCP(Open-Closed Principle):软件实体应该是可以扩展的,但是不可修改,一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的,那么这个软件实体设计就是满足开放封闭原则的。如果说我们预测到某种变化,或者某种变化发生了,我们应当创建抽象类来隔离以后发生的同类变化;
Liskov替换原则LSP(Liskov-Substituion Principle):子类应当可以替换父类并出现在父类能够出现的任何地方,本原则和开放封闭原则关系密切,正是子类型的可替换性,才使得使用基类型模块无需修改就可扩充;
依赖倒置原则DIP(Dependecy-InversionPrinciple):具体依赖抽象,而抽象不可依赖具体。依赖倒置原则适应了人类认识过程的规律,是面向对象设计的标志所在;
接口分离原则ISP(Interface-SegregationPrinciple):多个专用接口优于一个单一的通用接口,一个接口应该保证,实现该接口的实例对象可以只呈现为单一的角色。不会在实际中造成危害的依赖关系,都是良性依赖;
9、什么是拆箱和装箱?
装箱:值类型转换为引用类型
拆箱:引用类型转化为值类型
装箱使任何事物看起来都像是一个对象,这样才符合面向对象把一切事物都看成对象的思想。当然有装箱就有拆箱;
10、Java为什么可以跨平台使用?
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。Java可以在计算机的操作系统之上再提供一个Java运行环境,该运行环境由Java虚拟机、类库以及一些核心文件组成,不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码;