浅谈JVM垃圾收集器及回收算法
查看当前jvm使用的垃圾收集器的方法:
[root@centos7 ~]# java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=30110656 -XX:MaxHeapSize=481770496 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+U[......]
[root@centos7 ~]# java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=30110656 -XX:MaxHeapSize=481770496 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+U[......]
1、实现序列化及反序列化的目的主要是为了实现网络中数据传输,hessian可以将对象序列化为二进制数据流,降低网络带宽,实现更高效的传输。
2、使用hessian实现序列化的对象要求必须实现java.io.Serializable接口,否则运行会报错。
3、我们来看一下具体的代码实现,首先自定义一个User对象:
public class User implements Serializable[......]
CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。它使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。可以说CAS是一种乐观锁,但它仍然存在一些缺点。如ABA问题,自旋锁消耗问题,多变量共享一致性问题
ABA问题:
问题描述:线程t1将它的值从A变[……]
两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。该算法能够解决很多的临时性系统故障(包括进程、网络节点、通信等故障),被广泛地使用。但是,它并不能够通过配置来解决所有的故[……]
查看防火墙状态
firewall-cmd --state
查看防火墙开放的端口
firewall-cmd --list-ports
开启防火墙
systemctl start firewalld.service
重启防火墙
systemctl restart firewalld.service
设置开机自启
systemctl enable firewalld.servi[......]
1、创建共享目录
mkdir /volume2/docker
2、共享目录
vim /etc/exports
#把下面的加入到文件/etc/exports中
#共享的目录 要分享的客户端IP段 设置权限
/volume2/docker 192.168.1.2/24 (rw,no_root_squash,sync,no_wdelay)
Copy files/folders between a container and the local filesystem
在容器和本地文件系统之间复制文件/文件夹
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
从容器中复制文件或目录到执行命令所在机器的指定路径
docker cp[......]
Linux环境下在catalina.sh中设置:
Windows环境下在catalina.bat中设置:
注意:jdk8中设置-XX:PermSize=256m -XX:MaxPermSize=256m会如下警告,提示删除这个参数。
[……]