Java基础教程:面向对象编程
Java语言概述
Java语言特点
1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象。总之,Everything is object!
2.平台无关性。Java为解释型语言,编译器会把Java代码变成“”“中间代码”,然后在JVM上解释执行。
3.Java提供了很多内置的类库,这些类库简化了开发人员的程序设计工作,同时缩短了项目开发时间。
4.Java语言提供了对Web应用的支持。
5.Java语言提供了较好的安全性和健壮性。
为了增强程序的安全性,Java语言提供了一个防止恶意代码攻击的安全机制(数组边界检测和byte code校验等)
Java的强类型机制、垃圾回收机制、异常处理和安全检测机制使Java语言编写的程序具有健壮性。
Java Development Kit
类加载器
Java类加载器(英语:Java Classloader)是Java运行时环境(Java Runtime Environment)的一部分,负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,即第一次使用该类时才加载。由于有了类加载器,Java运行时系统不需要知道文件与文件系统。学习类加载器时,掌握Java的委派概念很重要。
每个Java类必须由某个类加载器装入到内存。Java程序可以利用外部库(即由其他作者编写的软件库)。
- 引导(Bootstrap)类加载器。由原生代码(如C语言)编写,不继承自
java.lang.ClassLoader
。负责加载核心Java库,存储在<JAVA_HOME>/jre/lib
目录中。 - 扩展(Extensions)类加载器。用来在
<JAVA_HOME>/jre/lib/ext
,或java.ext.dirs
中指明的目录中加载 Java的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。该类由sun.misc.Launcher$ExtClassLoader
实现。 - Apps类加载器(也称系统类加载器)。根据 Java应用程序的类路径(
java.class.path
或CLASSPATH环境变量)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。该类由sun.misc.Launcher$AppClassLoader
实现。
每个类装载器有一个父装载器(parent class loader)。
垃圾回收机制
Java语言提供了垃圾回收器来自动检测对象的作用域、实现自动地、把不再被使用的存储空间释放掉。
垃圾回收器主要完成三部分任务:分配内存、确保被引用对象的内存不被错误地回收以及回收不再被引用的对象的内存空间。
给对象引用赋值为null,并且该对象无引用时,GC会标记该对象为垃圾,并在后面一个不确定的时间内回收垃圾。所谓不确定是指什么时间回收,程序员无法控制
基本数据类型及其包装类
Java不仅支持下述8种基本数据类型,还为这8种基本数据类型提供了对应的包装类,通过这些包装类,我们就可以将上述基本数据类型当做Java中的类对象来处理了。值得说明的是,Java程序中可以直接操作基本数据类型,但是某些情况下需要将它们看成对象来处理,这些情况下就需要借助于Java API中基本数据类型对应的包装类来处理了。
举例布尔包装类提供的方法摘要:
boolean |
booleanValue() 将此 Boolean 对象的值作为基本布尔值返回。 |
int |
compareTo(Boolean b)
将此 Boolean 实例与其他实例进行比较。 |
boolean |
equals(Object obj)
当且仅当参数不是 null ,而是一个与此对象一样,都表示同一个 Boolean
值的 boolean 对象时,才返回 true 。 |
static boolean |
getBoolean(String name)
当且仅当以参数命名的系统属性存在,且等于 "true" 字符串时,才返回
true 。 |
int |
hashCode()
返回该 Boolean 对象的哈希码。 |
static boolean |
parseBoolean(String s)
将字符串参数解析为 boolean 值。 |
String |
toString()
返回表示该布尔值的 String 对象。 |
static String |
toString(boolean b)
返回一个表示指定布尔值的 String 对象。 |
static Boolean |
valueOf(boolean b)
返回一个表示指定 boolean 值的 Boolean 实例。 |
static Boolean |
valueOf(String s) |