Java笔试常考知识点锦集
Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。下面是小编收集的Java笔试常考知识点,希望大家认真阅读!
1.获得Class对象的三种方式
// 1. 根据给定的类名来获得 用于类加载
String classname = "cn.itcast.reflect.Person";// 来自配置文件
Class clazz = Class.forName(classname);// 此对象代表Person.class
// 2. 如果拿到了对象,不知道是什么类型 用于获得对象的类型
Object obj = new Person();
Class clazz1 = obj.getClass();// 获得对象具体的类型
// 3. 如果是明确地获得某个类的Class对象 主要用于传参
Class clazz2 = Person.class;
引深一下Java创建对象的几种方式:
(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法。
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
(1)和(2)都会明确的显式的调用构造函数 ;(3)是在内存上对已有对象的影印,所以不会调用构造函数 ;(4)是从文件中还原类的对象,也不会调用构造函数。
2.Java变量合法性
$ 、字母、下划线开头都行,后面的可以是数字、字母、下划线;不能以数字开头。不含有Java关键字
3.修饰符互斥
abstract不可以用static,native或synchronized修饰
其中native是声明本地方法,交给操作系统去实现,JNI调用时候使用。
4.静态变量,Main函数引用
Main函数中可以直接使用static类变量,不能直接使用非静态变量,使用非静态变量要首先new对象后,才能使用
不能在静态方法中调用非静态的方法或者变量(已经存在的东西不能引用还不存在的东西);非静态方法可以直接调用静态变量并且给它赋值,但不可以在非静态方法中定义静态变量;
5.修饰符访问权限(本类,本包,子类,外部)
(1)public:可以被所有其他类所访问。(all)
(2)private:只能被自己访问和修改。本类
(3)protected:自身,子类及同一个包中类可以访问。 本类,本包,子类
(4)default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。 本类,本包
6.Java继承中的`构造方法
(1)子类的构造过程中必须调用其基类的构造方法。
(2)子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。
2.1、使用this(argument_list)调用本类的另外构造方法。
2.2、如果调用super,必须写在子类构造方法的第一行。
(3)如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类的无参数构造方法。
(4)如果子类构造方法中既没有显示调用基类构造方法,而基类又没有无参数的构造方法,则编译出错。