-----------------------------------------------
参考:《Java2编程详解》
-----------------------------------------------
要点
- Java语言可以开发以下应用程序:
Applets(小应用程序);
GUI(图形用户界面)应用程序;
命令行应用程序;
Servlets(服务端应用程序);
包(库);
嵌入式应用程序(像示波器和其它嵌入式计算机);
笔基程序? - Java是简单的、面向对象的、稳定的、安全的、高效的、与平台无关的、解释型的、多线程的、动态的语言;
- 对象 就是一个或一组数据以及处理这些数据的方法和过程的集合;对象是类的实例。
- JVM是Java的心脏,它提供了一个介于编译过的Java程序和底层硬件平台及操作系统之间的一个抽象层;
- JVM包括4个部分:堆栈、寄存器、无用单位收集堆、方法区 ;
JVM的地址是32位的,因此能够寻址4G内存空间,每个内存地址存放一个字节的信息;
JVM使用下列寄存器管理系统堆栈:程序计数寄存器 (跟踪程序执行的准确位置)、堆栈指针寄存器 (指示操作栈顶)、框架寄存器 (指向当前执行的环境)、变量寄存器 (指向当前执行环境中第一个本地变量);
堆是系统为类的实例分配的内存集合,无用内存收集作为线程在后台运行,当CPU不忙时执行清理任务;
JVM另外还有2个内存区域:方法、常量池。
相关问题
1. Q: What's OOP?
A: OOP 即 Object Oriented Programming, 面向对象的程序设计。
2. Q: 面向对象的特征有哪些方面?
A: 1)抽象 :
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面:过程抽象、数据抽象。
2)继承 :
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3)封装 :
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,
这些对象通过一个受保护的接口访问其他对象。
4)多态性 :
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
3. Q: What is the JVM, JRE?
A: JVM 即 Java Virtual Machine 虚拟机,……(根据要点进行发挥);
JRE 即 Java Runtime Environment 运行环境,……;
4. Q: Java为什么只支持单继承?
A: 多继承的主要缺点:
1) 如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量。
2) 如果在一个子类继承的多个父类中拥有相同方法,子类中又没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法。
单继承可以降低复杂性、避免上述问题。
在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点。一个Java类可以实现多个接口,既避免了多继承的缺点,又保证了类的灵活性。
JVM调优好文