java 双亲委派与类加载器-编程思维

JAVA 双亲委派与类加载器 双亲委派 虚拟机在加载类的过程中需要使用类加载器进行加载,而在Java中,类加载器有很多,那么当JVM想要加载一个.class文件的时候,到底应该由哪个类加载器加载呢? 这就不得不提到”双亲委派机制”。 首先,我们需要知道的是,Java语言系统中支持以下4种类加载器: Bootstrap ClassLoader 启动类加载器 Extention ClassLoad

秒杀商品设计-编程思维

秒杀商品设计 前端限制 前端控制,不能重复点击 精简sql 典型的一个场景是在进行扣减库存的时候,传统的做法是先查询库存,再去update。 这样的话需要两个sql,而实际上一个sql我们就可以完成的。 可以用这样的做法: update miaosha_goods set stock =stock-1 where goos_id ={#goods_id} and version = #{ve

jvm 逃逸分析 同步缺省 标量替换 栈上分配_hongdada-编程思维

简介 Java 程序运行时,JVM 会将 .class 字节码转换成机器能够识别的指令,指令转换过程会产生耗时,延缓程序的运行速度,为了解决这种问题出现了「JIT(即时编译)」技术。JIT 主要有两个功能: 缓存「Hot Spot Code(热点代码:频繁运行的方法或代码块)」对应的机器指令,方便下次调用。 代码编译优化。 而在 JIT 的代码优化过程中,最重要的就是「逃逸分析(Escape

zookeeper 问题收集_hongdada-编程思维

ZK 明明有了有序的指令队列,为什么还要用 zxid来辅助排序? 没理解这题目 ZAB 协议要求保证事务的顺序,因此必须将每一个事务按照 ZXID 进行先后排序然后处理 ZK的Watcher机制 监听工作原理:ZooKeeper 的 Watcher 机制主要包括客户端线程、客户端 WatcherManager、 Zookeeper 服务器三部分。客户端在向 ZooKeeper 服务器注册的同时,

【转载】详解 seata at 模式事务隔离级别与全局锁设计_hongdada-编程思维

我们知道 Seata 的事务是一个全局事务,它包含了若干个分支本地事务,在全局事务执行过程中(全局事务还没执行完),某个本地事务提交了,如果 Seata 没有采取任务措施,则会导致已提交的本地事务被读取,造成脏读,如果数据在全局事务提交前已提交的本地事务被修改,则会造成脏写。 由此可以看出,传统意义的脏读是读到了未提交的数据,Seata 脏读是读到了全局事务下未提交的数据,全局事务可能包含多个本

【转载】阿里经典面试题:消息队列的消费幂等性如何保证_hongdada-编程思维

消息中间件是分布式系统常用的组件,无论是异步化、解耦、削峰等都有广泛的应用价值。我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。 举个例子,一个消息M发送到了消息中间件

腾讯暑期日常实习前端面试_windrunnermax-编程思维

腾讯暑期日常实习前端面试 我是23届毕业的,想找个暑假的实习,但是今年是21年所以只能走日常实习,看了看没有多少公司要日常实习的,只有腾讯、字节、小米、美团招日常实习,所以我先投了腾讯和美团试试,这次是腾讯的IEG部门捞的我,对没错我就是那个填无意向的憨憨。 一面 一面约的时间是在2021-03-09 15:00,面试面了51 min,本身自我感觉良好的,写了一年博客,基础都学个七七八八,但是!

美团暑期日常实习前端面试_windrunnermax-编程思维

美团暑期日常实习前端面试 这次面的是美团基础研发平台的大数据分析部门,好家伙这个名字一听就很牛逼,其实我早就投递简历了,但是一直没做笔试,所以这个流程就走不下去,上个周六做了做笔试,在此点名表扬美团,0 AC都给面试机会了哈哈。 一面 一面约的时间是在2021-03-29 17:00,面试面了40 min,没想到我笔试0 AC都有面试机会,并且约面试约得这么快,大中午的一个电话就打来了约面试,一

字节跳动暑期日常实习前端面试_windrunnermax-编程思维

字节跳动暑期日常实习前端面试 这次面试的字节跳动的幸福里部门,本来我是不想面字节跳动的,毕竟字节的算法难度是公认的高,而这又是我的薄弱环节哈哈,不过群里加了个老哥非得让我试试,那我就试试吧哈哈哈,不过听说电商和教育部门更简单一些,有点上了贼船的感觉。 一面 一面约的时间是在2021-03-31 18:00,面试面了43 min,这个时间点就很尴尬,我面完肯定就差不多七点了,食堂就没饭了,身为山科

百度实习生前端面试面经_windrunnermax-编程思维

百度实习生前端面试 这次面试的是ACG百度智能云事业群产业创新业务部的前端实习岗位,当时主要是浩泽老哥在群里招呼人了,我就投了个简历,看看寒假可以去实习。 一面 一面是在2020.11.10 15:00,面试小姐姐很漂亮哈哈,不过还是很紧张,毕竟这么久没有和面试官对线了。面试大概是50多分钟,面试小姐姐的电脑没电了,最后一个柯里化的编程题我写了之后发给小姐姐的,好家伙老紧张了,按键盘都按不明白了

interview que_快鸟-编程思维

百度: MySQL InnoDB存储的文件结构 索引树是如何维护的? 数据库自增主键可能的问题 Redis的并发竞争问题如何解决了解Redis事务的CAS操作吗 分析线程池的实现原理和线程的调度过程 动态代理的几种方式 Spring AOP与IOC的实现 为什么CGlib方式可以对接口实现代理? RMI与代理模式 Dubbo的底层实现原理和机制 描述一个服务从发布到被消费的详细过程 算法方面考

inteview que2_快鸟-编程思维

1、spring的缓存,mybatis缓存a、基于注解的方式 三种注解b、mybatis分为一级session和二级缓存mapperc、采用LRU算法(近期最少使用) http://www.iteye.com/topic/1112327/ 对缓存并发同步采用jdk的ReadWriteLock 读写锁源码:mapper调用、代理mapper调用、mapper的方法、sqlsession、缓存(二级

实际经验+沟通表达能力强,协作能力强,这些甚至比专业技能更重要_littlevigra-编程思维

案例三,回答问题时,话很多,但没法说到点子上。     比如我问,你在数据库层面有过哪些实际的优化经验,同时再强调下,是实际经验,而不是理论经验。     这时如果候选人开门见山地说,没项目经验,但看过一些技术文档,随后再说下看到的一些要点,这样最多就是让面试官感觉这部分能力有些欠缺。     我们也知道,候选人不可能十全十美,在某个方面没有实际经验,这很正常,更况且有时候我们问的是加分项,比如

java基础部分二_hongdada-编程思维

1.&与&& &位运算符,&&逻辑与运算符&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式 2.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?  在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Intege

网路通信问题收集_hongdada-编程思维

1.TCP/IP协议中三次握手机制具体是什么?窗口滑动机制的作用和基本机制是什么? 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(

索引,复合索引_hongdada-编程思维

这里只看BTree索引,至于哈希索引和全文索引本文暂不讨论。 前言: 索引是有效使用数据库的基础,但你的数据量很小的时候,或许通过扫描整表来存取数据的性能还能接受,但当数据量极大时,当访问量极大时,就一定需要通过索引的辅助才能有效地存取数据。一般索引建立的好坏是性能好坏的成功关键。 使用InnoDb作为数据引擎的Mysql和有聚集索引的SqlServer的数据存储结构有点类似,虽然在物理层面,他

java 面试题收集_hongdada-编程思维

1.java有哪些常用的包 java.langjava.utiljava.iojava.netjava.sqljava.awtjava.text java.math   2.Java接口修饰符final java的接口可以用public,abstract,但是abstract可以省略,不可以用private,final。 3.Mybatis的Id回写,批量操作  id回写: <inser

java 面试题基础概念收集_hongdada-编程思维

问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”。 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。 问题:如果要重写一个对象的equals方法,还要考虑什么? 答案:hashCode。 问题:Java的”一次编写,处处运行”是如何实现的? 答案:Java

java 面试题基础概念收集(高级)_hongdada-编程思维

JVM垃圾回收: GC又分为 minor GC 和 Full GC (也称为 Major GC )。Java 堆内存分为新生代和老年代,新生代中又分为1个 Eden 区域 和两个 Survivor 区域。 那么对于 Minor GC 的触发条件:大多数情况下,直接在 Eden 区中进行分配。如果 Eden区域没有足够的空间,那么就会发起一次 Minor GC;对于 Full GC(Major G