技术博客

线程池原因导致java.lang.OutOfMemoryError

java线程线程池

问题描述 线上环境某个服务经常性地抛出内存溢出,看日志是下面的错误 java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start0(Native Method) ~[?:1.8.0_112] at java.lang.Thread.start(Thread.java:714) ~[?:1.8.0_112] at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:950) ~[?:1.8.0_112] at …

更多 →

July 19, 2021

Manjaro升级后打开坚果云界面显示空白

manjaro

修改 /opt/nutstore/conf/nutstore.properties # 将下面设置修改成false webui.enable=false 如果发现界面大小不能修改,则执行下面命令安装相关程序

更多 →

July 2, 2021

Java 9新特性 - (5)Optional类中新增几个方法

javajava 9optional

相关文章: Java 8引入Optional类 Optional 类在 Java 8 中引入,Optional 类的引入很好的解决空指针异常。。在 java 9 中, 添加了三个方法来改进它的功能.

更多 →

June 24, 2021

Java 8新特性 - (15)Optional类

javajava 8optional

相关文章: Java 9对Optional类的改进 Java 8中引入了Optional类来解决 NullPointerException 与繁琐的 null 检查。它是一个封装值的类,用于保存类型为T的值,从本质上说它就是一个容器。

更多 →

June 24, 2021

Java 9新特性 - (4)统一的JVM日志系统

javajava 9

Java 9新增了新的命令行选项-Xlog, 用于所有日志记录设置和统一的JVM日志记录 Xlog的参数遵循以下规则: 已按照在命令行中显示的顺序应用了多个参数。 最后的配置规则:对于相同的输出,多个参数可以按给定的顺序相互覆盖。 -Xlog[:option] option := [<what>][:[<output>][:[<decorators>][:<output-options>]]] 'help' 'disable' what := <selector>[,...] selector := <tag-set>[*][=<level>] tag-set := <tag>[+...] 'all' tag := name of …

更多 →

June 23, 2021

Java 8新特性 - (14)Hotspot删除永久代

javajava 8jvmhotspot

JDK 6、JDK 7、JDK 8 内存模型演变 这些版本的JVM内存模型主要有以下差异: JDK 6:有永久代,静态变量存放在永久代上。 JDK 7:有永久代,但已经把字符串常量池、静态变量,存放在堆上。逐渐地减少永久代的使用。 JDK 8:无永久代,运行时常量池、类常量池,都保存在元数据区,也就是常说的元空间。但字符串常量池仍然存放在堆上。 内存模型各区域概要 程序计数器 较小的内存空间、线程私有,记录当前线程所执行的字节码行号。 如果执行 Java 方法,计数器记录虚拟机字节码当前指令的地址,本地方法则为空。 这一块区域没有任何 OutOfMemoryError 定义。 Java虚拟机栈 每一个方法在执行的同时,都会创建出一 …

更多 →

June 22, 2021

Java 9新特性 - (3)@SafeVarargs注解支持私有方法

javajava 9

Java 7 引入了@SafeVarargs注解来抑制当方法具有varargs(可变数量的参数)时出现的不安全操作警告,比如具有模糊类型(比如:泛型)的可变参数。@SafeVarargs注解只能用于无法覆盖的方法(final方法、static方法或构造函数),因为重写方法仍然可以对其 varargs(可变数量的参数)执行不安全操作。

更多 →

June 21, 2021

Java 9新特性 - (2)匿名内部类与菱形运算符

javajava 9

什么是菱形运算符 菱形操作符是作为 java SE 7 中的新功能引入的。菱形操作符的目的是通过将泛型类型保留在表达式的右侧来避免冗余代码。

更多 →

June 21, 2021

Java 9新特性 - (1)接口中的私有方法

javajava 9

在Java 7或更早版本中,一个接口中只能定义如下两种: 常量 抽象方法 在Java 8中接口引入了默认方法和静态方法。可以在接口中编写方法实现,仅仅需要使用default关键字来定义它们。

更多 →

June 18, 2021

阿里云WAF与SNI问题

waf阿里云sni

什么是SNI 当多个网站托管在一台服务器上并共享一个IP地址,并且每个网站都有自己的SSL证书,在客户端设备尝试安全地连接到其中一个网站时,服务器可能不知道显示哪个SSL证书。这是因为SSL/TLS握手发生在客户端设备通过HTTP指示连接到某个网站之前。这个有点像邮寄包裹到公寓楼而不是独栋房子。将邮件邮寄到某人的独栋房子时,仅街道地址就足以将包裹发送给收件人。但是,当包裹进入公寓楼时,除了街道地址外,还需要公寓号码。否则,包裹可能无法送达收件人或根本无法交付。

更多 →

June 17, 2021

Docker环境中curl报证书错误

dockercurl

使用debian:buster-slim镜像编写dockfile,在调用curl命令的时候,报下面的错误: curl: (60) SSL certificate problem: unable to get local issuer certificate 这个是由于本地没有证书。其中一个解决办法是,在dockfile中加入类似下面的语句来安装证书,再调用curl命令

更多 →

June 16, 2021

Manjaro安装软件时找不到strip binary

manjaro

Manjaro 安装软件时报错: :: (1/1) Parsing SRCINFO: wps-office ==> ERROR: Cannot find the strip binary required for object file stripping. error downloading sources: wps-office 这个是由于某些基础包没装,执行下面命令安装基础包,然后再次安装需要的软件即可

更多 →

June 15, 2021

Java 8新特性 - (13)StampedLock

javajava 8lockStampedLock

synchronized 在java5之前,实现同步主要是使用synchronized。它是Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 有四种不同的同步块:

更多 →

June 8, 2021

Java 8新特性 - (12)无符号运算

javajava 8

Java 8为整型包装类,增加类支持无符号运算的方法。注意:仅仅是在新增的运算方法中将long或者int当做无符号的数做运算,而本身java并不支持无符号的数据类型

更多 →

June 8, 2021

原码、反码、补码和位移运算

原码、反码和补码 为运算方便,机器数有 3 种表示法,即原码、反码和补码。 原码 原码是一种计算机中对数字的二进制定点表示法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为 0,负数该位为 1(0 有两种表示:+0 和 -0),其余位表示数值的大小。

更多 →

June 8, 2021

Java 8新特性 - (11)Base64编解码

javajava 8base64

早期处理BASE64编码, 需借助外部依赖:commons-codec,sun.misc.BASE64Decoder或JAXB的DatatypeConverter。Java 8实现了BASE64编解码API,它包含到java.util包。

更多 →

June 7, 2021