JAVA虚拟机中的数据类型为两类:
包括byte,short,int,long,char,float,double,Boolean,returnAddress。
包括类类型,接口类型和数组
栈是运行时的地方,堆是数据存储的地方
栈主要是解决程序运行问题,即程序如何执行,或者说如何处理程序;堆解决的是数据存储的问题,即数据怎么放、放在哪儿。
FAQ:
1. 当一个类中的成员变量定义为static时,他时属于这个类的而不是属于对象的,也就是说在不同的对象中该变量的值是共享的
2. 当在一个线程的方法中new一个对象后,该对象其实是该线程独有的(除static声明的)。
不要试图与C进行类比,Java中没有指针的概念
程序运行永远都是在栈中进行的,因而参数传递时,只存在传递基本类型和对象引用的问题,不会直接传对象本身。
值得说明的是JAVA在方法中进行参数传递时,针对数据类型的不同是区分对待的。
1. 当参数传递为基本类型时,传递的是相应变量的值
2. 当参数传递为对象时,由于在栈帧中对象变量表示的其实是对象的引用,对象的真实数据还存放在对中,因此这时转递的应该是对象的引用而不是对象的值,也就是说当在方法内部修改该变量时,方法运行结束后该对象的数据会发生相应的变化。
- -XX:+UseG1GC -verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/user/crb-order-api-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10m
-
-
- JAVA_OPTS='-Xms3096m -Xmx3096m -Dsun.net.inetaddr.ttl=180' 这个只是用于设置堆内存的大小,而JVM运行过程中到底会向操作系统申请多少内存,这个是由JVM在运行过程中动态决定的,我们无法设置
1. 该工具直接在jdk中已存在,在win下直接双击即可打开,页面如下
右键点击远程->添加远程主机打开如下页面
2. 配置远端JVM,配置如下:
a. 在JAVA的启动参数中增加如下参数
- -Djava.rmi.server.hostname=192.168.0.237 \
- -Dcom.sun.management.jmxremote.port=18999 \
- -Dcom.sun.management.jmxremote.ssl=false \
- -Dcom.sun.management.jmxremote.authenticate=false"
- #java.rmi.server:远程服务器地址,使用hostname查看如果不是远程的IP,需要使用sudo hostname 192.168.0.237 设置
- #com.sun.management.jmxremote:远程链接的端口号。该端口号不能被占用
- #com.sun.management.jmxremote: 链接不适用ssl
- #com.sun.management.jmxremote.authenticate 链接不鉴权
b. jstatd配置
- #配置policy文件
- cd $JAVA_HOME/bin
- cat <<EOF > jstatd.policy
- grant codebase "file:\${java.home}/../lib/tools.jar" {
- permission java.security.AllPermission;
- };
- EOF
- #在JDK的bin目录下执行如下命令,其中p后为端口号,jstatd.policy为policy文件
- ./jstatd -J-Djava.security.policy=jstatd.policy -J-Djava.rmi.server.hostname=192.168.1.103 -J-Djava.rmi.server.logCalls=false -p 20101
- #undertow配置
- server.undertow.io-threads = 16
- server.undertow.worker-threads = 256
- server.undertow.buffer-size = 1024
- server.undertow.buffers-per-region = 1024
- server.undertow.direct-buffers = true
-
- #datasource配置
- spring.datasource.druid.url = jdbc:mysql:loadbalance://10.0.245.107:3306,10.0.245.110:3306,10.0.245.111:3306/pcc_membership?user=pcc&password=!QAZ2wsx&useUnicode=true&characterEncoding=utf-8&useSSL=false&useOldAliasMetadataBehavior=true&autoReconnect=true&serverTimezone=GMT%2B8
- spring.datasource.druid.initial-size = 5
- spring.datasource.druid.min-idle = 5
- spring.datasource.druid.max-active = 2000
- spring.datasource.druid.max-wait = 60000
- spring.datasource.druid.time-between-eviction-runs-millis = 60000
- spring.datasource.druid.min-evictable-idle-time-millis =300000
- spring.datasource.druid.validationQuery= SELECT 1 FROM pcc_version
- spring.datasource.druid.test-while-idle = true
- spring.datasource.druid.test-on-borrow = false
- spring.datasource.druid.test-on-return= false
- spring.datasource.druid.pool-prepared-statements=true
- spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20