Java面试
文章平均质量分 68
Java面试
TPBoreas
我就随便写写
展开
-
数据量比较大 | 分库分表?
分库分表是为了解决传统数据库,单表数据量较大而导致的吞吐量下降的一种有效手段,但是不建议无脑的分库分表,分库分表的方案设计,要考虑。,把那些更新和查询,不频繁的数据,单独隔离出来,放到历史表,或者离线数仓之中,减少表中的数据量,来提升效率。方案,单表2000W,做好索引,减少多表Join,适量的字段冗余,其实大多数情况下能扛得住的,,把能接受延迟的、数据变化实时性要求不是这么高的,放到本地换成或者分布式缓存当中。,将数据数据放到不同的节点上。,放不同的分区,不同的表。优化、缓存、归档、分区。原创 2024-05-01 14:12:52 · 204 阅读 · 0 评论 -
面试常见 | 项目上没有亮点,如何包装?
首先不管你做的啥项目,全世界不可能只有你自己在做,比如WMS、TMS、SAAS、商城、支付、风控等,有些问题,你的项目上可能没遇到过,别人不一定。别人遇到了,你学会了,不就相当于你遇到了吗,下次诸如此类问题,你也可以提供一些行之有效的解决方案。给大家两个搜索的关键词和关键性的网站,首先把你的项目写上,比如商城会员支付等等,选择性的加上(架构演进、解决方案、总结、设计、解密等)几个词,然后在后面加上QCom和archsummit这两个大会的名字,你就会搜到很多公司大佬分享的文章。原创 2024-05-01 12:49:48 · 533 阅读 · 0 评论 -
经典面试题 | 单核CPU支持Java多线程吗?
先悉知几个概念1、相应时间(Response Time)第一次发出请求到收到系统完整响应数据所需的时间,相应时间是反应系统性能的总要指标,直接反应了系统响应的快慢2、吞吐量(Throughput)单位时间内系统所处理的用户请求,F = VU * R / TF = 吞吐量,VU = 虚拟用户个数,R = 每个虚拟用户发出的请求数,T = 性能测试所用的时间3、每秒请求数(QPS)服务器在一秒内处理了多少个请求,主要用来表示“读”请求4、每秒事务数(TPS)服务器每秒处理的事务数。原创 2024-05-01 06:59:37 · 818 阅读 · 0 评论 -
每天一点高薪小技巧 | Java面试
DI就是依赖注入,把Spring框架创建好的对象注入到使用的地方,我们项目中都是用@AutoWired按照类型注入的方式,直接获取到这个类的对象。tiveMQ他发消息的方式有两种,一种是推拉式的Queue,还有一种是发布式的(Topic),区别在于推拉式的发送,只允许有一个消费端进行消费,如果不消费的话就一直存在队列中,订阅式的是发送一个消息,可以有多个消费端,如果没有消费的话,他也不会一直保留到消息队列中,这两种我开发的时候都用过.Rabbit-MQ有一个ACK消息确认机制,用起来比较方便一些。原创 2024-04-22 07:07:13 · 929 阅读 · 2 评论 -
面试高频问题 | 线程池
带缓冲线程池,从构造看核心线程数为0,最大线程数为Integer最大值大小,超过0个的空闲线程在60秒后销毁,SynchronousQueue这是一个直接提交的队列,意味着每个新任务都会有线程来执行,如果线程池有可用线程则执行任务,没有的话就创建一个来执行,线程池中的线程数不确定,一般建议执行速度较快较小的线程,不然这个最大线程池边界过大容易造成内存溢出。很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用。原创 2024-04-21 16:29:03 · 1395 阅读 · 0 评论 -
2024 java面试题
三级缓存,简单来说,A创建过程中需要B,于是A将自己放到三级缓存里面,去实例化B,B实例化的时候发现需要A,于是B先查一级缓存,没有,再查二级缓存,还是没有,再查三级缓存,找到了A然后把三级缓存里面的这个A放到二级缓存里面,并删除三级缓存里面的A,B顺利初始化完毕,将自己放到一级缓存里面(此时B里面的A依然是创建中状态)然后回来接着创建A,此时B已经创建结束,直接从一级缓存里面拿到B,然后完成创建,并将A放到一级缓存中。如果是对象,则当前对象(对象的地址)不可修改,但是对象里面的变量不受影响,可以修改。原创 2024-03-10 11:12:42 · 1358 阅读 · 0 评论