1、Interface Comparable<T>
只有实现该接口的对象的列表或数组才能调用Collections.sort()方法。
在实现 int compareTo(T o)时,需要注意:
1、如果两个对象相等,返回为0;
2、如果同一个null对象进行比较,应抛出NullPointerException。
3、实现必须保证sgn(x.compareTo(y)) == -sgn(y.compareTo(x))、(x.compareTo(y)==0) == (x.equals(y)) 、(x.compareTo(y)>0 && y.compareTo(z)>0) impliesx.compareTo(z)>0 。如果 x.compareTo(y)抛出异常,y.compareTo(x)也必须抛出异常。
2、Interface Iterable<T>
Iterator<T>
iterator()
对于链表等对象应实现该接口来允许一个对象可以使用foreach语句。
上面的方法返回java.util.Interface Iterator<E>,该接口的主要方法有:
hasNext();next();remove();
3、Interface Readable
java.lang.Interface Readable
一个Readable 是一个字符串的来源。实现这个接口需要实现的方法是:
int
read(CharBuffer cb)
4、
java.lang Interface Runnable
不用说,这个谁都知道。如果想在一个单独的线程中执行,就需要实现这个接口。
5、java.lang Interface Thread.UncaughtExceptionHandler
从名字就可以判断出来,当线程抛出未捕获的异常时,实现这个接口的类的对象可以对一场进行处理。
官方文档:当线程被一个未捕获的异常打断时,这个接口被调用。
当线程要被为捕获异常打断是,JVM使用Thread.getUncaughtExceptionHandler(),查询异常处理器,如果线程没有这个接口的设置,则查询该线程的ThreadGroup的UncaughtExceptionHandler,如果县城没有处理异常,他就会抛出这个异常。
void
uncaughtException(Thread t, Throwable e)
Method invoked when the given thread terminates due to the given uncaught exception.
6、包装型对象:Boolean Byte Character Double Float Long Short Integer
这些类就不用了说了,主要会使用里面的静态方法和一些常量就可以了。
7、Class Character.Subset
这个类的实例代表了Unicode字符集的特殊的子集。定义在Character中的唯一子集族类是UnicodeBlock.其他的Java API或许因为自己的用户定义了其他的子集。
static Character.UnicodeBlock
AEGEAN_NUMBERS
Constant for the "Aegean Numbers" Unicode character block.
static Character.UnicodeBlock
ALPHABETIC_PRESENTATION_FORMS
Constant for the "Alphabetic Presentation Forms" Unicode character block.
static Character.UnicodeBlock
ARABIC
Constant for the "Arabic" Unicode character block.
static Character.UnicodeBlock
ARABIC_PRESENTATION_FORMS_A
Constant for the "Arabic Presentation Forms-A" Unicode character block.
static Character.UnicodeBlock
ARABIC_PRESENTATION_FORMS_B
Constant for the "Arabic Presentation Forms-B" Unicode character block.
static Character.UnicodeBlock
ARMENIAN
Constant for the "Armenian" Unicode character block.
static Character.UnicodeBlock
ARROWS
Constant for the "Arrows" Unicode character block.
static Character.UnicodeBlock
BASIC_LATIN
Constant for the "Basic Latin" Unicode character block.
static Character.UnicodeBlock
BENGALI
Constant for the "Bengali" Unicode character block.
static Character.UnicodeBlock
BLOCK_ELEMENTS
Constant for the "Block Elements" Unicode character block.
static Character.UnicodeBlock
BOPOMOFO
Constant for the "Bopomofo" Unicode character block.
static Character.UnicodeBlock
BOPOMOFO_EXTENDED
Constant for the "Bopomofo Extended" Unicode character block.
static Character.UnicodeBlock
BOX_DRAWING
Constant for the "Box Drawing" Unicode character block.
…………
具体参见java.lang
Class Character.UnicodeBlock里面的定义。
8 、java.langClass Class<T>
这个类的实力代表了Java运行程序中的类和接口。Enum是类,而Annotation是一个接口。Every array also belongs to a class that is reflected as a Class
object that is shared by all arrays with the same element type and number of dimensions.
Class的对象在程序中可以获取类的详细信息。
9、Java.lang.Class ClassLoader
ClassLoader是个不错的东西,下面是官方文档的简单翻译和注解:
1、ClassLoader用于加载类对象。ClassLoader是一个抽象类。给出类的二进制名字(如“
"java.lang.String"
"javax.swing.JSpinner$DefaultEditor"
"java.security.KeyStore$Builder$FileBuilder$1"
"java.net.URLClassLoader$3$1"
”),ClassLoader会使用定位和生成类。一个典型的策略就是将二进制名字转化为文件名,然后从文件系统中读取这个类文件。
每一个Class对象都包含了一个创建它的引用。
数组的Class对象不能由ClassLoader创建,但是可以由Java运行时动态创建。一个数组类的ClassLoader,和他的元素的ClassLoader是一样的;如果元素是基本类型,则数组类没有ClassLoader。
应用程序可以实现ClassLoader的子类,来扩展行为。这样可以在JVM动态的创建类。
ClassLoader主要由安全管理器来使用,用于保证安全区域。
ClassLoader 使用一个delegation(委托)模型来搜索类和资源。每一个ClassLoader有一个相关的父类ClassLoader。当请求来查找一个资源或者类的时候,ClassLoader 实例会委托搜索类和资源。
内建的ClassLoader,叫做bootstrap class loader,没有父类。
正常的,ClassLoader从本地文件系统中加载数据。通过CLassPath。
当然,也可以通过NetWork从服务器上下载字节码。来加载类:
ClassLoader loader = new NetworkClassLoader(host, port);
Object main = loader.loadClass("Main", true).newInstance();
Network ClassLoader 子类必须定义方法FindClass 和loadClassData来加载来自互联网上的类。一旦或得到字节码,它使用defineClass方法来创建类实例。
class NetworkClassLoader extends ClassLoader {
String host;
int port;
public Class findClass(String name) {
byte[] b = loadClassData(name);
return defineClass(name, b, 0, b.length);
}
private byte[] loadClassData(String name) {
// load the class data from the connection . . .
}
}
个人理解:
ClassLoader是一个类加载器,除了可以从ClassPath加载类之外,还可以从ClassPath中加载资源:
InputStream
getResourceAsStream(String name)
Returns an input stream for reading the specified resource.
Enumeration<URL>
getResources(String name)
Finds all the resources with the given name.
static URL
getSystemResource(String name)
Find a resource of the specified name from the search path used to load classes.
static InputStream
getSystemResourceAsStream(String name)
Open for reading, a resource of the specified name from the search path used to load classes.
static Enumeration<URL>
getSystemResources(String name)
Finds all resources of the specified name from the search path used to load classes.
protected Class<?>
findClass(String name)
Finds the class with the specified binary name.
10、Compiler类3
编译类是提供给支持Java到本地代码编译器和相关服务。根据设计,编译器类什么都不做;它作为一个占位符来为运行时编译执行的技术。
当JVM第一次启动时,他判断java.compiler是否存在。如果存在,他3
分享到:
相关推荐
以上是Java基础学习笔记中涉及的关键知识点,涵盖了输入输出、对象创建、随机数生成、数组和集合的使用以及字符串操作。这些是学习Java编程时的基础内容,深入理解和熟练运用这些知识将有助于进一步学习更复杂的Java...
这份“Java学习笔记(必看经典).doc”文档将涵盖Java的核心概念和重要知识点,对于初学者和有经验的开发者来说都是宝贵的参考资料。 首先,Java的基础部分通常包括以下几个方面: 1. **Java语法基础**:这是所有...
Java 学习笔记 本资源摘要信息涵盖了 Java 编程语言的基础知识,着重于面向对象编程(OOP)的概念和实现。下面是该资源的详细知识点: 1. 面向对象编程(OOP)的基本概念: * 对象: everything is an object...
Java是一种广泛使用的面向对象的编程语言,其基础知识是学习Java编程的基石。本文将深入探讨Java的基础知识,包括基本数据类型、String类以及基础数据类型的包装类。 首先,Java的基本数据类型是编程中最基础的元素...
这篇文档是个人的Java学习笔记总结,旨在帮助0基础的学习者从零开始掌握Java基础知识,并逐步成为专业的Java开发者。以下是笔记中涉及的一些关键知识点: 1. **Java开发环境的设置**: 要开始Java编程,首先需要...
通常,Java学习笔记可能涵盖类、对象、封装、继承、多态性、控制流、数据类型、异常处理、集合框架、IO流、线程、网络编程等主题。如果能提供清晰的文本内容,我将非常乐意为您详细解释相关的Java编程概念。
### Java集合类学习笔记知识点详解 #### 一、集合框架概述 ##### 1.1.1 容器简介 在Java编程中,容器是用于存储和管理对象集合的重要工具。当我们处理大量的对象时,比如存储多个员工的信息,仅仅依赖于基本的...
### Java学习笔记——Java与Hibernate入门精要 #### 一、Java学习笔记概述 本学习笔记旨在帮助初学者系统地掌握Java语言的基础知识,并通过实际案例深入理解Hibernate框架的应用。通过对核心概念和技术点的详细解释...
java学习笔记(非常详细的介绍Java语言). 可快速入门,也可当手册使用.
【毕向东Java经典学习笔记Word版】是一份深入讲解Java编程语言的学习资料,由知名IT教育专家毕向东编撰。这份笔记以其系统性、实践性和深度广度深受Java初学者和进阶者的喜爱。毕向东作为Java教育领域的权威人士,他...
本篇学习笔记将深入解析Java线程池的框架、结构、原理以及相关源码,帮助读者全面理解线程池的工作机制。 1. 线程池模块结构 线程池框架分为多层结构,其中包括核心实现类、辅助类和接口等组件。例如,`sun.nio.ch....
这份"java开发笔记.doc"文档涵盖了几个关键的Java Web开发技术,包括Servlet、JDBC、Hibernate以及Struts 1.X,还有JavaScript的基础知识。以下是对这些知识点的详细解释: 1. **Servlet**:Servlet是Java EE平台中...
【JAVA学习笔记】 Java是一种广泛使用的面向对象编程(OOP)语言,它的设计目标是提供高效、可移植和安全的代码执行。面向对象编程的核心理念是将数据和操作数据的方法封装在一起,形成对象,以此来模拟现实世界中...
【JAVA WEB学习笔记】——Tomcat中数据源的配置与使用 在Java Web开发中,数据源(DataSource)是管理数据库连接的关键组件。它提供了一种高效、灵活的方式来获取和管理数据库连接,尤其是在大型企业级应用中。...
【Java知识学习笔记】 在Java世界中,学习MVC、Servlet、JSP、Spring和Hibernate是成为一名合格的Web开发者的基础。下面将详细讲解这些概念及其重要性。 **一、MVC(模型-视图-控制器)** MVC是一种设计模式,...
### Java学习笔记知识点详解 #### 一、Java的三大体系 1. **J2SE (Java to Standard Edition)**: 适用于桌面应用开发以及低端商务应用的开发。它提供了基础的Java平台,包括基本的类库和支持,使得开发者能够构建...
【Java学习笔记】 Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高效率、可移植性和可读性。本笔记将围绕Java的历史、重要性、安装配置、语法基础等方面进行详细介绍。 ### 1. Java的发展与意义 ...
Java是一种由Sun Microsystems在1995年推出的高级编程语言,现由Oracle公司维护。...以上就是Core Java学习笔记的主要内容概述,涵盖了从基础语法到高级特性的广泛知识,为深入理解和应用Java打下了坚实的基础。