在开源java工具包里,最有名的当属apache commons。其中,以commons lang包最为开发者熟知。
但是它作为第三方包存在,或多或少给开发者带来一些不便利。
面包牛奶总是会有的,从java7开始,lang包中的一些优秀工具方法,将被正式引入JDK。
下面是各个已确定被引入的工具类或方法说明。
1, 新增类 java.util.Objects (JDK对工具类的命名一向是以s结尾,例如Collections, Arrays)
A, 空指针安全的 equals, hashCode, toString, defaultNull 方法。
即入参传入NULL,工具方法不会抛空指针异常。
调用方法举例:
Boolean result = Objects.equals(obj1, obj2);
B, 比较对象的大小(需要实现Comparable)。
T Objects.max(T comparable1, T comparable2)
T Objects.min(T comparable1, T comparable2)
2, 系统工具类新增一些取环境信息的工具方法。 (java.lang.System)
以往,你需要通过 System.getProperties("user.dir") 这样来取。现在只需要调用一下工具方法就可以了。
File System.getJavaIoTempDir() // IO临时文件夹
File System.getJavaHomeDir() // JRE的安装目录
File System.getUserHomeDir() // 当前用户目录
File System.getUserDir() // 启动java进程时所在的目录
3, 包装类型安全转换到原始类型的工具方法。
boolean Boolean.booleanValue(Boolean obj, boolean defaultValue)
char Character.charValue(Character obj, char defaultValue)
byte Byte.byteValue(Byte obj)
byte Byte.byteValue(Byte obj, byte defaultValue)
short Short.shortValue(Short obj)
short Short.shortValue(Short obj, short defaultValue)
int Integer.intValue(Integer obj)
int Integer.intValue(Integer obj, int defaultValue)
long Long.longValue(Long obj)
long Long.longValue(Long obj, long defaultValue)
float Float.floatValue(Float obj)
float Float.floatValue(Float obj, float defaultValue)
double Double.doubleValue(Double obj)
double Double.doubleValue(Double obj, double defaultValue)
4, 针对包装类型的Boolean,提供了更具可读性和空指针安全的工具方法。
boolean Booleans.isTrue(Boolean booleanObj)
boolean Booleans.isFalse(Boolean booleanObj)
boolean Booleans.isNotTrue(Boolean booleanObj)
boolean Booleans.isNotFalse(Boolean booleanObj)
5, Boolean类型反转,空指针安全
Boolean Booleans.negate(Boolean booleanObj)
True => False , False => True, Null => Null
6, Boolean参与位运算
boolean Booleans.and(boolean[] array)
boolean Booleans.or(boolean[] array)
boolean Booleans.xor(boolean[] array)
boolean Booleans.and(Boolean[] array)
boolean Booleans.or(Boolean[] array)
boolean Booleans.xor(Boolean[] array)
7, 两个char间的equals
boolean Character.equalsIgnoreCase(char ch1, char ch2)
8, 声明一批空数组常量,各种类型
Boolean[] Boolean.EMPTY_ARRAY
boolean[] Boolean.EMPTY_PRIMITIVE_ARRAY
Character[] Character.EMPTY_ARRAY
char[] Character.EMPTY_PRIMITIVE_ARRAY
Byte[] Byte.EMPTY_ARRAY
byte[] Byte.EMPTY_PRIMITIVE_ARRAY
Short[] Short.EMPTY_ARRAY
short[] Short.EMPTY_PRIMITIVE_ARRAY
Integer[] Integer.EMPTY_ARRAY
int[] Integer.EMPTY_PRIMITIVE_ARRAY
Long[] Long.EMPTY_ARRAY
long[] Long.EMPTY_PRIMITIVE_ARRAY
Float[] Float.EMPTY_ARRAY
float[] Float.EMPTY_PRIMITIVE_ARRAY
Double[] Double.EMPTY_ARRAY
double[] Double.EMPTY_PRIMITIVE_ARRAY
String[] String.EMPTY_ARRAY
Class[] Class.EMPTY_ARRAY
Object[] Objects.EMPTY_OBJECT_ARRAY
甚至通过Class类型来取空数组。
Boolean.class.emptyArray();
9, 数组长度判定工具类,空指针安全
boolean Arrays.isEmpty(Object[] array)
int Arrays.size(Object[] array)
10, 集合长度判定工具类,空指针安全
boolean Collections.isEmpty(Collection coll)
int Collections.size(Collection coll)
boolean Collections.isEmpty(Map map)
int Collections.size(Map map)
11, 空指针安全的ClassName获取
String Class.getName(Class cls)
String Class.getSimpleName(Class cls)
String Class.getPackageName(Class cls)
12, 可以直接解析locale信息字符串的工具方法
Locale parse(String localeStr)
13, 提供根据语言取国家列表或根据国家取语言列表的工具方法
List Locale.countriesByLanguage(String langaugeStr)
List Locale.languagesByCountry(String countryStr)
14, 安全的加减乘除
int Math.safeToInt(long value)
int Math.safeNegate(int value)
long Math.safeNegate(long value)
int Math.safeAdd(int value1, int value2)
long Math.safeAdd(long value1, int value2)
long Math.safeAdd(long value1, long value2)
int Math.safeSubtract(int value1, int value2)
long Math.safeSubtract(long value1, int value2)
long Math.safeSubtract(long value1, long value2)
int Math.safeMultiply(int value1, int value2)
long Math.safeMultiply(long value1, int value2)
long Math.safeMultiply(long value1, long value2)
相关推荐
本文将深入解析JDK7 API中的关键知识点,旨在帮助开发者更好地理解和利用这些工具。 首先,JDK7 API中最重要的更新之一是“try-with-resources”语句。这个新特性使得资源管理变得更加简洁和安全。在旧版本中,...
新增和增强的 API:JDK 17.0.7 包含了许多新的和增强的 Java API,例如 Java 媒体框架、Java 加密框架、Java 容器平台等,为开发人员提供了更多的工具和功能。 更好的安全性:JDK 17.0.7 包括许多安全改进,例如增强...
6. **改进的字符串操作**:JDK7对String类进行了优化,比如新增了`split()`方法的limit参数,`contains()`, `startsWith()`, `endsWith()`等方法,以及`isEmpty()`方法,使字符串处理更加高效。 7. **改进的捕获...
JDK 7 作为Java SE 7 的标准实现,包含了编译、调试和运行Java程序所需的所有工具。对于开发者而言,了解JDK 7 的特点与功能至关重要。 #### 二、JDK 7 的主要特性 JDK 7 引入了多项新特性,这些特性不仅提高了...
JDK7提供了丰富的开发工具,如javac编译器、jar打包工具、javadoc文档生成器等。开发过程中,可以使用IDE(如Eclipse、IntelliJ IDEA)集成JDK7,享受其带来的新特性。 总的来说,JDK7是一个重要的里程碑,它的许多...
3. **改进的字符串操作**:包括`switch`语句对字符串的支持,以及`String`类中新增的一些实用方法,如`join()`、`split()`和`substring()`的改进。 4. **文件系统API(NIO.2)**:Java 7引入了新的文件系统API,...
JDK22优化了`String`类的一些方法,如`indexOf()`和`lastIndexOf()`,提升了字符串处理的效率。 4. **线程局部变量历史记录(JEP 429)** 新增API允许开发者查看线程局部变量的历史记录,这对于调试多线程程序...
在错误处理上,JDK7引入了新的异常类型:`Files.exists()` 和 `Files.isDirectory()` 等方法会抛出`NoSuchFileException`,而不是之前笼统的`IOException`,这有助于更精确地定位问题。 在API方面,`nio`包进行了...
每个版本的API文档详细介绍了对应的JDK中的类、接口、枚举和异常,包括它们的方法、构造器、常量以及使用示例,是学习和查阅Java API的必备工具。通过这些文档,开发者可以深入理解各个版本的新增功能,提升编程效率...
Java Development Kit (JDK) 7 是 Java 编程语言的一个重大更新,包含了多项新特性,旨在提升开发者的效率、程序的性能以及对现代计算环境的支持。以下是对这些特性的详细解析: 1. **JDK7新特性<一>概述** JDK7的...
JDK 1.7 Update 80(也称为JDK 7u80)是Java 7的一个重要更新版本,它包含了众多开发者所需的工具和资源,尤其是对于API的全面文档,为开发者提供了详尽的参考指南。本篇文章将深入探讨JDK 1.7u80中的关键知识点和...
JDK 1.7,也称为Java 7,是Oracle公司发布的一个重要版本,为Java开发者提供了广泛的工具和技术来创建、调试和部署Java应用程序。这个版本在2011年发布,带来了许多新特性、改进和优化,旨在提升开发效率和程序性能...
4. **字符串改进**:新增了`String`类的一些方法,如`isEmpty()`、`contains()`、`startsWith()`和`endsWith()`,使得处理字符串更加便捷。 5. **多线程改进**:提供了新的并发工具类,如`ForkJoinPool`和`...
2. **并发与集合类更新 (JSR 166y)**:JDK 7中的并发框架得到了进一步完善,增加了更多实用工具类,使得开发人员在编写并发程序时更加得心应手。此外,集合框架也得到了优化,提高了性能并增强了易用性。 3. **新的...
**Java Development Kit (JDK) 7 for Windows 32位** JDK,全称Java Development Kit,是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。它包含了Java编译器、Java虚拟机(JVM)、Java类库以及各种开发...
字符串处理在JDK7中得到了加强,如`String.join()`方法用于方便地连接字符串数组,`String.split()`方法的正则表达式改进,以及`String.contains()`、`String.startsWith()`和`String.endsWith()`等方法的优化。...
6. **改进的字符串操作** - 如`switch`语句支持字符串,以及`String`类中新增的`join()`方法和`split()`方法的改进。 7. **改进的异常处理** - 允许一个捕获块同时捕获多个异常类型,减少了冗余代码。 8. **改进的...
使用64位JDK 7u80进行开发时,开发者可以利用其提供的全套工具,如`javac`编译器、`javadoc`文档生成器、`jdb`调试器以及`jar`打包工具等。此外,开发者还可以借助IDE(如Eclipse或IntelliJ IDEA)来提高开发效率,...
在字符串处理方面,JDK7增加了`String.join()`方法,用于方便地将多个字符串连接成一个,避免了使用多次`+`操作可能产生的性能问题。同时,`String`类也新增了`lines()`方法,用于获取字符串中的所有行。 对于编程...
总的来说,"jdk-7u80-windows-x64.exe"是一个对64位Windows用户至关重要的软件包,它为Java开发提供了必要的工具和运行时环境。通过安装这个文件,开发者可以利用Java 7的新特性来编写高效、可靠的软件。