随笔 - 221
文章 - 0
评论 - 57
阅读 -
162万
03 2019 档案
JVM的GC概述
摘要:名词解释 GC:Gabage Collection,指JVM堆内存区域的垃圾回收 Minor GC:年轻代垃圾回收,所有的Majar GC都会触发进程暂停,只是这个实际很短 Major GC:也叫Full GC,年老代垃圾回收 年轻代和年老代的GC策略是不一样的,年轻代一般采用的是复制算法。 Min
阅读全文
JVM工具jstat使用说明
摘要:输入:jstat -help得到以下帮助信息 option:操作(见下面的option说明) vmid:进程pid lines: interval:输出时间间隔,单位ms和s count:输出条目行数 输入:jstat -option得到以下选项 命令实际使用 统计列含义 S0C:第一个幸存者区(S
阅读全文
查看JVM内存使用状况
摘要:1、jps:查看本地正在运行的java进程和进程ID(pid) 2、jinfo pid,查看指定pid的所有JVM信息 1)jinfo -flags pid 查询虚拟机运行参数信息。 2)jinfo -flag name pid,查询具体参数信息,如jinfo -flag UseSerialGC 4
阅读全文
JVM常用配置参数说明
摘要:堆设置 -Xms256M:初始堆大小256M,默认为物理内存的1/64 -Xmx1024M:最大堆大小1024M,默认为物理内存的1/4,等于与-XX:MaxHeapSize=64M -Xmn64M:年轻代大小为64M(JDK1.4后支持),相当于同时设置NewSize和MaxNewSize为64M
阅读全文
CentOS下运行Java文件Error: Could not find or load main class
摘要:今天,因为测试拷贝一个JvmTest.java文件到CentOS虚机上运行,发现文件编译没有问题,但运行时却报错,如下图: Java代码如下: 解决方式:去掉java代码第一行package信息。 重新编辑后执行,代码执行成功
阅读全文
ArrayList与LinkedList
摘要:1、ArrayList 1)继承结构 2)ArrayList是数组存储结果,初始容量为0,添加第一个元素后容器为10,后面每次超过容量时,容量递增50%,每次扩容都需要产生新的数组,再把老的数据复制过去。 3)优缺点 优点:存取速度快 缺点:事先必须知道数组的长度、插入删除元素很慢、空间通常是有限制
阅读全文
Java获取本地IP地址和主机名
摘要:方式一:通过java.net.InetAddress类获取 输出: 这种方式获取到的主机名没啥问题,这种方式获取的主机名没啥问题,但获取到的IP地址却有待考量,如果一台机器有多个网卡,他获取的IP是谁的呢?事实上,上面输出的IP是我虚拟机IP地址,既不是我有线网卡的地址,也不是我无线网卡的地址。 方
阅读全文
Mybatis中#与$区别
摘要:#{}:使用 #{} 格式的语法会导致 MyBatis 创建 PreparedStatement 参数占位符并安全地设置参数(就像使用 ? 一样) ${}:使用 ${} 会在sql语句中插入一个不转义的语句,简单的进行文本替换。 #{} 能够有效的防止SQL注入的风险,${}也有重要的使用场景,如o
阅读全文
CST时区,MYSQL与JAVA-WEB服务器时间相差13个小时的问题
摘要:最近倒腾了一台阿里云主机,打算在上面装点自己的应用。使用docker安装了安装mysql后,发现数据库的存储的时间与java-web应用的时间差8个小时,初步怀疑是docker容器时区的问题。经过一系列研究,总算把docker容器的时区给调整过来。满怀欣喜的以为问题得到了解决,再次运行应用,我发现时
阅读全文
解决Docker容器时区不一致的问题
摘要:查看linux系统时区和docker容器时区 2者的时间差了8个小时 解决方案 1、利用Dockerfile创建镜像时。在Dockerfile中加入 2、容器创建时。加入时区挂载选项:-v /etc/localtime:/etc/localtime。实例: 3、容器已启动时。 以上均亲测试,良心保证
阅读全文
Docker安装mysql
摘要:第一种方式:从镜像市场安装。 1、查询镜像 2、下载镜像(实测过程中,下载镜像时经常卡住,多试几次就好了) 通过docker images命令查看本地镜像 3、创建并运行容器 参数说明: -p 3306:3306 将主机3306端口映射到容器3306端口 -e MYSQL_ROOT_PASSWORD
阅读全文
解决SpringMVC+Thymeleaf中文乱码
摘要:乱码效果截图 解决办法:在org.thymeleaf.templateresolver.ServletContextTemplateResolver和org.thymeleaf.spring5.view.ThymeleafViewResolver中都增加配置,注意:这2个bean都要配置 解决完后的
阅读全文
Docker创建Tomcat镜像
摘要:1、创建Dockerfile文件 Dockerfile内容 jdk-8u191-linux-x64.tar.gz和apache-tomcat-9.0.14.tar.gz必须在Dockerfile文件的同一个目录下。 2、创建镜像(最后的一个点不要丢掉) 3、创建并运行容器 本人亲验,良心保证
阅读全文
Docker容器中找不到vim命令
摘要:docker容器中,有的并未安装vi和vim,输入命令vim,会提示vim: command not found(如下图)。此时我们就要安装vi命令 执行命令:apt-get update 执行命令:apt-get install vim -y 说明: 1、本来只想装个vi,奈何vi死活装不上,但v
阅读全文
CentOS安装Docker
摘要:1、安装需要的包 2、添加docker仓库 3、查看可安装的docker版本 4、安装docker 5、启动和关闭docker 6、查看docker版本 7、设置开机启动和取消开机启动 8、设置国内镜像 修改etc/docker目录的daemon.json文件 添加如下信息: 加载配置后重启: 官方
阅读全文
quartz的job怎么获取Spring上下文
摘要:第一步、在org.springframework.scheduling.quartz.SchedulerFactoryBean对象中注入applicationContextSchedulerContextKey 注入applicationContextSchedulerContextKey对象后,S
阅读全文
CopyOnWriteArrayList&Collections.synchronizedList()
摘要:1、ArrayList ArrayList是非线性安全,此类的 iterator() 和 listIterator() 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出
阅读全文
Java线程池ThreadPoolExecutor&Executors
摘要:一、先看看传统的开启线程。 new Thread(new Runnable() { @Override public void run() { } }).start(); 缺点: 1、每次new Thread新建对象性能差。 2、线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统
阅读全文
mysql查看和修改密码策略
摘要:8.X版本: 57版本: 密码策略的所有参数: validate_password.policy(校验规则),取值范围[0,1,2],默认值1。0(LOW):只校验长度;1(MEDIUM):校验长度、大小写和特殊字符;2(STRONG):校验长度、大小写、特殊字符和dictionary_file 更
阅读全文
CentOS下安装MYSQL8.X并设置忽略大小写
摘要:安装 在官网上下载:mysql80-community-release-el7-2.noarch.rpm。安装方式与5.7基本相同。详细安装过程见:CentOS下安装mysql5.7和mysql8.x。 设置忽略大小写 mysql安装完在启动前修改/etc/my.cnf文件,添加配置:lower_c
阅读全文
Spring整合Hystrix
摘要:1、添加maven依赖 2、配置切面 3、编写controller类,并添加注解 4、在webapp目录下添加fallback.html、success.html文件 5、访问http://127.0.0.1:8080/spring-hystrix-demo/test?time=0,浏览器正常进入s
阅读全文
AtomicInteger类的使用
摘要:先看一段代码 程序执行结果 Num类中的increment方法并不是线程安全的,所以目标结果并不是期望的1000000。为了保证计数的准确性,我们需要在increment方法上加上关键字synchronized 程序执行结果 目标结果与期望相同,但这是否是最好的方式呢?答案是否,我们可以使用java
阅读全文
JAVA设计模式-单例模式
摘要:方式一:适合单线程模式(不推荐) 方式二:没有延迟加载(不推荐) 方式三:不适合高并发(不推荐) 方式四:双重检测(推荐) 方式五:推荐 学了Java多年,一直都是用方式一、方式二和方式三,今天才发现方式四,百度后才知道方式五。
阅读全文
Redis分布式锁实例
摘要:maven依赖 代码实现 有兴趣的同学可以参考:https://www.cnblogs.com/linjiqin/p/8003838.html,这个讲解比较清楚。
阅读全文
关于JAVA的一些知识点
摘要:1、java.lang.Runtime.getRuntime().availableProcessors() Returns the number of processors available to the Java virtual machine;返回JVM上可用的CPU个数
阅读全文
使用javassist进行动态编程
摘要:今天在研究dubbo时,发现一个新的知识点,可以使用javassist包进行动态编程,hibernate也使用该包进行编程。晚上百度了很多资料,将它的特性以代码的形式展现出来。 执行上面代码输出结果为: 说明: $0,$1,$2:分别代表this,第一个参数,第二个参数 $r:方法返回值的类型。 $
阅读全文
JAVA的SPI简单应用
摘要:最近在研究dubbo时,发现了JAVA的SPI特性。SPI的全名为Service Provider Interface,是JDK内置的一种服务发现机制。 具体实现: 1、定义一个接口 2、添加几种实现 3、在META-INF/services/com.zhi.demo.IShape文件添加信息 4、
阅读全文