摘要:
//得到指定日期(几天前/几天后)整数往后推,负数往前移动private Date getAppointDay(int num) throws ParseException { DateFormat dateFormat = new SimpleDateFormat(); String format 阅读全文
摘要:
本文提纲 一、缓存的应用场景 二、更新缓存的策略 三、运行 springboot-mybatis-redis 工程案例 四、springboot-mybatis-redis 工程代码配置详解 运行环境: Mac OS 10.12.x JDK 8 + Redis 3.2.8 Spring Boot 1 阅读全文
摘要:
面向对象 01、构造器参数太多怎么办? 如果参数很多,会导致构造方法非常多,拓展性差,代码难编写,且难以看懂。 用JavaBeans模式, get和set 一行构造编程多行代码实现,需要使用额外机制确保一致性和线程安全。 用builder模式, 1、5个或者5个以上的成员变量 2、参数不多,但是在未 阅读全文
摘要:
JVM调优的本质: 并不是显著的提高系统性能,不是说你调了,性能就能提升几倍或者上十倍,JVM调优,主要调的是稳定。如果你的系统出现了频繁的垃圾回收,这个时候系统是不稳定的,所以需要我们来进行JVM调优,调整垃圾回收的频次。 GC调优原则 调优的原则 1、 大多数的java应用不需要GC调优 2、 阅读全文
摘要:
Class文件结构 计算机只认识0和1,这个称之为本地机器NativeCode Jvm的无关性 与平台无关性是建立在操作系统上,虚拟机厂商提供了许多可以运行在各种不同平台的虚拟机,它们都可以载入和执行字节码,从而实现程序的“一次编写,到处运行” https://www.oracle.com/tech 阅读全文
摘要:
内存溢出 内存溢出的原因:程序在申请内存时,没有足够的内存空间 栈溢出 方法死循环递归调用(StackOverflowError)、不断建立线程(OutOfMemoryError) 堆溢出 不断创建对象,分配对象大于最大堆的大小(OutOfMemoryError) 直接内存 分配的本地内存大小大于J 阅读全文
摘要:
Java与C++等语言最大的技术区别:自动化的垃圾回收机制(GC) 为什么要了解GC和内存分配策略 1、面试需要 2、GC对应用的性能是有影响的; 3、写代码有好处 栈:栈中的生命周期是跟随线程,所以一般不需要关注 堆:堆中的对象是垃圾回收的重点 方法区/元空间:这一块也会发生垃圾回收,不过这块的效 阅读全文
摘要:
未来的Java技术 模块化:OSGI(动态化、模块化),应用层面就是微服务,互联网的发展方向 混合语言:多个语言都可以运行在JVM中,google的Kotlin 成为了 Android 的官方语言。Scala(Kafka) 多核并行:CPU从高频次转变为多核心,多核时代。JDK1.7引入了Fork/ 阅读全文
摘要:
虚拟机中的对象 对象的分配 虚拟机遇到一条new指令时:根据new的参数是否能在常量池中定位到一个类的符号引用,如果没有,说明还未定义该类,抛出ClassNotFoundException; 1)检查加载 先执行相应的类加载过程。如果没有,则进行类加载 2)分配内存 根据方法区的信息确定为该类分配的 阅读全文