首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中InetAddress使用(二):获取本机IP地址正确姿势【享学Java

本文将介绍是一种通用获取本机IP地址解决方案,也就是所谓正确姿势”。...可以使用uname -n 命令来查看本地计算机计算机名称(比如本例我使用命令得到值是l-xxx.syc.prod.ali.qr,也就是配置里HOSTNAME值) # 支持网络通信 NETWORKING...该文件由域名解析器来读取(下面会有Java代码示例) 格式:每行一个关键字开头,后接一个或多个由空格隔开参数 可选关键字有: nameserver:(最重要,此关键字必选,其它可选)定义DNS...了) ---- 获取本机IP地址正确姿势 关于获取本机地址正确姿势,主要分为如下两种场景展开说明。...String getCanonicalHostName(); //获取字节数组形式ip地址。

15.8K65
您找到你想要的搜索结果了吗?
是的
没有找到

linux下使用update-alternatives切换java版本正确姿势

之前文章说明了使用文件夹管理来代替原来的当个命令配置方式,不过这个是属于个人使用方式,并不是规范通用方式。...按照默认方式,每一个软件包对应命令都是分别设置,这样好处是,可以不同命令使用不同版本。...如java使用1.9,javap使用1.8 还是以java为例,它默认配置了"java/javac/appletviewer/jconsole"。...在新安装了一个版本时候,为了保留旧版本,而让新版本生效,首先要做是看一下旧版本优先级是多少,如: sudo update-alternatives --display javac javac...那么,我测试时发现安装程序只设置了appletviewer和jconsole,没关系我并不关心这个,下面自己自己设置要使用命令和优先级: sudo update-alternatives --install

3.8K21

使用 Java 8 Optional 正确姿势

