摘要:
SpringCore Core组件一个重要组成部分就是定义了资源的访问方式。Core组件把所有资源都抽象成一个接口,这样,对于资源使用者来说,不需要考虑文件的类型。对于资源提供者来说,也不需要考虑如何将资源包装起来交给别人用(Core组件内所有的资源都可以通过InputStream来获取)。另外,C 阅读全文
摘要:
RDB RDB持久化是通过快照的方式,即在指定的时间间隔内将内存中的数据集快照写入磁盘。在创建快照之后,用户可以备份该快照,可以将快照复制到其他服务器以创建相同数据的服务器副本,或者在重启服务器后恢复数据。RDB是Redis默认的持久化方式。在配置文件中添加: save <seconds> <cha 阅读全文
摘要:
1、查找文件:find / -name filename.txt 2、查看一个程序是否运行:ps -ef|grep tomcat 3、查看文件,包含隐藏文件:ls -al 4、当前工作目录:pwd 5、复制文件包括其子文件到自定目录:cp -r sourceFolder targetFolder 6 阅读全文
摘要:
CPU利用率飙升 1、定位cpu利用率最高的进程 top 2、定位使用cpu最高的线程 top -Hp pid 3、线程id转化为16进制 printf '0x%x' tid 4、找到线程堆栈 jstack pid | grep tid 发现使用cpu最高的是业务线程 1、io wait 解决方法: 阅读全文
摘要:
常用的JVM调优的参数 -Xms2g:初始化堆大小为2g; -Xmx2g:堆最大内存为2g; -XX:NewRatio=4:设置年轻代和老年代的内存比例为1:4; -XX:SurvivorRatio=8:设置新生代Eden和Survior比例为8:2; -XX:+UseParNewGC:指定使用Pa 阅读全文
摘要:
线程状态 yield()只是使当前线程重新回到runnable状态 sleep()会让出cpu,不会释放锁 join()会让出cpu,释放锁 wait() 和 notify() 方法与suspend()和 resume()的区别在于wait会释放锁,suspend不会释放锁 wait() 和 not 阅读全文
摘要:
集合框架示意图 各个数据数据结构比较 Vector和ArrayList 1,vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。 2,如果集合中的元素的数目大于目前集合数组的长度时,vector 阅读全文
摘要:
Bean的生命周期 解决循环依赖 三级缓存 在Spring的DefaultSingletonBeanRegistry类中,你会赫然发现类上方挂着这三个Map: 1、singletonObjects 它是我们最熟悉的朋友,俗称“单例池”“容器”,缓存创建完成单例Bean的地方。 2、singleton 阅读全文