Java
文章平均质量分 63
数据搜集者
这个作者很懒,什么都没留下…
展开
-
如何保证单机保证3w tps 访问量?
如果一个业务流程无法处理完的话,那么请求就会出现堆积现象,堆积过多就会出现OOM,内存溢出了...所以我个人感觉这个单机3W同步处理的优化是不符合现实的,只能从业务上去处理,尽量把同步的业务逻辑改成异步的业务逻辑,即使改成异步的业务逻辑,虽然能够支撑住3w的tps,但是因为服务的处理速刷无法达到3wtps的处理速度,那么最终会造成内存的不断消耗,最终导致OOM的出现。听到这个问题,第一反应有点蒙,想成了3w的并发量了,想了一下,目前的容器比如tomcat的最大并发量也就几千就扛不住了...原创 2023-10-02 17:41:40 · 34 阅读 · 0 评论 -
Java面试题(三)
意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。睡眠时,释放互斥锁。当睡眠时间到了,会解除阻塞,进行可运行状态,等待 CPU 的到来。原创 2023-10-02 17:29:38 · 17 阅读 · 0 评论 -
Java面试题(二)
即便是同样的字节代码,被不同的类加载器加载之后所得到的类,也是不同的。实际的情况可能更加复杂,比如 Java 字节代码可能是通过工具动态生成的,也可能是通过网络下载的。Java 虚拟机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程序。而这个过程,我们编写的 Java 程序没有做任何改变,仅仅是通过 JVM 这一 “中间层” ,就能在不同平台上运行,真正实现了 “一次编译,到处运行” 的目的。原创 2023-10-02 17:21:38 · 17 阅读 · 0 评论 -
Java面试题
④从利用效率来看,ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。③当对数据进行增加和删除的操作时(add和remove操作),LinkedList比ArrayList的效率更高,因为ArrayList是数组,所以在其中进行增删操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。数组,查找快,插入删除慢。原创 2023-10-02 17:16:19 · 22 阅读 · 0 评论