「java常见的工具类」juc java 工具类

博主:adminadmin 2023-03-19 18:46:05 501

今天给各位分享java常见的工具类的知识,其中也会对juc java 工具类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

你常用的Java工具库都有哪些

Java SDK 肯定是使用最广的库,所以本文的名单焦点是流行的第三方库。该列表可能并不完善,所以如果你觉得有什么应该出现在列表中的,请留下您的评论。非常感谢!

1、核心库

Apache Commons Lang:来自Apache的核心库,为java.lang API补充了许多常用的工具类,如字符串操作、对象的创建等。

Google Guava:来自谷歌的核心库,包括集合(Collection)、缓存(Caching)、支持原语(Primitives)等。(示例)

2、HTML、XML Parser

Jsoup:一个简化了的 HTML操作的库。(示例)

STaX:一组可以高效处理 XML的API。 (示例)

3、Web框架

Spring:Java平台上众所周知的开源框架和依赖注入容器。(示例)

Struts2:来自Apache的流行Web框架。 (示例)

Google Web Toolkit:Google提供的开发工具库,主要用于构建和优化复杂的Web程序用。 (示例)

Strips:使用最新Java技术构建的Web程序框架,推荐使用。

Tapestry:面向组件的框架,用于使用Java创建动态、健壮、扩展性高的Web应用程序。

请猛击这里 查看以上面框架之间的比较。

4、图表、报表、图像

JFreeChart:用于创建如条形图、折线图、饼图等图表。

JFreeReport:创建于输出PDF格式的报表。

JGraphT:创建图像,其中只包含由线段连接的点集。

5、窗口

Swing:SDK提供的GUI库。(示例)

SWT:eclipse提供的GUI库。

SWT与Swing的比较。

6.、GUI框架

Eclipse RCP。(示例)

7、自然语言处理

OpenNLP:来自Apache的自然语言处理库。 (示例)

Stanford Parser:斯坦福大学提供的自然语言处理库。(示例)

如果你是一名NLP专家,请猛击这里 查看更多工具库介绍。

8、静态分析

Eclipse JDT:由IBM提供的静态分析库,可以操作Java源代码。(示例)

WALA:可以处理jar包文件(即字节码)的工具库。(示例)

9、JSON

Jackson: 用于处理JSON数据格式的多用途的Java库。Jackson 旨在快速、准确、轻量、对开人员友好之间找到最好的平衡点。

XStream:一个简单用于对象和XML互相转换的库。

Google Gson:一个专门用于Java对象和Json对象相互转换的工具库。(示例)

JSON-lib:用于 beans、maps、collections、java arrays、XML 和 JSON 之间相互转换操作的工具库。

10、数学

Apache Commons Math:提供数学计算和数值统计需函数的工具库。

11、日志

Apache Log4j:风行一时的日志记录操作库。 (示例)

Logback:当前流行的log4j项目的继任者。

SLF4J(The Simple Logging Facade for Java): 各种日志框架的一个简单的外观或抽象(如java.util.logging 、logback、log4j等),允许用户在部署时加入需要的日志框架。

12、Office

Apache POI:利用其提供的APIs,可以使用纯Java代码操作各种基于微软OLE2合成文档格式的文档。

Docx4j:一个用于创建、操作微软公开的XML文件的库(支持Word docx、 Powerpoint pptx和Excel xlsx)。

13、日期和时间

Joda-Time:如有质量问题包退包换的Java日期和时间类。

14、数据库

Hibernate、EclipseLink、JPA

JDO

jOOQ

SpringJDBC、Spring Data

Apache DbUtils

15、开发工具

Lambok: 旨在减少代码编写的Java开发库。

实用的Java反射工具类

反射的Utils函数集合

提供访问私有变量 获取泛型类型Class 提取集合中元素的属性等Utils函数

package reflection

import java lang reflect Field import java lang reflect Modifier import java lang reflect ParameterizedType import java lang reflect Type import java util ArrayList import java util Collection import java util List

import mons beanutils PropertyUtils import mons lang StringUtils import slf j Logger import slf j LoggerFactory import springframework util Assert

