![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
苒翼
2
展开
-
【JVM篇】变量定义在for循环内是否影响性能
一直有种优化java性能的说法,就是变量应该定义在for循环外面。虽然这样写了多年的for循环,但是依旧不习惯这种别扭的写法,可读性不好。那到底这么是不是提升性能呢,趁着复习jvm分析下for循环源码。1、首先将变量定义在里面public void for1(HSDBBean father) throws InterruptedException { for (int i = 0; i < 100;i++){ HSDBBean child = new HSDBBean("儿子",原创 2020-09-03 22:19:31 · 1466 阅读 · 0 评论 -
【JVM篇】垃圾回收
一、前言本篇文章主要摘自其他博客二、垃圾回收算法1.标记-清除算法(Mark-Sweep)最基础的收集算法是“标记-清除”(Mark-Sweep)算法,分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它的主要不足有两个:1.效率问题,标记和清除两个过程的效率都不高;2.空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。原创 2020-09-03 21:24:55 · 127 阅读 · 0 评论 -
【JVM篇】Java函数的调用
【JVM篇】Java函数的执行原创 2020-09-01 20:19:40 · 655 阅读 · 0 评论 -
【JVM篇】Java类的对象创建
0.对象的创建是通过new指令执行的1.get_unsigned_2_byte_index_at_bcp 获取new对象在常量池中的索引存入rdx2.get_cpool_and_tags 将常量池首地址存入rcx3.tlab_allocate 如果空间足够在tlab上分配对象空间4.eden_allocate 在eden分配对象空间5.InterpreterRuntime::_new 估计是在老年代分配空间6.initialize_header 对象头内存循环置为07.初始化创建对象的_mar原创 2020-09-01 20:19:21 · 185 阅读 · 0 评论 -
【JVM篇】Java main的调用
执行jar的方法java -jar xxx.jarjava.exe的执行// \src\java.base\share\native\launcher\main.cJNIEXPORT int main(int argc, char **argv) { return JLI_Launch(margc, margv, jargc, (const char**) jargv, 0, NULL, VERSION_STRING, DOT_VERSION, (const_progname != NULL原创 2020-09-01 20:18:25 · 923 阅读 · 0 评论 -
【Hadoop篇】YARN源码分析(三)
0、回顾【Hadoop篇】YARN源码分析(二)NodeManager启动了YarnChild1、YarnChild分析1.YarnChild执行提交的MapTask或ReduceTask2.TaskUmbilicalProtocol将MapTask和ReduceTask处理结果反馈给MRAppMasterclass YarnChild { public static void main(String[] args) throws Throwable { final Job原创 2020-07-28 17:03:35 · 266 阅读 · 0 评论 -
【Hadoop篇】YARN源码分析(一)
0、总结1.hadoop其实是一个脚本2.该脚本调用RunJar调用HadoopWordCount.jar的main函数(脚本里面可能设置好了依赖库)3.调用job.waitForCompletion(true)提交4.YARNRunner设置MRAppMaster为ApplicationMaster5.JobSubmitter调用JobResourceUploader将HadoopWordCount.jar上传到hdfs6.JobSubmitter通过InputFormat算出需要的MapTa原创 2020-07-28 16:26:14 · 533 阅读 · 0 评论 -
【Hadoop篇】hdfs文件上传源码分析
0、上传文件代码FileSystem fs = FileSystem.get(new URI("hdfs://hadoopmaster:9000"), new Configuration(), "root");OutputStream os = fs.create(new Path("/test.log"));FileInputStream fis = new FileInputStream("I://test.log");IOUtils.copyBytes(fis, os, 2048,true);原创 2020-07-28 16:03:50 · 547 阅读 · 0 评论 -
【网络请求篇】记一次网络请求分析
下面是一段HttpClient使用例子,乍一看好像没有什么问题,执行请求,然后关闭,目前项目里面也基本是这么使用的。public static void test1(){ GetMethod getMethod = null; try { HttpClient client = new HttpClient(); getMethod = new GetMethod("https://xx.xx.com/xx.htm"); int status原创 2020-07-11 18:23:44 · 304 阅读 · 0 评论