面试
文章平均质量分 73
Loren_云淡风轻
这个作者很懒,什么都没留下…
展开
-
HBase总结
HBase总结原创 2024-03-01 14:11:13 · 891 阅读 · 0 评论 -
Git实战(3)之merge与rebase区别
4,如果在使用rebase过程中不小心进行了commit操作导致最后git rebase --continue完后git push时仍然存在未push的老代码,此时有一种简单处理方式:删掉该本地分支,重新创建一个即可。git pull做了两个操作分别是‘获取’和合并。所以加了rebase就是以rebase的方式进行合并分支,默认为merge。1,采用merge和rebase后,git log的区别,merge命令不会保留merge的分支的commit。原创 2024-03-03 14:20:51 · 520 阅读 · 0 评论 -
Git实战(2)
git work flow原创 2024-03-03 14:20:15 · 513 阅读 · 0 评论 -
Mysql实战(2)之MySQL执行流程
- 交互式超时时间,如 数据库工具。-- 非交互式超时时间,如 JDBC程序。不适用于大量数据变更的场景,一般缓存交给第三方框架,如 MyBatis 或者 Redis这种来做。-- 查看最大连接数,mysql5.7 默认是151个,可设置最大连接数为 100000。Threads_running:非睡眠状态的连接数,通常指并发连接数。-- 查看mysql的超时时间,默认 28800秒,即 8小时。-- 查询mysql缓存是否开启,默认是关闭的。-- 查看mysql当前有多少连接。原创 2024-03-03 13:14:11 · 478 阅读 · 0 评论 -
Java面试(9)之数据库层性能优化
按照mysql官网,innodb建议不超过1017列,如果列数很大,考虑用mongodb,列数过大会导致分页。buffer pool、change buffer、log buffer与redo log交互。按照数据取模的问题在于,如果扩容了表,那么原来表里的数据就需要重新迁移会很麻烦.根据阿里开发手册: 单表行数超过500W或者单表数据容量超过2G。1, 一致性hash算法 0-(2的32 - 1)1.1 单表多大才考虑拆表?一, 表数据过大的解决方案。微信(朋友圈、我的相册)解决方案: 两阶段提交。原创 2024-03-10 07:30:00 · 359 阅读 · 0 评论 -
Java面试(8)
三次握手过程中容易引发SYN(DDOS)攻击,所谓SYN攻击是指: 攻击客户端,在短时间内伪造大量不存在的IP地址,向服务端不断发送syn包,服务端收到包后向客户端发送确认包,但由于客户端IP不存在,导致服务端需要不断重发包直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN被丢弃,目标系统运行缓慢直至崩溃.两者的区别主要在:受检的异常是由编译器强制执行的,必须捕获,用于指示不受程序控制的异常情况(例如,I/O 错误),而非受检的异常在运行时发生,用于指示编程错误(例如,空指针。原创 2024-03-09 07:15:00 · 747 阅读 · 0 评论 -
Java面试(7)之数据库mysql
如果只要redo log, 理论上是可以的,因为redo log记录了数据页的变化位置,数据恢复落盘会更容易. 但redo log 不具备归档的能力,循环写数据不完整,从历史发展来看,mysql 最开始的MYISAM存储引擎是没有redo log的,但都有bing log日志归档,方便做数据的全量崩溃恢复.简单来说,就是因为写入log buffer是顺序IO,而刷盘是需要寻址的,是随机IO,顺序IO的性能比随机IO高很多,所以提高了系统的性能,即采用了同步写缓存日志异步刷盘的方式来保证性能.原创 2024-03-09 07:00:00 · 908 阅读 · 0 评论 -
程序员职业赛道探索:如何找到你的专属迷宫
首先,你需要了解自己的兴趣和优势,选择与自己性格和能力相匹配的方向。其次,你需要关注行业的发展趋势和市场需求,选择具有广阔前景和稳定发展的领域。最后,你需要保持学习的热情和探索的勇气,不断提升自己的技能和能力。从网页到移动应用,从桌面软件到物联网设备,前端技术无处不在,为我们的生活带来无尽的便利和乐趣。程序员的职业赛道如同一座座迷宫,每个人都在寻找自己的出路。在这里,你需要有足够的耐心和勇气,去挖掘那些隐藏在代码深处的秘密。每个人的迷宫都是独一无二的,那么,你准备好踏上自己的探索之旅了吗?原创 2024-03-08 09:29:30 · 342 阅读 · 0 评论 -
Java面试之消息中间件
在死信队列中,可以为普通交换器绑定多个消息队列,假设绑定过期时间为5分钟,10分钟和30分钟,3个消息队列,然后为每个消息队列设置DLX,为每个DLX关联一个死信队列,当消息过期后,被转存到对应的死信队列中,然后投递给指定的消费者消费。DMA拷贝----------------------------》CPU拷贝------------》CPU拷贝------------------》DMA拷贝->拉去消息进行消费。a,b,c三个系统,a、b两个写入数据库成功了,c系统写库失败?使用分布式事务来控制。原创 2024-03-07 10:54:57 · 504 阅读 · 0 评论 -
Java面试(6)之微服务篇
可集成Springcloud getway,但需要注意的是,getway需要有注册中心支持,而dubbo仅支持zookepeer、nacos,而getway对于这两种都支持;另外,dubbo的传输协议除了tcp,目前支持了超过10多种传输协议。2, 通过定时心跳检测发现服务是否可用并注册到注册中心,第一次会从注册中心拉取服务列表存到本地缓存,服务下线或者上线时更新本地缓存文件。2, 当参与者进行到doCommit时,如果此时协调者发送了中断事务操作,但参与者不会中断事务还是会执行事务,导致最终数据不一致。原创 2024-03-08 08:00:00 · 867 阅读 · 0 评论 -
Java面试(5)
早期的webservice,现在热门的dubbo,都是RPC的典型.临时扩容. 一般消息积压是因为消费者端出现了故障导致未能及时消费消息,可以通过临时扩容MQ以及消费者端的方式将积压的消息迅速处理完,等到消息消费差不多后,在回滚到原有架构.重试机制+死信队列.如重试15次,这种方式可以降低消息丢失的概率,同时将消息消费成功的状态记录下来. 如果一直消费失败,则将消息丢到死信队列中,然后通过人工来进行手动处理.重试机制. 如重试三次,这种方式可以降低消息丢失的概率,同时将消息发送成功的状态记录下来.原创 2024-03-08 07:30:00 · 843 阅读 · 0 评论 -
Java面试(4)之 Spring Bean生命周期过程
5, BeanFactoryPostProcessor(底层采用AOP切面的方式可以对BeanDefination中存储的Bean进行修改、替换,也可以添加新的Bean对象)------------------------------------------------------------Bean生命周期简化版。3, 实例工厂方法方式(factory-bean指定bean的name,factory-method指定实例化方法)2, 静态工厂方法方式(factory-method指定实例化的静态方法)原创 2024-03-08 07:00:00 · 914 阅读 · 0 评论 -
Java面试(3)之 netty篇
2, 避免数据从JVM heap到C Heap的拷贝, 即在JVM层面,程序执行一个IO操作都需要先从JVM管理的堆内存复制到使用C malloc()或类似函数分配的Heap内存(堆外内存)才能触发系统调用,而netty省去了JVM堆内存到堆外内存的复制过程。1, 避免数据流经用户空间,即 A、B两个设备进行数据传输时,从A的内核空间读缓冲区直接到B的内核空间写缓冲区,不再经过A的用户空间缓冲区. netty实现的类是FileRegion类的transferTo()方法。原创 2024-03-07 08:00:00 · 799 阅读 · 0 评论 -
Java面试(2)之 多线程
也就是说新任务进来时,不会缓存,而是直接被调度执行该任务,如果没有可用线程,则创建新线程,如果线程数量达到maxPoolSize,则执行拒绝策略。由于该队列的近似无界性,因此使用该工作队列时,参数maxPoolSize其实是不起作用的。但是,IO优化中,这样的估算公式可能更适合: 最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目 线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。maximumPoolSize: 线程池最大线程数量。原创 2024-03-07 07:30:00 · 413 阅读 · 0 评论 -
Java面试(1)之 JVM篇
jhat(JVM Heap Analysis Tool): 是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看 jstack,用于生成java虚拟机当前时刻的线程快照。如果一个类接收到类加载的请求不会自己去加载,而是向上委托给父加载器直到顶层加载器进行加载,顶层加载器加载不了则再由子加载器加载,目的是为了防止对象重复,保证对象全局唯一.垃圾收集器一般都是针对堆上对象的回收,堆分为新生代、老年代;原创 2024-03-07 07:00:00 · 1602 阅读 · 0 评论 -
金三银四,程序员如何把握求职黄金期?
只要我们明确自己的求职目标,精心制作简历,充分准备面试,关注行业动态并扩大人脉资源,就一定能在这个关键的时期脱颖而出,找到心仪的职位。在这个程序员们翘首以盼的求职黄金期,如何让自己的简历在众多竞争者中脱颖而出,成为每个求职者心中的头等大事。通过参加行业活动、加入技术社群、与同行交流等方式,我们可以结识更多的业内人士,获取更多的求职信息和机会。我的职业发展方向是什么?在求职过程中,我们还要时刻关注行业动态,了解最新的技术趋势和市场需求。在面试前,我们要做好充分的准备,包括了解公司背景、职位需求、面试流程等。原创 2024-03-01 09:40:48 · 346 阅读 · 0 评论