java面向对象
面向对象的特征有哪些?详细描述各自的特点。
A:面向对象的特征:封装,继承,多态,抽象;
封装:将一个类的属性和行为隐藏起来的这个过程就是封装。
继承:在一个已有类的基础上通过扩展,并继承该类的属性和方法来创建一个新的类,这种方式就是继承。
多态:是指一个对象有多种形式的能力。
抽象:用abstract关键字修饰的类就叫抽象类,它的抽象方法必须由子类继承并重写,它的抽象方法没有方法体。
Java程序的执行过程是怎样的?
A:执行过程:由java编译器(javac.exe)将java源文件(.java)编译成字节码文件(.class),再由类加载器(classLoader)加载程序运行所需要的类库及其其他的工具类,接着字节码校验器校验编译后的字节码文件,最后由解释器将字节码文件翻译成机器码这样就能够在计算机上运行了。
什么是静态初始化块?
A:静态初始化块就是在内存中只被类加载器加载一次的代码块。它的作用是允许类执行任何所需的只需要发生一次的设置任务。
写出main方法的完整定义?static可以写在public前面吗?
A:public static void main(String []args){}
static 可以写在public 前面
JDK与JRE分别是什么?
A:JDK,就是包含了java的运行环境和开发工具,主要面向的是java程序的开发者使用;
JRE是指java的运行环境,主要面向的是java程序的使用者。
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
A:switch只能作用在byte,int,char,int上,在jdk1.7时,String也能够作用在switch上;
Java的数据类型有哪些?
A:java的数据类型主要分为:基本数据类型,引用数据类型;
基本数据类型:整形,浮点型,布尔型,字符型;
引用数据类型:数组,类,接口;
Java引用数据类型有哪些?
A:引用数据类型:数组,类,接口;
类变量与成员变量的区别?
A:区别在于类变量不需要创建一个对象就可访问变量(类变量==静态变量),而成员变量需要创建对象,一个对象访问变量;
访问修饰符有哪几种?它们之间的区别是什么?
A:访问修饰符有public,private,protected,默认的;
public是公共的,任何类都可以访问;
Private是私有的,只能在本类中使用;
Protected是受保护的,同一个包中的类和不同包中的子类可以访问;
默认的:只能在同一个包中使用;
int与Integer的区别?
A:int是基本数据类型,默认值是0,而Integer是引用数据类型,默认值是null;
对对象进行比较怎么做?为什么不用“= =”?
A:对象比较使用equals();直接比较两个对象是否相同;
而“==”主要是对基本数据类型进行比较大小,而比较引用数据类型的时候,“==”比较的是两对象的内存地址;
equals()是一个方法,可以被重写,可以比较内存地址,也可以改变比较地址的方法;
this、super的用法与区别
A:this用在同一个类中,指示当前使用的是哪个成员变量,用在构造方法中是指调用当前类中的其他构造方法;
Super主要用在子类继承父类的时候,子类方法调用父类方法,成员变量等,用在子类构造方法中是指子类构造方法调用父类的构造方法或成员变量;
Java中产生对象的方式有哪些?
A:用new关键字调用构造方法;通过反射机制(类加载器等)动态生成;使用克隆生成对象(Cloneable接口);使用反序列化从流中生成对象;
什么是多态?多态的实现包括哪些方面?
A:多态就是就是具有相同行为,不同的体现。在一个方法中将参数类型定义为父类,在调用子类重写后的父类方法,传入不同的子类对象,从而实现了多态的不同体现;
多态的实现主要包括:向上转型技术,使用instanceof关键字判定运行时的对象的类型,动态绑定和重写父类方法;
抽象类和接口的区别?
A:区别在于:抽象类有构造方法,它的构造方法由子类调用,而接口没有;
抽象类中可以中可以有非抽象方法,并且这些方法已经完成具体实现,可以被子类使用,而接口中只有有抽象方法;
一个类只有一个父类,而一个类可以有多个接口;
如果父类中某些方法不包含逻辑,需要由子类来重写,应该使用什么关键字来声明此父类?
A:使用abstract关键字来声明此类事抽象类,某些方法是抽象方法;
构造方法的作用?
A:构造方法的作用:实例化对象的时候初始化对象中的成员变量;
初始化属性,创建一个新的对象;
构造方法能不能被重写、重载、继承,其修饰符能不能声明为private?
A:构造方法不能被重写,不能被继承,可以被重载;可以
在构造方法中使用super()是调用了什么方法?
A:调用父类中的无参数构造方法;
数组有没有length()这个方法? String有没有length()这个方法?
A:数据没有length(),只有属性length;String有length()方法;
浙公网安备 33010602011771号