读Java程序员面试笔记,总结Java基础知识(一)

Java基础知识

Java中的作用域有哪些

                          表 1-1作用域的对比

作用域与可见性 当前类 同一package 子类 其他package
public
private × × ×
protected ×
default × ×
  1. public 表明该成员变量或方法对所有类或对象都是可见的,所有类或对象都可以直接访问,
  2. private 表明改成员变量或方法是私有的,只有当前类对其具有访问的权限,除此之外的其他类或者对象都没有访问权限。
  3. protected 表明成员变量或方法对该类本身,与他在同一个包中的其他类,在其他包中的该类的子类都可见。
  4. default 表明该成员变量或方法址有自己和与其位于同一包的类可见。若父类与子类位于同一个包内,则子类对父类的default成员变量或方法都有访问权限;若父类与子类位于不同的package包内,则没有访问权限。
    注意:这些修饰符智能修饰成员变量,不能用来修饰局部变量。private与protected不能用来修饰外部类(只有public,abstract或final能用来修饰外部类),但他们可以用来修饰内部类。

一个Java文件中是否可以定义多个类

    一个Java文件中可以定义多个类,但是最多只有一个类被public修饰,并且这个类的类名与文件名必须相同,若这个文件中没有public的类,则文件名随便是一个类的名字即可。需要注意的是,当用javac指令编译这个.java文件时,他会给每个类生成一个对应的.class文件。

什么是构造函数

构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量。
构造函数特点:

  • 构造函数必须与类的名字相同,并且不能有返回值(返回值也不能为void)。
  • 每个类可以有多个构造函数。
  • 构造函数可以有0个、1个、或1个以上参数。
  • 构造函数总是伴随着new操作一起调用,且不能由程序的编写者直接调用,必须要由系统调用。构造函数在对象实例化时会被自动调用,且只运行一次;而普通的方法是在程序执行到他时被调用,且可以被该对象调用多次。
  • 构造函数的主要作用是完成对象的初始化工作。
  • 构造函数不能被继承,因此他不能被覆盖,但是构造函数能够被重载,可以使用不同的参数个数或参数类型来定义多个构造函数。

什么是反射机制

    反射机制是Java语言中特别重要的特性。他允许程序在运行时进行自我检查,同时也对其他内部的成员进行操作。这个特性在开发时使用的不多,由于反射机制能够是现在运行时对类进行装载,因此能够增加程序的灵活性,但是不恰当地使用反射机制,也会影响系统的性能。

    具体而言,反射机制提供的功能有:得到一个对象所属的类;获取一个类的所有成员变量和方法;在运行时创建对象;在运行时调用对象的方法。
    最总要的作用就是可以在运行时动态创建类的对象,示例如下:

class Base {
	public void f() {
		System.out.println("Base");
	}
}
class Sub extends Base {
	public void f() {
		System.out.println("Sub");
	}
}
public class Test{
	public static void main (String[] args) {
		try { //使用反射机制加载类
		Class c = class.forName("Sub");
		Base b = (Base)c.newInstance();
		b.f();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
}

程序结果为:
Sub

在反射机制中获取class类:

  1. Class.forName(“类的路径”),如上图所示。
  2. 类名.class
  3. 实例.getClass()

Java创建对象的方式4种:

  1. 通过new语句实例化一个对象。
  2. 通过反射机制创建对象
  3. 通过clone() 方法创建一个对象
  4. 通过反序列化的方式创建对象

package有什么作用

第一:提供多层命名空间,解决命名冲突。
第二: 对类按照功能进行分类,使项目的组织更加清晰。

以上是本人对《Java程序员面试笔记》的Java基础知识的小结。

你可能感兴趣的:(Java程序员面试基础,java,面试,编程语言)