JVM-内存分配和回收
JVM内存分配和回收在了解了JVM运行时数据区之后,我们发现JVM中对象的存储在堆上,而且java是面向对象的编程语言,我们一般都是通过new一个对象来生成相应的对象。那么我们在程序中调用new的时候,JVM是做了什么去帮我们生成对象的呢?对象的创建虚拟机在遇到一条new指令,首先将去检查这个指令的
JVM内存分配和回收在了解了JVM运行时数据区之后,我们发现JVM中对象的存储在堆上,而且java是面向对象的编程语言,我们一般都是通过new一个对象来生成相应的对象。那么我们在程序中调用new的时候,JVM是做了什么去帮我们生成对象的呢?对象的创建虚拟机在遇到一条new指令,首先将去检查这个指令的
先看一个栗子可以通过CompletableFuture.runAsyns()创建一个异步task,也就是说通过CompletableFuture.runAsyns()创建的task在执行的时候并不会阻塞主线程,这样会很大程度上提高代码的效率。publicclassDiagCompletable{pu
Lock和Synchronized的区别参考链接海子博客链接地址Lock不是java语言内置的,Lock是一个类,通过该类来实现同步访问,synchronzied是java内置关键字synchronized不需要手动去释放,当sync的代码块执行完会自动释放对锁的占用,但是Lock需要手动去释放,否
LinkedBlockingQueue可以不初始化容量,如果没有指定容量,那么默认容量为Integer.MAX_VALUE(此时需要注意当消费者崩溃或者消费不及时,如果生产者队列一直生产数据到队列,那么有可能会耗光资源,因为队列容量是MAX_VALUE);ArrayBlockingQueue必须初始
文章将简单的结合JDK源码来展示Java常用集合类型的数据结构,所使用的JDK为1.8版本。1.List和Set相比,List是有序可重复的,Set是无序不可重复;2.HashMap无序线程不安全,HashTable线程安全,TreeMap有序;3.HashMap的Key和Value都可以为null
equals()和hashCode()区别和联系我们经常听到重写equals和hashCode,但是我们为什么要去重写呢?如果我们不重写会怎么样呢?又或者我们只重写其中一个又会怎么样呢?带着这样的问题我们来看下equals()和hashCode()具体的区别和联系是什么?在说明之前我们先了解下equ
Nginx负载均衡策略配置Nginx负载均衡策略配置Nginx负载均衡配置语法负载均衡策略轮询权重分配哈希分配最少连接分配完整示例负载均衡顾名思义可以理解问一种平衡策略,可以用来分发客户端请求的不同的服务器节点从而减轻单台服务的压力,提高了性能也保障了可靠性,因此当多个几点同时工作时,即使有一个节点
Go语言数据类型Go语言数据类型
Go变量和常量-Troyqu
Linux挂载新磁盘在我们使用公有云的时候可以很方便的未云服务器挂载新的数据盘,但是数据盘挂载到云服务器之后,我们还要再机器上进行磁盘的挂载。磁盘分区初始化可以使用一下命令来进行磁盘分区。fdisk-l(查看磁盘分区情况)fdisk/dev/vdc(对磁盘vdc进行分区)n(建立一个新分区)p(输入
go编译和执行gobuildgo通过gobuild命令来编译文件,在执行gobuild命令之后,go会编译出来一个可以运行的可执行文件,但是gobuild不会去执行这个可执行文件。注意:gobuild命令只有在执行出错的情况下才会有返回信息,执行成功的话是没有返回信息的,但是会在当前目录生成一个与m