随笔分类 -  面试问题

如何获取堆的dump 的信息,如何分析
摘要:获取方式: 1. jdk 自带启动参数 -XX:+HeapDumpBeforeFullGC -XX:HeapDumpPath=/x/x 产生dump日志,然后用visualVm分析 2. jmap 命令(结合jps) jps -l 获取对应java 进程pid jmap -heap pid 查看 整 阅读全文

posted @ 2018-05-15 19:50 远方的人 阅读(2153) 评论(0) 推荐(0)

java 构造方法
摘要:1. 自定义了构造方法,默认的构造方法还会创建吗,为什么? 自定义了构造方法,则不会再提供隐藏的无参构造方法。 问题: 为什么java 在自定义构造方法后,不在提供隐藏的构造方法呢? 构造方法的作用是初始化成员变量,用户自定义了构造方法自然是像创建一个有特定初始值的对象,如果此时还默认提供隐式构造方 阅读全文

posted @ 2018-05-08 20:12 远方的人 阅读(835) 评论(0) 推荐(0)

垃圾回收
摘要:2018.5.5 记录学习 1. 在内存运行的各个部分中,其中程序计数器、虚拟机栈、本地方法栈这三个区域随线程而生,随线程而灭。栈中的栈帧随着方法的进入和退出而执行进栈和出栈 操作,每个栈帧中分配多少内存基本上在类结构确定下来时就已知的。因此这几个区域的内存分配回收具有确定性。在方法结束和线程结束时 阅读全文

posted @ 2018-05-05 15:19 远方的人 阅读(152) 评论(0) 推荐(0)

java 内存, 类加载g
摘要:1. java 内存区域 其中 : 方法区 和 堆 是所有线程共享的 , 其他是线程隔离的 1. 程序计数器 : 可以看做是当前线程所执行的字节码的行号指示器。 字节码解释器在工作时通过改变这个计数器来选取下一条需要执行的字节码指令。 由于java 的多线程是通过线程轮流切换来分配处理器执行时间的方 阅读全文

posted @ 2018-04-24 18:36 远方的人 阅读(213) 评论(0) 推荐(0)

对象回收过程?线程池执行过程? map原理?集合类关系?synchronized 和 volatile ? 同一个类的方法事务传播控制还有作用吗?java 锁
摘要:1. 对象回收过程? 可达性分析算法: 如果一个对象从 GC Roots 不可达时,则证明此对象不可用。 通过一系列称为GC ROOTS的对象作为起点,从这些起点往下搜索,搜索走过的路径 称为引用链,当一个对象到GC ROOTS 没有任何引用链,我们判定这个对象是可回收的。。 在java 中,可作用 阅读全文

posted @ 2018-04-23 21:56 远方的人 阅读(266) 评论(0) 推荐(0)

spring bean 生命周期和 ? 作用域? spirng bean 相互依赖? jvm oom ? jvm 监控工具? ThreadLocal 原理
摘要:1. spring bean 生命周期 1. 实例化一个bean ,即new 2. 初始化bean 的属性 3. 如果实现接口 BeanNameAware ,调用 setBeanName 4. BeanFactoryAware 调用 setBeanFactory 5. ApplicationCont 阅读全文

posted @ 2018-04-17 22:36 远方的人 阅读(162) 评论(0) 推荐(0)

callable与runable区别?switch char ?sql只查是否存在,sql复制表 ?反射 ? spring mvc 和spring 上下文区别?
摘要:中化技术部 2018.4.16 1. callable 和 thread 区别 实现Callable接口的线程能返回执行结果,而Runable 不可以 。 Callable 的call方法允许抛出异常。 由于Callable 可以返回执行结果,如果一个事情能分成多不去做,然后合并结果,就可以使用Ca 阅读全文

posted @ 2018-04-16 20:50 远方的人 阅读(174) 评论(0) 推荐(0)

什么时候出现死锁,如何解决?mysql 引擎? 多个like or 查询sql如何优化?什么是常量池?for条件执行顺序
摘要:1. 什么时候出现死锁,如何解决?mysql 引擎? 多个like or 查询sql如何优化? 资源竞争导致死锁,比如A B 同时操作两条记录,并等待对方释放锁。 优化sql, 加缓存,主从(如读写分离) , 分区, 垂直拆分(业务拆分分布式), 最后才考虑水平拆分分表。 什么是常量池? 常量池指的 阅读全文

posted @ 2018-04-10 16:04 远方的人 阅读(243) 评论(0) 推荐(0)

为什么要用jvm .
摘要:挚享科技 2018.4.8 运行java程序字节码,实现跨平台。。 Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成 在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 阅读全文

posted @ 2018-04-08 22:00 远方的人 阅读(174) 评论(0) 推荐(0)

事务ACID如何定义,事务隔离性解决的问题
摘要:挚享科技 2018.4.8 事务的四个特性: 1. 原子性: 同一个事务的多个操作,要么都成功,要么全部失败回滚。 2. 一致性: 事务必须确保数据库从一个一致性状态变换为另一个一致性状态。 其实就是操作完成后数据库仍然满足完整性约束。比如ab 工500,转账后合计应该还是500. 3. 隔离性 : 阅读全文

posted @ 2018-04-08 21:54 远方的人 阅读(196) 评论(0) 推荐(0)

导航