Java中特殊的类是指在Java语言中,由Java虚拟机或者Java类库定义的一些特殊的类,它们可以帮助开发者实现一些特殊的功能。这些特殊的类包括Object、String、Class、Thread、System和Math等。
Object 类是 Java 语言中所有类的根基,所有其他类都直接或间接地从 Object 类继承而来。Object 类定义了一些基本方法,如 equals()、hashCode() 和 toString() 等,这些方法可以用来判断两个对象是否相同,或者将对象转化为字符串形式。
String 类是 Java 中最常用的一个特殊类,它表示字符串数据。String 的内部使用 char 数组来存储字符串数据,并提供了大量方法来处理字符串数据,如 length() 方法可以返回字符串长度;charAt() 方法可以返回字符串中的单个字符;substring() 方法可以返回子字符串。
Class 类表征 Java 虚拟机中的一个已加载的 Java 类或者接口。Class 对象封装了关于 Java 类和对象信息(如名字、修饰器、方法列表、域列表、实例数量和内部代理对象列表)。通过 Class 对象可以创建新实例并通过反射 API 运行时加载新代理对象。
Thread 用来表征一条执行流在 Java 虚拟机中的执行情况。Thread 可以通过 start() 来启动新的执行流并通过 join() 来阻止当前执行流直到新启动的执行流完成其工作之前。Thread 也可以使用 sleep() 来休眠当前执行流一定时间并使用 interrupt() 来中断当前正在休眠的执行流。
public class MyThread extends Thread {
public void run(){
// do something here
}
}
System 用来封装 Java 虚拟机内部信息并提供一些常用方法来处理诸如 I/O 流、内存分配和时间处理之类的问题。System 也包含几个常量如 System.out 和 System.err (标准 I/O 输出流), System.in (标准 I/O 输入流)
分类映射按顺序保存映射条目。
它基于键对映射条目进行排序从代码中的 Comparable
接口a Comparator
对象。
如果键实现 Comparable
接口并且您使用 Comparator
对象, Comparator
对象会做排序。
SortedMap
接口继承了Map接口表示排序的映射。
Comparator comparator()
返回用于在SortedMap中进行自定义排序的 Comparator
对象。
K firstKey()
返回SortedMap中第一个条目的键。如果SortedMap为空,它会抛出一个 NoSuchElementException
。
SortedMap headMap(K toKey)
返回其条目的SortedMap的视图将具有小于指定的toKey的键。视图由原始SortedMap支持。
K lastKey()
返回SortedMap中最后一个条目的键。如果SortedMap为空,它会抛出一个NoSuchElementException异常。
SortedMap subMap(K fromKey,K toKey)
返回SortedMap的视图其条目将具有从指定的键fromKey(包含)和toKey(exclusive)。
SortedMap tailMap(K fromKey)
返回其条目的SortedMap的视图将具有等于或大于指定的fromKey的密钥。
TreeMap
类是实现类 SortedMap
界面。下面的代码演示了如何使用 SortedMap
。
import java.util.SortedMap; import java.util.TreeMap; public class Main { public static void main(String[] args) { SortedMap<String, String> sMap = new TreeMap<>(); sMap.put("CSS", "style"); sMap.put("HTML", "mark up"); sMap.put("Oracle", "database"); sMap.put("XML", "data"); SortedMap<String, String> subMap = sMap.subMap("CSS", "XML"); System.out.println(subMap); // Get the first and last keys String firstKey = sMap.firstKey(); String lastKey = sMap.lastKey(); System.out.println("First Key: " + firstKey); System.out.println("Last key: " + lastKey); } }
上面的代码生成以下结果。
要使用 Comparator
对象对 SortedMap
中的条目进行排序,使用 TreeMap
类的构造函数以 Comparator
作为参数。
以下代码显示了如何对基于排序映射的条目进行排序在他们的钥匙的长度随后按字母顺序键忽略情况:
import java.util.Comparator; import java.util.SortedMap; import java.util.TreeMap; public class Main { public static void main(String[] args) { Comparator<String> keyComparator = Comparator.comparing(String::length).thenComparing(String::compareToIgnoreCase); SortedMap<String, String> sMap = new TreeMap<>(keyComparator); sMap.put("CSS", "style"); sMap.put("HTML", "mark up"); sMap.put("Oracle", "database"); sMap.put("XML", "data"); SortedMap<String, String> subMap = sMap.subMap("CSS", "XML"); System.out.println(subMap); // Get the first and last keys String firstKey = sMap.firstKey(); String lastKey = sMap.lastKey(); System.out.println("First Key: " + firstKey); System.out.println("Last key: " + lastKey); } }
上面的代码生成以下结果。
可导航映射由 NavigableMap
界面的实例表示。
它通过添加方法来扩展 SortedMap
接口对于键的最接近的匹配,以相反的顺序获得映射的视图等。
TreeMap类是NavigableMap接口的实现类。
以下代码显示如何使用 NavigableMap
。
import java.util.Map.Entry; import java.util.NavigableMap; import java.util.TreeMap; public class Main { public static void main(String[] args) { NavigableMap<String, String> nMap = new TreeMap<>(); nMap.put("CSS", "style"); nMap.put("HTML", "mark up"); nMap.put("Oracle", "database"); nMap.put("XML", "data"); System.out.println("Navigable Map:" + nMap); Entry<String, String> lowerXML = nMap.lowerEntry("XML"); Entry<String, String> floorXML = nMap.floorEntry("XML"); Entry<String, String> higherXML = nMap.higherEntry("XML"); Entry<String, String> ceilingXML = nMap.ceilingEntry("XML"); System.out.println("Lower:" + lowerXML); System.out.println("Floor:" + floorXML); System.out.println("Higher:" + higherXML); System.out.println("Ceiling:" + ceilingXML); // Get the reverse order view of the map NavigableMap<String, String> reverseMap = nMap.descendingMap(); System.out.println("Navigable Map(Reverse Order):" + reverseMap); } }
上面的代码生成以下结果。
ConcurrentMap
允许我们在不锁定映射的情况下执行并发操作。
我们可以在使用其实现类创建并发映射时选择并发级别。
ConcurrentHashMap类是ConcurrentMap接口的实现类。 它们都在java.util.concurrent包中。
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public class Main { public static void main(String[] args) { ConcurrentMap<String, String> cMap = new ConcurrentHashMap<>(); cMap.put("A", "A"); System.out.println("Concurrent Map: " + cMap); System.out.println(cMap.putIfAbsent("A", "1")); System.out.println(cMap.putIfAbsent("B", "B")); System.out.println(cMap.remove("A", "B")); System.out.println(cMap.replace("A", "B")); System.out.println("Concurrent Map: " + cMap); } }
上面的代码生成以下结果。
JSF教程 -JSF 列表框多选以下代码显示了如何创建多个可选择选择框。h:selectManyListbox标记渲染HTML输入元素的类型“select与大...
JSF教程 -JSF表单密码示例h:inputSecret标签渲染类型为“password的HTML输入元素。以下JSF标记h:inputSecret value=password /被...
JSF教程 -JSF转换数字示例f:convertNumber标记用于将字符串值转换为所需格式的数字。以下代码显示如何使用f:convertNumber标记f:...
JPA教程 -JPA 实体管理器删除示例我们可以使用JPA中的EntityManager来删除一个实体。在下面的代码中,我们首先通过使用EntityMan...
Java教程 - 如何在Java中创建泛型方法可以创建一个包含在非泛型类中的通用方法。public class Main {static T, V extends T bool...