/** * 反射的Utils函数集合 提供访问私有变量 获取泛型类型Class 提取集合中元素的属性等Utils函数

* * @author lei */ public class ReflectionUtils {

private static Logger logger = LoggerFactory getLogger(ReflectionUtils class)

private ReflectionUtils() { }

/** * 直接读取对象属性值 无视private/protected修饰符 不经过getter函数

*/ public static Object getFieldValue(final Object object final String fieldName) { Field field = getDeclaredField(object fieldName)

if (field == null)

throw new IllegalArgumentException( Could not find field [ + fieldName + ] on target [ + object + ] )

makeAccessible(field)

Object result = null try { result = field get(object) } catch (IllegalAccessException e) { logger error( 不可能抛出的异常{} e getMessage()) } return result }

/** * 直接设置对象属性值 无视private/protected修饰符 不经过setter函数

*/ public static void setFieldValue(final Object object final String fieldName final Object value) { Field field = getDeclaredField(object fieldName)

if (field == null)

throw new IllegalArgumentException( Could not find field [ + fieldName + ] on target [ + object + ] )

makeAccessible(field)

try { field set(object value) } catch (IllegalAccessException e) { logger error( 不可能抛出的异常 {} e getMessage()) } }

/** * 循环向上转型 获取对象的DeclaredField */ protected static Field getDeclaredField(final Object object final String fieldName) { Assert notNull(object object不能为空 ) return getDeclaredField(object getClass() fieldName) }

/** * 循环向上转型 获取类的DeclaredField */ @SuppressWarnings( unchecked )

protected static Field getDeclaredField(final Class clazz final String fieldName) { Assert notNull(clazz clazz不能为空 ) Assert hasText(fieldName fieldName ) for (Class superClass = clazz superClass != Object class superClass = superClass getSuperclass()) { try { return superClass getDeclaredField(fieldName) } catch (NoSuchFieldException e) { // Field不在当前类定义 继续向上转型 } } return null }

/** * 强制转换fileld可访问

*/ protected static void makeAccessible(final Field field) { if (!Modifier isPublic(field getModifiers()) || !Modifier isPublic(field getDeclaringClass() getModifiers())) { field setAccessible(true) } }

/** * 通过反射 获得定义Class时声明的父类的泛型参数的类型 如public UserDao extends HibernateDaoUser * * @param clazz *            The class to introspect * @return the first generic declaration or Object class if cannot be *         determined */ @SuppressWarnings( unchecked )

public static Class getSuperClassGenricType(final Class clazz) { return getSuperClassGenricType(clazz ) }

/** * 通过反射 获得定义Class时声明的父类的泛型参数的类型 如public UserDao extends * HibernateDaoUser Long * * @param clazz *            clazz The class to introspect * @param index *            the Index of the generic ddeclaration start from * @return the index generic declaration or Object class if cannot be *         determined */

@SuppressWarnings( unchecked )

public static Class getSuperClassGenricType(final Class clazz final int index) {

Type genType = clazz getGenericSuperclass()

if (!(genType instanceof ParameterizedType)) { logger warn(clazz getSimpleName() + s superclass not ParameterizedType ) return Object class }

Type[] params = ((ParameterizedType) genType) getActualTypeArguments()

if (index = params length || index ) { logger warn( Index + index + Size of + clazz getSimpleName() + s Parameterized Type + params length) return Object class } if (!(params[index] instanceof Class)) { logger warn(clazz getSimpleName() + not set the actual class on superclass generic parameter ) return Object class } return (Class) params[index] }

/** * 提取集合中的对象的属性 组合成List * * @param collection *            来源集合

* @param propertityName *            要提取的属性名

*/ @SuppressWarnings( unchecked )

public static List fetchElementPropertyToList(final Collection collection final String propertyName) throws Exception {

List list = new ArrayList()

for (Object obj collection) { list add(PropertyUtils getProperty(obj propertyName)) }

return list }

/** * 提取集合中的对象的属性 组合成由分割符分隔的字符串

* * @param collection *            来源集合

* @param propertityName *            要提取的属性名

* @param separator *            分隔符

*/ @SuppressWarnings( unchecked )

lishixinzhi/Article/program/Java/hx/201311/26718

java 什么叫工具类

是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包

关于java常见的工具类和juc java 工具类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。