- 1Java的各类技术平台
Java SE(标准版):是支持面向桌面级应用(如windo下的应用程序)的java平台,提供了完整的Java核心API
Java EE(企业版)
- 2 Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承 (以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用 的对象所占据的内存空间。JDK1.5又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
- 3. Java语言的特点
Ø一:面向对象
ü两个基本概念:类、对象
ü三大特性:封装、继承(单继承多接口)、多态
java的四个基本特性:抽象(只关注对象的属性和方法,不关注内部实现细节),
封装(隐藏细节,只提供相应的接口访问),
继承(子父类的关系使程序的延续性更好),
多态(方法的重写和重载)
二:健壮性
ü吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与
释放等),提供了一个相对安全的内存管理和访问机制
三:跨平台性
ü跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”
原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java
Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。
- 4.Java两种核心机制 :虚拟机(JVM)与垃圾回收
JVM实现了“一次编译,到处运行”
超纲题目:GC是什么? 为什么要有GC
答:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,
忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
超纲题目:垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。(将对象的引用变量设置为null,暗示垃圾回收机制可以回收该对象)
垃圾回收机制回收任何对象之前总会先调用它的finalize方法(如果覆盖方法,让一个新的引用变量重新引用该对象,则会重新激活对象;程序员不应该主动调用某个对象的finalize方法,应该交给垃圾回收机制调用)
当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc()或者Runtime().gc,来通知GC运行,但是Java语言规范并不保证GC一定会执行。(垃圾回收发生具有不可预知性,程序无法精准控制垃圾回收机制执行.)
垃圾回收机制只回收JVM堆内存中的对象空间,对其他物理连接,如数据库连接,输入输出流,Socket连接无能为力。
1.5Java语言的环境搭建
JDK(java Development kit java开发工具包) =JRE(java runtime environment java运行环境) + 开发工具集
JRE =JVM +JAVA核心类库
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
答:可以。但最多只有一个类名声明为public,与文件名相同。
Something类的文件名叫OtherThing.java
class Something {
public static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
这个很明显。
答案: 正确。从来没有人说过Java的class名字必须和其文件名相同。但public class的名字必须和文件名相同。
为什么要设置path(或者说,设置path的目的是什么)?
目的是为了在控制台的任何文件路径下,都可以调用jdk指定目录下的所有指令。
程序中若只有一个public修饰的类,且此类含main方法。那么类名与源文件名可否不一致?
不可以。
每个编译单元只能有一个public类,这表示,每个编译单元都有一个单一的公共接口,用public表示
Java的注释方式有哪几种,格式为何?3种,单行注释,多行注释(不可以嵌套使用),
/**文档注释
@author
@version
*/
自己使用java文档注释的方式编写程序,并用javadoc命令解析,可以生成一个网页文件
1.6 Java中的名称命名规范:
Ø包名:多单词组成时所有字母都小写:xxxyyyzzz
Ø类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
Ø变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
Ø常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