Java 您所在的位置:网站首页 rt代理 Java

Java

#Java| 来源: 网络整理| 查看: 265

rt.jarClassLoadergetSystemResourceAsStream(String name)LocaleFile文件是否相等线程代理语法null类型转换会不会报NPE?

Mongoosej.Blog.Software.Programing.Java.API

rt.jar

ClassLoader

java.lang.ClassLoader

getSystemResourceAsStream(String name)

程序开发中,经常会存在将一些资源放到jar内的情况,比如属性文件、图标、图片等等。由于使用java.io.File只能获取到jar包以外的资源,获取jar包内的资源通常使用java.util.jar.JarFile或者java.lang.ClassLoader来获取,前者操作较为麻烦,通常使用该方法来加载jar包内类路径下的资源。核心思路就是,使用该方法将指定类路径下的资源作为输入流来执行操作。在某些情况下,资源文件存在编码问题,此时需要注意使用java.io.InputStreamReader来指定编码,防止读取的资源文件乱码。Java中getResourceAsStream的用法Java中getResource()的详细介绍

Locale

java.util.Locale

Locale locale = Locale.getDefault();// 根据当前系统环境,获取语言、区域信息// 返回此语言环境的国家/地区代码,将为空字符串或大写的 ISO 3166 两字母代码。locale.getCountry();// CN// 返回适合向用户显示的语言环境国家/地区名。locale.getDisplayCountry();// 中国// 返回此语言环境的语言代码,可以是空字符串或小写的 ISO 639 代码。locale.getLanguage();// zh// 返回适合向用户显示的语言环境语言名。locale.getDisplayLanguage();// 中文// 返回此语言环境国家/地区的三字母缩写。locale.getISO3Country();// CHN// 返回此语言环境语言的三字母缩写。locale.getISO3Language();// zho// 返回适合向用户显示的语言环境名。locale.getDisplayName();// 中文 (中国)// Returns a well-formed IETF BCP 47 language tag representing this locale.locale.toLanguageTag();// zh-CN

File

java.io.File

文件是否相等

通过计算文件的md5值来比较。

如果文件B由文件A复制得到,那么A和B这两个文件的md5值相等。如果文件B由文件A复制得到,并且修改了文件B的文件名称,那么A和B这两个文件的文件名不相等,但是这两个文件的md5值仍然相等。 ```java import org.apache.commons.codec.digest.DigestUtils;

String file1Md5 = DigestUtils.md5Hex(new FileInputStream(file1)); String file2Md5 = DigestUtils.md5Hex(new FileInputStream(file2)); System.out.println(file1Md5.equals(file2Md5));

# Aspect## keywords### final[浅析Java中的final关键字](https://www.cnblogs.com/dolphin0520/p/3736238.html)## doc#### 表格代码注释插入表格,可以参考以下类:- javax.swing.BoxLayout## Annotation[如何实现自定义注解](https://blog.csdn.net/Mr_wzc/article/details/119478793)[如何自定义一个Java注解?](https://zhuanlan.zhihu.com/p/165641201)## Upgrade### Java 8Java 8(又称为jdk 1.8)是Java语言开发的一个主要版本。Oracle公司于2014年3月18日发布Java 8它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。Java8新增了非常多的特性,主要包括以下几个:- Lambda达式−Lambda允许把函数作为一个方法的参数(函数作为参数传递到方法中)。- 方法引用−方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。- 默认方法−默认方法就是一个在接口里面有了一个实现的方法。- 新工具−新的编译工具,如:Nashorn引擎jjs、类依赖分析器jdeps。- StreamAPI−新添加的StreamAPI(java.util.stream)把真正的函数式编程风格引入到Java中。- DateTimeAPI−加强对日期与时间的处理。- Optional类−Optional类已经成为Java8类库的一部分,用来解决空指针异常。- Nashorn,JavaScript引擎−Java8提供了一个新的Nashornjavascript引擎,它允许我们在JVM上运行特定的javascript应用。- #### Lambda[Lamda 表达式学习](https://www.jianshu.com/p/848cf247ce28)[Java Lambda 表达式](https://www.runoob.com/java/java8-lambda-expressions.html)[Java8新特性--Lambda表达式](https://www.cnblogs.com/kexianting/p/8588987.html)#### Stream[Java8中Stream详细用法大全](https://blog.csdn.net/qq_45228323/article/details/121328790)## Traps### Number#### lang int```javalong startTime = System.currentTimeMillis();Thread.sleep(1000);int endTime = System.currentTimeMillis();System.out.println("cost: " + (startTime-endTime) + "ms");

上述的代码,可能你预期的结果是cost: 1000ms,或者1000ms上下。 但实际的结果是cost: 1632087571479ms,一个很大的数值,远大于1000ms。

结果在1000ms上下是可以理解的,因为cpu切换等等底层问题可能会导致时间不是恰恰1000ms那么准确。但是实际相差缺很大,为什么呢?

当前时间以2021-08-27 10:48来算,大概stratTime=1630032522844ms,endTime=1630032523844ms,上述代码第二行,把endTime由long转为了int,很明显1630032523844已经超过了int的取值范围(-2147483648 ~ 2147483647),所以实际endTime被转为了一个负数,实际endTime=-2055048635ms,所以(startTime-endTime)反而比startTime还更大了。

所以本质原因在于long转int的数据移出。

线程

Java线程池详解

代理

JDK代理、CGLIB(Code Generation Library)代理。Spring AOP 代理实现的两种方式: JDK动态代理 和 Cglib框架动态代理

语法

null类型转换会不会报NPE?public static void main(String[] args) { IChannelEquipmentService ics = null; EquipmentChargeService ecs = (EquipmentChargeService) ics; System.out.println(ecs);// 实际会执行到这步输出null,不报NullPointException}


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有