Java筑基
Java基础夯实
记忆之城、
Android开发之路点滴
展开
-
Java线程池的灵魂拷问,这些你都会吗?
问题1:为什么要使用线程池? 传统的创建线程方式 new Thread(new Runnable(){}).start(); 殊不知这种创建线程有以下缺点: 如果频繁创建和销毁线程会带来性能损耗,线程的创建和销毁都需要时间,如果创建和销毁的时间大于任务执行时间,反而得不偿失。 线程需要占用内存空间,大量的线程会抢占宝贵的内存资源,会导致oom,大量的线程也会给gc很大压力,延长gc的停顿时间。 大量的线程会抢占cpu资源,cpu在不停的做上下文切换,反而没有时间去处理线程运行的时候该处理的任务。 问题2原创 2020-12-17 11:10:58 · 387 阅读 · 0 评论 -
Java的类加载机制
最近一直在回顾复习Java知识,希望能够从更深的角度去理解Java语言,也在从头开始看Thinking In Java,今天想总结下在Java的类加载机制。系统可能在第一次使用某个类的时候加载该类,也可能采用预加载机制来加载某个类。当使用Java命令运行某个Java程序的时候,该命令将会启动一个java虚拟机进程,不管该Java程序有多么复杂,该程序内部启动了多少个线程,他们都处在java虚拟机进...原创 2018-08-06 22:56:56 · 192 阅读 · 0 评论