这就是我们将要讲到使用Java 8 Optional 类型正确姿势. 在里约奥运之时, 新闻一再提起五星红旗有问题, 可是我怎么看都看不出来有什么问题, 后来才道是小星星膜拜中央姿势不对...., 正确使用 Java 8 Optional 正确姿势....直白讲, 当我们还在如下几种方式使用 Optional 时, 就得开始检视自己了 调用 isPresent() 方法时 调用 get() 方法时 Optional 类型作为类/实例属性时 Optional...(使用任何像 Optional 类型作为字段或方法参数都是不可取. Optional 只设计为类库方法, 可明确表示可能无值情况下返回类型....最后, 最好理解 Java 8 Optional 方法莫过于看它源代码 java.util.Optional, 阅读了源代码才能真真正正让你解释起来最有底气, Optional 方法中基本都是内部调用

2.2K10

Java 8 - 正确高效使用并行流

---- Pre Java 8 - 并行流计算入门 ---- 正确使用并行流,避免共享可变状态 错用并行流而产生错误首要原因,就是使用算法改变了某些共享状态。...性能无关紧要了,唯一要紧是每次执行都会返回不同结果,都离正确值差很远。这是由于多个线程在同时访问累加器,执行 total += value ,而这却不是一个原子操作。...所以共享可变状态会影响并行流以及并行计算,要避免共享可变状态,确保并行 Stream 得到正确结果。 ---- 高效使用并行流 是否有必要使用并行流? 如果有疑问,多次测试结果。...例如,一个 SIZED 流可以分成大小相等两部分,这样每个部分都可以比较高效地并行处理,但筛选操作可能丢弃元素个数却无法预测,导致流本身大小未知。...---- 流数据源和可分解性 ? 最后, 并行流背后使用基础架构是Java 7中引入分支/合并框架了解它内部原理至关重要,下一篇搞起

53730

Java8 Optional 正确使用方式

1.当我们还在如下几种方式使用 Optional 时, 就得开始检视自己了 调用 isPresent() 方法时 调用 get() 方法时 Optional 类型作为类/实例属性时 Optional...把 Optional 类型用作属性或是方法参数在 IntelliJ IDEA 中更是强力不推荐使用任何像 Optional 类型作为字段或方法参数都是不可取....使用Optional.of(obj)原则 当我们非常非常明确将要传给 Optional.of(obj) obj 参数不可能为 null 时, 比如它是一个刚 new 出来对象(Optional.of...以下为Optional正确使用方式: 存在即返回, 无则提供默认值 return user.orElse(null); //而不是 return user.isPresent() ?...u -> u.getOrders()).orElse(Collections.emptyList()) //上面避免了我们类似 Java 8 之前做法 if(user.isPresent()) {

1.1K00

Javajmap命令使用详解

jmap命令简介 jmap(Java Virtual Machine Memory Map)是JDK提供一个可以生成Java虚拟机堆转储快照dump文件命令行工具。...除此以外,jmap命令还可以查看finalize执行队列、Java堆和方法区详细信息,比如空间使用率、当前使用什么垃圾回收器、分代情况等等。...和jinfo命令一样,在Windows系统上使用还是有一些限制。...想要要获取运行Java虚拟机进程列表,可以使用ps命令(Linux系统中)或tasklist命令(Windows系统中),如果Java虚拟机进程没有在单独docker实例中运行,可以使用jps命令...具体说明如下: live参数是可选,如果指定,则只转储堆中活动对象;如果没有指定,则转储堆中所有对象。 format=b表示hprof二进制格式转储Java内存。

7.8K40

Javajstat命令使用详解

jstat命令简介 jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供一个可以监控Java虚拟机各种运行状态信息命令行工具。...它可以显示Java虚拟机中类加载、内存、垃圾收集、即时编译等运行状态信息。...-options:显示outputOptions参数列表。 outputOptions:输出选项,指定显示某一种Java虚拟机信息。 -t:把时间戳列显示为输出第一列。...这个时间戳是从Java虚拟机开始运行到现在秒数。 -h n:每显示n行显示一次表头,其中n为正整数。默认值为 0,即仅在第一行数据显示一次表头。...如果指定了该参数,jstat命令将每隔这段时间显示一次统计信息。 count:显示数据次数,默认值是无穷大,这将导致jstat命令一直显示统计信息,直到目标JVM终止或jstat命令终止。

6K21

Javajinfo命令使用详解

jinfo命令简介 jinfo(Java Virtual Machine Configuration Information)是JDK提供一个可以实时查看Java虚拟机各种配置参数和系统属性命令行工具...使用jps命令-v参数可以查看Java虚拟机启动时显式指定配置参数,如果想查看没有显式指定配置参数就可以使用jinfo命令进行查看。...想要要获取运行Java虚拟机进程列表,可以使用ps命令(Linux系统中)或tasklist命令(Windows系统中),如果Java虚拟机进程没有在单独docker实例中运行,可以使用jps命令...结尾 虽然jinfo命令已经推出很久并且使用频率比较高,但它仍然是一个“实验性质,并且没有技术支持”(Experimental and Unsupported)工具,日后可能会被转正,也有可能在某个...JDK版本中无声无息地消失。

1.4K20

Javajstack命令使用详解

想要要获取运行Java虚拟机进程列表,可以使用ps命令(Linux系统中)或tasklist命令(Windows系统中),如果Java虚拟机进程没有在单独docker实例中运行,可以使用jps命令...比如: -m参数 如果使用-m参数,jstack命令将显示混合栈帧信息,除了Java方法栈帧以外,还有本地方法栈帧。本地方法栈帧是C或C++编写虚拟机代码或JNI/native代码。...比如: 在显示结果中,星号为前缀帧是Java方法栈帧,而不以星号为前缀是本地方法栈帧。比如: -h 和 -help 显示jstack命令帮助信息。...JDK版本中无声无息地消失。...不过,我们还可以使用Thread.getAllStackTracesgetAll()方法,获取Java虚拟机中所有线程StackTraceElement对象,进而获得所有线程栈帧信息。

2.4K30

Javajps命令使用详解

jps命令简介 jps(Java Virtual Machine Process Status Tool)是JDK提供一个可以列出正在运行Java虚拟机进程信息命令行工具,它可以显示Java虚拟机进程执行主类...另外,jps命令只能显示它有访问权限Java进程信息。 虽然jps命令功能比较单一,但它使用频率却很高。...对于本地虚拟机来说,本地虚拟机唯一ID和操作系统进程ID(PID,Process Identifier)是一致,如果同时启动多个Java虚拟机进程,无法根据进程名称确定某个进程,我们就是使用jps命令显示主类名称功能区分出来...在没有指定任何参数情况下,jps命令会显示每个Java虚拟机进程本地虚拟机唯一ID,后面跟着主类名称或JAR文件名简短形式。...“实验性质,并且没有技术支持”(Experimental and Unsupported)工具,日后可能会被转正,也有可能在某个JDK版本中无声无息地消失。

6.3K41

Java 基础(一)| 使用泛型正确姿势

为跳槽面试做准备,今天开始进入 Java 基础复习。希望基础不好同学看完这篇文章,能掌握泛型,而基础好同学权当复习,希望看完这篇文章能够起一点你青涩记忆。...顾名思义,就是将类型由原来具体类型参数化 (动词),类似于方法中变量参数,此时类型也定义成参数形式(可以称之为类型形参), 然后在使用 / 调用时传入具体类型(类型实参)。...泛型本质是为了参数化类型(在不创建新类型情况下,通过泛型指定不同类型来控制形参具体限制类型)。也就是说在泛型使用过程中。...3.8 泛型使用规范 1、不能实例化泛型类 2、静态变量或方法不能引用泛型类型变量,但是静态泛型方法是可以 3、基本类型无法作为泛型类型 4、无法使用 instanceof 关键字或 == 判断泛型类类型...5、泛型类原生类型与所传递泛型无关,无论传递什么类型,原生类是一样 6、泛型数组可以声明但无法实例化 7、泛型类不能继承 Exception 或者 Throwable 8、不能捕获泛型类型限定异常但可以将泛型限定异常抛出

54920

关于安装多个版本jdk之后java -version不正确问题

结果就出现了一个很蛋疼问题:我原来JAVA_HOME配置根本就没有改变,但是在命令行执行 java -version出现却是1.8版本,而javac -version出现是正常1.6版本。...fromerr=U6XKsOdO , 主要原因是javac -version是由JAVA_HOME指定路径中java版本来决定。...而java -version中找java.exe是根据系统环境变量PATH来定,而此前我系统中PATH变量配置为:JAVA_HOME相关配置在最后,也就是在system32后面。...这样因为每次安装jre时候,都会讲java.exe拷贝到system32路径中,而java -version会依次变量PATH配置,如果找到了就不在继续往后找,这就导致java -version永远是最新版本...解决办法: 其实只要将系统环境变量PATH中JAVA_HOME相关配置移到最前即可。 其他可以删除system32中java.exe javaw.exe javaws.exe,删除注册表等。

1.3K70

如何在代码中获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...这种方式不依赖jar包,使用起来也很简单。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法...主要用于项目监控,发版审计,DevOps等领域,包括Spring Boot自定义banner也可以使用。算是一个锦上添花小Tips,简单了解一下就好。 往期推荐 微信继续加持上班摸鱼功能!

3.1K20

如何在代码中获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...这种方式不依赖jar包,使用起来也很简单。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法...主要用于项目监控,发版审计,DevOps等领域,包括Spring Boot自定义banner也可以使用。算是一个锦上添花小Tips,简单了解一下就好。

5.7K20
领券