随笔分类 - 面试
摘要:1、eden和survivor不够时触发young gc 2、老年代不够,触发full gc、mix gc、 3、元数据区不够 触发full gc 4、system.gc()但是具体执行时机是无法确定的,通常sleep一下让出cpu,增加gc概率
阅读全文
摘要:因为相同字符串在常量池,容易获取相同对象锁,造成阻塞
阅读全文
摘要:1、同类方法调用,因为同类方法调用时是未增强的方法 2、异常被捕获
阅读全文
摘要:事务是一组操作,有四个特性(acid),原子性(一起成功,一起失败)、一致性(事务的执行结果符合串行执行的结果)、隔离性(事务之间互不影响)、持久性(要有持久存储数据的介质)。 一般任何包含事务操作的软件,操作日志有很重要的保证功能,通常数据写入和日志写入是多个线程执行的,如果数据写入时出错,可以通
阅读全文
摘要:Class.class 的形式会使 JVM 将使用类装载器将类装入内存(前提是类还没有装入内存),不做类的初始化工作,返回 Class 对象。Class.forName() 的形式会装入类并做类的静态初始化,返回 Class 对象。getClass() 的形式会对类进行静态初始化、动态初始化,返回引
阅读全文
摘要:使用的jdbc api是不一样的,#使用的是preparedStatement能一定程度防止sql注入 不能混用,否则会当成$拼写sql 不能杜绝sql注入,因为有些符号放在sql引擎那里执行还是会产生转义,依然 可以注入
阅读全文
摘要:java进行类加载时会先委托父类加载器进行加载 为什么这样 1、确保类唯一性,防止重复加载,因为从底层往上加载你肯定先使用父类加载器 2、保证核心api不被篡改,因为你写一个跟java核心api一摸一样的类,还使用自定义加载器,就会把java自己写的类改掉。(除非你连jvm一起改)
阅读全文
摘要:这种问题每个人经历不一样一般回答是不一样的, 通常要回答出两点,一个提现技术,二要提现设计上的优化思路,(其实这种问题已经有点想骗作业的嫌疑了,只不过没有指明具体场景)可以分两次回答两个不同场景,如果偏管理的话,还需要回答第三点对项目的总体设计及管理思想。 一般回答分布式的细节操作比较加分,比如我自
阅读全文
摘要:基本数据结构 数组、链表和红黑树,链表长度大于等于8转化红黑树,链表长度小于等于6退化成链表,中间隔一个7是为了防止数据结构频繁转化,扩容因子0.75 初始化方法 put方法 第一步封装Node节点,key和value都在里面 否则 直接hash运算得到数组下标,把值放进去 如果 达到扩容的阈值,先
阅读全文
摘要:qps 每秒查询数量 tps 每秒事务数量 吞吐量 runnerGo和metersphere
阅读全文
摘要:饿汉式 直接public static final SingleInstance instance = new SingleInstance 懒汉式 double check 加 volatile 延迟加载(属于懒汉式) 静态内部类的方式,这个也行且属于懒汉是因为java一定会等类加载并且这种加载本
阅读全文
摘要:1、它其实spring公布的微服务开发的一套模式或者说规范 2、比如通常来说,它规定包含 注册中心、网关、配置中心这套基本组件, 它还需要rpc远程调用组件包括feign、dubbo、grpc等等,以及他们的负载均衡策略和熔断措施 3、它还可以包含健康度监控、性能监控和链路追踪等等
阅读全文
摘要:使用区别 stram流无法中断和跳过,可以抛异常中断但是不优雅,可以filter实现类似跳过,但其实是靠判断(判断还是会走完整个循环体),不是continue 引入外部变量必须是final的 实际上是逆反了面向对象思想的编码方式
阅读全文
摘要:1、快速可搭建的脚手架,少量配置,约定优于配置,不用像ssm那样增加复杂的配置文件 2、这种方式使程序员更加集中于业务代码的编写,而不用关注部署和容器配置的问题 3、约定优于配置也不是任何场景都适用,主要还是免去了servlet的配置 4、内置tomcat直接启动
阅读全文
摘要:核心线程数 初始化的时候不会创建,第一个任务过来才按照这个参数生成线程 最大线程数 阻塞队列满了才会使用它,超过它触发拒绝策略 空闲时间 超过空闲时间,线程数降低到核心数目 时间单位 空闲时间的单位 线程工厂 一般默认,可以指定线程名称、线程组之类的参数 阻塞队列 一般需要修改为有界队列,超过核心线
阅读全文
摘要:感觉网上很多博客对这个的解释实在太官方了,也没说为什么一定要实现序列化接口。 去看看rpc框架源码,或者java网络编程或者向磁盘进行序列化就知道了。 首先这是个标记接口,就是用来告诉程序某某对象是可序列化对象,像dubbo框架,要传输对象就必须序列化。 网络编程已经告诉你了,想要向另一个网络输出的
阅读全文
摘要:第一种,@EnbaleConfigurationProperties、@ConfigurationProperties组合 第二种,@Value 第三种,spring提供的Environment对象 第四种,直接读配置文件进行分析
阅读全文
摘要:有一篇讲了mvcc的基本原理:https://www.cnblogs.com/benjerry/p/17551031.html 这样就知道最简单的死锁产生原因,就是有两个并发事务,事务1先更新a表某行数据,再更新b表某行数据,事务2先更新b表同行数据,再更新a表同行数据,就非常有可能死锁了。这种易检
阅读全文
摘要:线程本地变量, 基本原理 底层维护一个ThreadLocalMap,key是线程引用,value是我们要设置的变量,使用时需要记得remove防止内存泄露
阅读全文