外观
Java 语言有哪些特性
Java 是一种广泛使用的高级编程语言,由 Sun Microsystems 公司于 1995 年推出,后被 Oracle 公司收购。它具有以下显著特点:
面向对象
封装:将数据(属性)和操作数据的方法(行为)捆绑在一起,形成类。通过访问控制修饰符(如 private、protected、public)来限制对类内部成员的访问,提高数据的安全性。例如,一个 Person 类可以将 age 属性设为 private,并提供 getAge() 和 setAge() 方法来控制对 age 的访问。
class Person {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 0) {
this.age = age;
}
}
}
继承:允许一个类继承另一个类的属性和方法,被继承的类称为父类(基类),继承的类称为子类(派生类)。继承可以实现代码的复用和扩展。例如,Student 类可以继承 Person 类,继承 Person 类的属性和方法,并可以添加自己特有的属性和方法。
class Student extends Person {
private String studentId;
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
}
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。多态通过继承和接口实现,包括方法重载和方法重写。例如,定义一个 Shape 抽象类,包含一个 draw() 方法,Circle 类和 Rectangle 类继承 Shape 类并实现 draw() 方法,在调用 draw() 方法时,根据实际对象的类型执行不同的实现。
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
@Override
void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle extends Shape {
@Override
void draw() {
System.out.println("Drawing a rectangle");
}
}
平台无关性 一次编写,到处运行:Java 程序编译后生成字节码文件(.class 文件),字节码文件可以在任何安装了 Java 虚拟机(JVM)的平台上运行。JVM 负责将字节码文件解释或编译成具体平台的机器码,从而实现了平台无关性。
安全性 强类型检查:Java 是一种强类型语言,在编译时会进行严格的类型检查,确保变量和方法的使用符合类型定义,减少了运行时错误。
沙箱机制:在 Java 中,为了防止恶意代码对系统造成破坏,采用了沙箱机制。当 Java 程序运行在浏览器中时,会被限制在一个安全的沙箱环境中,只能访问有限的系统资源,从而保证了系统的安全性。
安全类加载器:Java 的类加载器负责加载类文件,并且会对加载的类进行安全检查,确保加载的类不会对系统造成危害。
多线程支持 并发编程:Java 内置了对多线程的支持,通过 Thread 类和 Runnable 接口可以方便地创建和管理线程。多线程可以提高程序的性能和响应速度,例如在一个图形界面程序中,可以使用一个线程处理用户界面的更新,另一个线程处理后台数据的加载。
class MyThread extends Thread {
@Override
public void run() {
System.out.println("Thread is running");
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
自动垃圾回收
内存管理: Java 提供了自动垃圾回收机制(GC),负责自动回收不再使用的对象所占用的内存空间,程序员无需手动释放内存,减少了内存泄漏的风险。垃圾回收器会定期检查内存中的对象,将不再被引用的对象标记为垃圾对象,并在合适的时机进行回收。
丰富的类库
标准类库:Java 提供了丰富的标准类库,涵盖了字符串处理、集合框架、输入输出、网络编程、数据库连接等各个方面。这些类库可以帮助程序员快速开发各种应用程序,提高开发效率。例如,使用 java.util.ArrayList 类可以方便地实现动态数组,使用 java.io.File 类可以进行文件操作。
分布式计算支持
远程方法调用(RMI):Java 支持分布式计算,通过远程方法调用(RMI)机制,一个 Java 程序可以调用另一个 Java 程序中的方法,就像调用本地方法一样。RMI 使得分布式系统的开发更加方便和高效。
Java Servlet 和 JSP:Java Servlet 和 JSP(JavaServer Pages)是用于开发 Web 应用程序的技术,它们可以与其他 Web 服务器(如 Apache、Tomcat)集成,实现分布式 Web 应用的开发。