摘要:
今天遇到一个奇葩问题: 同样的项目,我启动报错 : 某个class文件找不到。。 查找maven 依赖也的确没有找到 对应的jar 包。 查找同事项目,可以看到该class对应的 jar 包 是 logback-core. 他是通过 logback-classic 依赖引入的。 我项目中的pom.x 阅读全文
摘要:
获取方式: 1. jdk 自带启动参数 -XX:+HeapDumpBeforeFullGC -XX:HeapDumpPath=/x/x 产生dump日志,然后用visualVm分析 2. jmap 命令(结合jps) jps -l 获取对应java 进程pid jmap -heap pid 查看 整 阅读全文
摘要:
1. 自定义了构造方法,默认的构造方法还会创建吗,为什么? 自定义了构造方法,则不会再提供隐藏的无参构造方法。 问题: 为什么java 在自定义构造方法后,不在提供隐藏的构造方法呢? 构造方法的作用是初始化成员变量,用户自定义了构造方法自然是像创建一个有特定初始值的对象,如果此时还默认提供隐式构造方 阅读全文
摘要:
2018.5.5 记录学习 1. 在内存运行的各个部分中,其中程序计数器、虚拟机栈、本地方法栈这三个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而执行进栈和出栈 操作,每个栈帧中分配多少内存基本上在类结构确定下来时就已知的。因此这几个区域的内存分配回收具有确定性。在方法结束和线程结束时 阅读全文
摘要:
1. java 内存区域 其中 : 方法区 和 堆 是所有线程共享的 , 其他是线程隔离的 1. 程序计数器 : 可以看做是当前线程所执行的字节码的行号指示器。 字节码解释器在工作时通过改变这个计数器来选取下一条需要执行的字节码指令。 由于java 的多线程是通过线程轮流切换来分配处理器执行时间的方 阅读全文
摘要:
1. 对象回收过程? 可达性分析算法: 如果一个对象从 GC Roots 不可达时,则证明此对象不可用。 通过一系列称为GC ROOTS的对象作为起点,从这些起点往下搜索,搜索走过的路径 称为引用链,当一个对象到GC ROOTS 没有任何引用链,我们判定这个对象是可回收的。。 在java 中,可作用 阅读全文
摘要:
1. spring bean 生命周期 1. 实例化一个bean ,即new 2. 初始化bean 的属性 3. 如果实现接口 BeanNameAware ,调用 setBeanName 4. BeanFactoryAware 调用 setBeanFactory 5. ApplicationCont 阅读全文
摘要:
中化技术部 2018.4.16 1. callable 和 thread 区别 实现Callable接口的线程能返回执行结果,而Runable 不可以 。 Callable 的call方法允许抛出异常。 由于Callable 可以返回执行结果,如果一个事情能分成多不去做,然后合并结果,就可以使用Ca 阅读全文
摘要:
1. 微服务设计原则: 单一职责, 服务自制,轻量级通信,接口明确 。 2. 服务注册和发现 : Eureka 3. 客户端负载均衡 Ribbon 4. 声明式http 客户端 Feign 5. 微服务容错 Hystrix 阅读全文
摘要:
1. 什么时候出现死锁,如何解决?mysql 引擎? 多个like or 查询sql如何优化? 资源竞争导致死锁,比如A B 同时操作两条记录,并等待对方释放锁。 优化sql, 加缓存,主从(如读写分离) , 分区, 垂直拆分(业务拆分分布式), 最后才考虑水平拆分分表。 什么是常量池? 常量池指的 阅读全文