自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 java String的split方法性能怎么样?

java String的split方法性能怎么样?简要概述结论:1.split方法本来是针对正则表达式对字符串切分的,java6以前,每次split都会编译一遍正则表达式。但其实大多数情况下,我们只是对逗号/分号/空格这种单一字符切分,java7以后进行了优化,对于这种基本的单一字符,不再每次都编译2.split返回的是数组,内部使用的是list,最后会有一次list复制为数组的过程,可以优化3.平常处理的时候其实像文件加载内存一样,不需要整个直接加载到内存,可以一行一行的读;字符串在分割时,可以一

2022-03-20 00:01:38 865

原创 java中的包和导包

包的概念和导包的概念包的作用用来将类区分开,使每个类独一无二。一般包名都是小写。类的全类名:xxx.yyy.demo.class导包的作用import xxx.yyy.zzzpackage包将类分离开来import导包则将类聚集起来,让其他包的类可见,使编译器能够识别。使用同一包下的类,不需要导包;使用不同包下的类,需要导包(即使是父子包的关系)导包和权限修饰符的关系导包只是让类变得可见。而对于其中的内容,是否可访问则由权限修饰符决定。...

2020-06-30 16:00:11 1519

原创 idea中maven项目报错:failed to read artifact descriptor

报错内容:failed to read artifact descriptor报错截图:会在project处出现红线原因下面的dependency没有导入进来解决办法添加version,或者reimport.

2020-06-28 22:08:00 625

原创 JVM学习笔记(九)-从JVM看synchronized和Volatile

synchronized关键字  synchronized是一种非常传统的阻塞同步方式。用它加锁意味着多线程环境下,当多个线程需要进同步块时,会以串行的方式运行,即没有获得锁的线程会等到获取锁的线程执行完同步块,释放锁资源后才能竞争锁,得到锁后才能继续运行。但是到了JDK1.6进行优化后,就不是那么简单了。加锁和解锁synchronized可加三种锁:给普通方法加锁,锁住实例对象给静态...

2019-06-21 12:59:33 148

原创 JVM学习笔记(八)-Java内存模型

总体架构内存模型图  之所以画成这样,是因为对《深入理解java虚拟机》中提到的内存模型中内存间的交互操作的理解,而不是简单的像书中的图一样。基于执行引擎和主内存的交互方式,以及read、load,store、write操作的含义,我个人认为应该加一个执行引擎和变量值暂存(有可能是寄存器、缓存等)。  如图所示,每个线程都会有自己的工作内存,在工作时,对共享变量的访问必须先从主内存...

2019-06-15 13:56:05 105

原创 JVM学习笔记(七)-类加载器

回顾  上一篇博客复习了JVM的类加载过程,对加载、验证、准备、解析、初始化等各个阶段进行了详细内容的复习。但是,关于类加载,还有一块重要的知识——类加载器,它跟加载阶段、解析阶段等有着紧密的联系。  本篇博客将会对类加载器的分类、双亲委派模型以及打破双亲委派等方面进行复习。类加载器的分类  我们常把类加载器分为四类:启动类加载器(Bootstrap ClassLoader)扩展类加...

2019-06-13 13:09:38 115

原创 JVM学习笔记(六)-类加载过程

类加载总体流程先上图:类加载总体流程图  其中,大的步骤分为加载、连接、初始化、使用和卸载,连接包括验证、准备、解析。这里有一点需要注意的地方,图中各阶段的执行顺序问题。各阶段的执行顺序问题  图中只有加载、验证、准备、初始化是按部就班执行的,解析阶段不一定是按图中顺序执行。另外,前面所谓的按部就班,并不是严格地说上一阶段执行完了下个阶段才开始执行,也就是说阶段之间会有时间上的...

2019-06-12 19:00:51 162

原创 JVM学习笔记(五)-JVM的垃圾收集2

回顾上一篇博客,学习了垃圾收集前的准备工作,包括对象存活判定算法、垃圾收集算法和JVM对以上算法的实现。本篇博客将接着上篇博客的内容,对JVM的垃圾收集相关知识进行进一步学习(由于之前一直用的学习这个词,现在就沿用了,其实这是第三遍复习,通过写博客找不足同时加深印象,后面将会用复习这个词了)。本篇博客首先学习几种垃圾收集器的特性和适用场景,然后会对java对象的内存分配策略和内存回收策略进行学...

2019-06-10 13:36:07 412

原创 JVM学习笔记(四)-JVM的垃圾收集1

回顾  上一篇博客写了JVM的内存溢出问题,比较了内存溢出和内存泄漏的区别,然后对虚拟机栈的OOM和SOF、方法区和运行时常量池的OOM、堆的OOM做了相关实验验证,在实验过程中发现了java8对方法区perm gen的改进,即metaspace代替perm gen(java7将字符串常量池移入了堆中)。最后,对于使用stringbuilder造成的heap space的OOM的实验现象提出了两...

2019-06-07 19:39:21 135

原创 JVM学习笔记(三)-内存溢出

回顾  上一篇博客学习了JVM的运行时数据区域,分为程序计数器、虚拟机栈、本地方法栈、堆、方法区五个区域展开进行学习。重点介绍了虚拟机栈的栈帧结构,堆的对象创建、对象内存布局、对象的访问,运行时常量池和class文件常量池等知识点。在介绍各个区域的特点时,有一个词频繁提到,那就是OOM,除了程序计数器外,每个区域都有可能发生OOM,虚拟机栈和本地方法栈还有可能会发生stackoverflow e...

2019-06-06 16:40:05 356

原创 JVM学习笔记(二):JVM内存区域

回顾  上一篇博客讲到了JVM的定义,和JRE,JDK的区别。重点介绍了JVM的整体体系结构。包括class文件,类加载器,JVM内存区域,执行引擎,本地方法接口,垃圾收集器等部分,对JVM的知识体系有了一个总体的认识。  这篇博客主要介绍了JVM内存区域,对内存区域的划分、各部分的作用和特点以及内存溢出等相关知识。JVM内存区域总体划分  不多说,内存区域划分,也常叫运行时数据区域...

2019-06-03 22:03:54 274

原创 JVM学习笔记(一):JVM整体体系结构

前言       第一次写博客, 有点小激动。博客本意是为了整理自己学习的思路,建立知识体系,不像其他大佬的博客会对知识进行深入剖析。       我不想学了很多,最后都是知识碎片,别人一问起来某个概念,自己貌似知道一点,但是讲不清楚到底是个什么东西,细节知识倒是零零碎碎知道一些,这和没学感觉没差别。 ...

2019-05-27 19:13:23 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除