【java】Java组件概览(2)— 基本库
1、Math
Math相关的库包括包括浮点库(java.lang.Math和java.lang.StrictMath)和任意精度数学(java.math包)。
(1)java.lang.Math
该类包含执行基本数值运算的方法,如基本指数、对数、平方根、三角函数、弧度/角度、四舍五入以及最大、最小和绝对值。
另外,还有两个常量无理数E(e)和PI(π)。
(2)java.lang.StrictMath
提供的方法与Math一样。Math的方法很多都是直接调用StrictMath的实现,而StrictMath再调用本地(native)方法(StrictMath也有一部分方法调用的是Math的方法)。
(3)java.math
提供任意精度的Integer(BigInteger)和Decimal(BigDecimal)数的计算(如货币计算的场景),不会溢出或丢失精度。
2、Collections
集合相关的类,非常重要,不多赘述。
3、Ref Objects
提供引用对象类,它支持与垃圾收集器的有限程度的交互。程序可以使用引用对象来维护对某个其他对象的引用,使得后者对象仍然可以由收集器回收。
包括强引用、软引用、弱引用和虚引用。
3、Regular Expressions
正则表达式,包含类Pattern和Matcher。关键是正则表达式语法的熟悉,入门容易精通难。
4、logging
日志记录。
5、Management
为Java平台提供监视和管理功能。分为以下几块:
(1)java.lang.management
支持监视和管理Java虚拟机和底层操作系统。API使应用程序能够自我监控并使JMX兼容工具能够在本地和远程监控和管理虚拟机。
例如在应用内部可以通过其工厂类ManagementFactory获取或者推送各种运行时信息,如CPU、内存等实时状态。
(2)com.sun.management
是Oracle在java.lang.management基础上对平台监视和管理功能的扩展。
(3)java.util.logging.LoggingMXBean
通过它可以可以检索和设置日志记录信息。
(4)The Java Management Extensions (JMX)的API
提供了一种利用工具本地或者远程监视和控制Java应用的方法。
提供远程监视功能时,Java应用必须自己将待监控的资源注册到MBeanServer中,并暴露一个远程接口给工具。
(5)Attach API
Oracle的平台扩展,允许将管理代理动态加载到虚拟机中。
6、Instrumentation
用于检测Java编程语言应用程序 - 例如,监视它们或收集性能信息。工具用于 java.lang.instrument修改定义类的类文件 - 通常通过在方法的字节代码中插入将执行检测的附加字节代码。
就是将你自己编写的Java类编译成jar包加载到将要启动(premain)的或者正在运行(agentmain)的JVM中(类似一个探针),这时候你的jar包就注入到这个java进程中了。你要什么数据或者功能,将其在该jar包中实现即可。
该功能比较强大,可以达到监控和诊断的目的。但为了对原JVM中的功能不产生干扰,jar包中的类最好使用自定义的类加载器。
现利用该技术的工具有GProfile和阿里的Arthas。
7、Concurrency Utilities
并发工具类。非常重要,这不做赘述。
8、Reflection
这是Java语言的重要特性,是各种框架的基础。
9、Versioning
版本控制功能支持包级版本控制,以便应用程序和applet可以在运行时识别特定Java Runtime Environment,VM和类包的版本。
API包含在java.lang.Class、java.lang.ClassLoader、java.lang.Package、java.lang.System中。
10、Preferences API
包含在java.util.prefs包中。
它允许应用程序存储和检索用户和系统首选项和配置数据。此数据持久存储在依赖于实现的后备存储中。有两个独立的优先节点树,一个用于用户首选项,另一个用于系统首选项。
11、JAR
JAR(Java Archive)是一种独立于平台的文件格式,它将许多文件聚合为一个文件。多个Java小程序及其必需组件(.class文件,图像和声音)可以捆绑在一个JAR文件中,然后在单个HTTP事务中下载到浏览器中,从而大大提高了下载速度。
JAR格式还支持压缩,这可以减小文件大小,进一步缩短下载时间。此外,applet作者可以对JAR文件中的各个条目进行数字签名,以验证其来源。它是完全可扩展的。
12、ZIP
提供用于读取和写入标准ZIP和GZIP文件格式。
【java】Java组件概览(2)— 基本库的更多相关文章
- C#与C++、Java之比较概览
转自C#与C++.Java之比较概览 C#与C++.Java之比较概览 Ben Albahari 著 荣耀 译 本文翻译时间较早.欢迎指出任何误失.谢谢. 感谢以下人士的支持和反馈(按字母先后顺序) ...
- Java下好用的开源库推荐
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文想介绍下自己在Java下做开发使用到的一些开源的优秀编程库,会不定 ...
- java调用c++生成的动态和静态库时遇到的问题
java.lang.UnsatisfiedLinkError: no jacob in java.library.path -Djava.library.path 关于java用jni调用 dll动态 ...
- Java SE技术概览 - Jave SE Platform at a Glance
从学习到工作,使用Java有几年时间,一直没有好好端详一下她的“内涵”.无意中看到一个关于Java SE的概览图,发现Java中提供的API还挺系统全面,把她放到博客中,相信对于想系统了解Java技术 ...
- 在 Java EE 组件中使用 Camel Routes
摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE 组件中开始使用 Apache Camel Routes. [编者按]作者 ...
- Java Web之JSTL标准标签库总结
[文档整理系列] Java Web之JSTL标准标签库总结
- Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新
Java日志组件logback使用:加载非类路径下的配置文件并设置定时更新 摘自: https://blog.csdn.net/johnson_moon/article/details/7887449 ...
- java调用dll或so动态库文件(c++/c)
java调用dll或so动态库文件(c++/c) 博客分类: 工作 CC#C++JavaEclipse java调用dll或so动态库文件(c++/c)开发平台:Eclipse3.3.1.1+CD ...
- 使用java以及jdbc不使用第三方库执行sql文件脚本
使用java以及jdbc不使用第三方库执行sql文件脚本 2017年02月15日 15:51:45 阅读数:660 使用java执行sql脚本的方法 解析sql脚本,删除不必要的注释和空行 将语句按分 ...
- JAVA整合Redis使用redisTemplate清除库中的所有键值对数据
JAVA整合Redis使用redisTemplate清除库中的所有键值对数据,清除所有缓存数据 Set<String> keys = redisTemplate.keys("*& ...
随机推荐
- 【MySQL 读书笔记】RR(REPEATABLE-READ)事务隔离详解
这篇我觉得有点难度,我会更慢的更详细的分析一些 case . MySQL 的默认事务隔离级别和其他几个主流数据库隔离级别不同,他的事务隔离级别是 RR(REPEATABLE-READ) 其他的主流数据 ...
- LeetCode136.只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...
- 抽奖大转盘 js代码
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 执行Git命令时出现各种 SSL certificate problem 的解决办法
执行Git命令时出现各种 SSL certificate problem 的解决办法 来源 https://www.cnblogs.com/chenzc/p/5842932.html 比如我在win ...
- 【linux】工作中linux系统常用命令操作整理
1.Linux如何查看端口 使用lsof(list open files)命令,lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000. 或者使用n ...
- es6异步编程
https://blog.csdn.net/tcy83/article/details/80274772 等一系列文章
- 转载:Centos升级gcc
一.检查centos 里面是否安装了gcc g++ 输入命令:rpm -qa|grep gcc*有看到就出来gcc的东西就是装了没有的话就yum install gcc* -y 二.升级gcc 对于C ...
- 【踩坑】利用fastjson反序列化需要默认构造函数
利用 fastjson等 反序列化时需要注意,他可能会用到 默认的构造函数,如果没有默认构造函数,某些场景下可能会出现 反序列化熟悉为空的情况,如下图所示:
- 基于jeesite的cms系统(六):Lucene全文搜索引擎
1.lucene初始化 // @Value("${lucene.index.path}") private String indexPath = "/Users/vito ...
- 乙方渗透测试之Fuzz爆破
前言 爆破在渗透测试中,对技术的要求不高,但是对技巧和字典的要求就很高了,本篇整理下平时学到的一些爆破思路和技巧(偏web渗透登陆),当你无措可施时,暴力破解是最好的方式. 世界上最可怕的事情是你的习 ...