前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:深入、全面、系统的介绍java的基础知识 🌰 文章简介:本文将介绍java常用的工具类,建议收藏备用,创作不易,敬请三连哦 🍎大厂真题:大厂面试真解
Java中有许多方便的工具类,可以避免方法传入空参数的Objects类,实现java国际化的Locale类,ResourceBundle类,避免计算浮点数计算精度损失的BigDecimal运算类…
ava7新增了Objects类,不会引发空指针异常,如果不确定一个对象是否为空,可以使用这个类的方法。在传入参数时可以使用Objects类中的requireNonNull()方法,防止传入的参数为null。
String创建的字符串对象不可以改变,StringBuffer与StringBuilder都可以改变,其中StringBuffer类型是线程安全的,但其效率也会降低点。
String有许多API,可以实现将字符数组与字符串序列相互转换,可以将StringBuilder、StringBuffering类数据转换为String类,也可以与它们进行值的比较。
StringBuffer与StringBuilder类中有length()与capcity()两个方法,前者表示字符串序列的长度,二者表示容量。
Random用于生成伪随机数(比Math类提供了更多方式),ThreadLocalRandom是其线程安全的增强版,也提供了指定范围的随机数生成方法。
BigDecimal提供精确计算浮点数的方式。
如果程序需要对于double浮点数进行精确的加、减、乘、除运算,可以编写一个Arith工具类,在这个类里面使用BigDecimal类返回精确的计算结果。
java8以前使用Data类、Calendar类来实现对于日期、时间的处理,但由于Date类设计存在问题,Calendar过于复杂,Java8吸取了Joda-Time库,提供一个java.time包用于处理时间。
正则表达式可用于对字符串进行查找、分割、替换等操作,java提供了Pattern和Matcher两个类专门用于支持正则表达式。正则表达式可以应用与比如网站的密码格式检查等实际场景。
正则表达式语法参见:你是如何学会正则表达式的? - 老刘的回答 - 知乎 https://www.zhihu.com/question/48219401/answer/742444326 正则表达式在java中的使用示例代码如下。
使用正则表达式可以实现网络爬虫——提取网络的网址超链接,再进入超链接即可。下面通过一小段代码提取电话号码。
matcheres()方法需要字符串与正则表达式完全一致才返回true,lookingAt()方法只需要与Pattern作为开头即返回true。
学习正则表达式建议多练习题目,推荐使用牛客网刷题巩固:大厂真题大全
7.国际化与格式化工具类 软件可能需要适应不同地区的本土市场,比如支付宝投入日本市场需要能够对日文进行本土化显示,因此要能够进行国际化与本土化。当然本土化不仅仅是语言方面的工作,还有比如日期格式、货币格式等。
Java格式化的思路是将程序中的标签、提示等通过资源文件来存放,不同国家、语言环境调用不同的资源文件。资源文件的存放格式是Key-value对,每个资源key不变,value随国家、语言环境而变。
java.util.Locale类可以获取Java所支持的国家和语言。
下面编写一个实现了国际化的程序。
这个程序将获取系统默认支持的语言,并且加载对应语言的资源文件。如果默认的语言环境是中文,则在配置文件mess_zh_CN.properties下查找hello具体的值。下面是配置文件的具体内容(看似乱码的部分是中文的“你好”所对应的ASCII码)。
如果遇到Canot find bundle for base name 异常,是因为没有把配置文件加入类路径中。可以参考博客 Canot find bundle for base name异常
这篇文章就介绍到这里,java筑基推荐多刷些笔试题,可以参考:大厂真题:大厂面试真解