标签: JVM

老者Java,奋战一线

老者Java,奋战一线

Java已经诞生20多年了,依然是企业级开发中使用最广泛的语言,也是挨骂最多的语言。Java广受批评的四个缺点是:性能差、内存消耗大、GUI弱、代码啰嗦,我们应该如何看待这几个问题呢?在微服务的背景下,提倡围绕业务能力而非技术来构建应用,允许由不同的语言构建应用程序。一个超大的集群,往往有上万个微服务的容器在运行。为了更有效率的管理容器,必须对微服务提几点要求:镜像体积小、内存消耗小、启动速度快,这些却都是Java的弱项。

Java面试题(8)- 虚拟机

Java面试题(8)- 虚拟机

整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:说说JVM的内存结构;如何监控和诊断JVM堆内和堆外内存使用;如何查看JVM的内存使用情况;常用的JVM配置和调优参数都有哪些;如何用Java分配一段连续的1G的内存空间;Java为什么存在内存泄露呢;内存溢出是怎么回事,请举例说明;如何避免内存溢出呢;JVM为什么需要GC;JVM如何确定垃圾,垃圾回收算法有哪几种; GC收集器有哪些。

彻底理解协程

彻底理解协程

协程不是操作系统的底层特性,系统感知不到它的存在。它运行在线程里面,通过分时复用线程的方式运行,不会增加线程的数量。协程也有上下文切换,但是不会切换到内核态去,比线程切换的开销要小很多。每个协程的体积比线程要小得多,一个线程可以容纳数量相当可观的协程。在IO密集型的任务中有着大量的阻塞等待过程,协程采用协作式调度,在IO阻塞的时候让出CPU,当IO就绪后再主动占用CPU,牺牲任务执行的公平性换取吞吐量。