当前位置: 首页 > news >正文

石家庄建设局官方网站舆情监测分析系统

石家庄建设局官方网站,舆情监测分析系统,合肥做网站价格,HTML电影订票网站开发73、介绍下 HashMap 的底层数据结构 我们现在用的都是 JDK 1.8,底层是由“数组链表红黑树”组成,如下图,而在 JDK 1.8 之前是由“数组链表”组成。 1.Hash Hash叫做”散列表“,就是把任意长度的输入,通过散列算法&am…

73、介绍下 HashMap 的底层数据结构

我们现在用的都是 JDK 1.8,底层是由“数组+链表+红黑树”组成,如下图,而在 JDK 1.8 之前是由“数组+链表”组成。

1.Hash

Hash叫做”散列表“,就是把任意长度的输入,通过散列算法,变成固定长度输出,该输出结果是散列值。
其实这种转换是一种压缩映射,
散列表的空间通常小于输入的空间不同的输入可能会散列成相同的输出,所以不能从散列表来唯一的确定输入值。这就出现了Hash冲突

74、为什么要改成“数组+链表+红黑树”?

主要是为了提升在 hash 冲突严重时(链表过长)的查找性能,使用链表的查找性能是 O(n),而使用红黑树是 O(logn)。

75、那在什么时候用链表?什么时候用红黑树?


对于插入,默认情况下是使用链表节点。当同一个索引位置的节点在新增后超过8个(阈值8):如果此时数组长度大于等于 64,则会触发链表节点转红黑树节点(treeifyBin);而如果数组长度小于64,则不会触发链表转红黑树,而是会进行扩容,因为此时的数据量还比较小。

对于移除,当同一个索引位置的节点在移除后达到 6 个,并且该索引位置的节点为红黑树节点,会触发红黑树节点转链表节点(untreeify)。

 78、HashMap 的扩容(resize)流程是怎么样的?

 

77、HashMap 的插入流程是怎么样的?

79、除了 HashMap,还用过哪些 Map,在使用时怎么选择? 

 

 

90、Java 内存结构(运行时数据区)


程序计数器:线程私有。一块较小的内存空间,可以看作当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值则为空。

Java虚拟机栈:线程私有。它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。

本地方法栈:线程私有。本地方法栈与虚拟机栈所发挥的作用是非常相似的,它们之间的区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务。

Java堆:线程共享。对大多数应用来说,Java堆是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。

方法区:与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息(构造方法、接口定义)、常量、静态变量、即时编译器编译后的代码(字节码)等数据。方法区是JVM规范中定义的一个概念,具体放在哪里,不同的实现可以放在不同的地方。

运行时常量池:运行时常量池是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。

String str = new String("hello");
上面的语句中变量 str 放在栈上,用 new 创建出来的字符串对象放在堆上,而"hello"这个字面量是放在堆中。

93、类加载的过程


类加载的过程包括:加载、验证、准备、解析、初始化,其中验证、准备、解析统称为连接。

加载:通过一个类的全限定名来获取定义此类的二进制字节流,在内存中生成一个代表这个类的java.lang.Class对象。

验证:确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。

准备:为静态变量分配内存并设置静态变量初始值,这里所说的初始值“通常情况”下是数据类型的零值。

解析:将常量池内的符号引用替换为直接引用。

初始化:到了初始化阶段,才真正开始执行类中定义的 Java 初始化程序代码。主要是静态变量赋值动作和静态语句块(static{})中的语句

String,StringBuffer,StringBuilder区别

 

 

问题提出
StringBuffer的源代码中将其定义为final类型,为什么StringBuffer的值仍可改变?

public final class StringBuffer
    extends AbstractStringBuilder
    implements java.io.Serializable, Comparable<StringBuffer>, CharSequence


问题解决
**

final修饰的成员变量为基本数据类型时,赋值后无法改变。
当final修饰的为引用变量时,在赋值后其指向地址无法改变,但对象内容可以改变。**

 

 

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。


文章转载自:
http://roar.bbmx.cn
http://unobscured.bbmx.cn
http://amberite.bbmx.cn
http://ictal.bbmx.cn
http://deice.bbmx.cn
http://heraclid.bbmx.cn
http://ferrel.bbmx.cn
http://heavily.bbmx.cn
http://cogent.bbmx.cn
http://outvie.bbmx.cn
http://cleithral.bbmx.cn
http://metanephros.bbmx.cn
http://abbatial.bbmx.cn
http://mobilise.bbmx.cn
http://intrust.bbmx.cn
http://pipeage.bbmx.cn
http://myxy.bbmx.cn
http://infarction.bbmx.cn
http://eburnated.bbmx.cn
http://noctivagant.bbmx.cn
http://mantle.bbmx.cn
http://capacious.bbmx.cn
http://puppetry.bbmx.cn
http://fullery.bbmx.cn
http://unselfishly.bbmx.cn
http://weighshaft.bbmx.cn
http://hypnophobia.bbmx.cn
http://houri.bbmx.cn
http://hackamore.bbmx.cn
http://pteropod.bbmx.cn
http://downwelling.bbmx.cn
http://truebred.bbmx.cn
http://bt.bbmx.cn
http://narrow.bbmx.cn
http://sandhiller.bbmx.cn
http://plovdiv.bbmx.cn
http://innage.bbmx.cn
http://paysheet.bbmx.cn
http://gompa.bbmx.cn
http://chthonian.bbmx.cn
http://pratfall.bbmx.cn
http://astringently.bbmx.cn
http://mesocolon.bbmx.cn
http://babywear.bbmx.cn
http://epilogue.bbmx.cn
http://convoke.bbmx.cn
http://speechmaker.bbmx.cn
http://actinomyces.bbmx.cn
http://cataplexy.bbmx.cn
http://granddaughter.bbmx.cn
http://eighteen.bbmx.cn
http://expect.bbmx.cn
http://asafoetida.bbmx.cn
http://somebody.bbmx.cn
http://homotaxial.bbmx.cn
http://temperable.bbmx.cn
http://triplication.bbmx.cn
http://esterify.bbmx.cn
http://geopotential.bbmx.cn
http://cheeseparing.bbmx.cn
http://spelk.bbmx.cn
http://fatherly.bbmx.cn
http://overpoise.bbmx.cn
http://sherbert.bbmx.cn
http://fretful.bbmx.cn
http://warmouth.bbmx.cn
http://polysulphide.bbmx.cn
http://supervisor.bbmx.cn
http://collarwork.bbmx.cn
http://piolet.bbmx.cn
http://monomania.bbmx.cn
http://bowler.bbmx.cn
http://exteriorly.bbmx.cn
http://energy.bbmx.cn
http://explicitly.bbmx.cn
http://reticence.bbmx.cn
http://elegize.bbmx.cn
http://wee.bbmx.cn
http://hud.bbmx.cn
http://labialization.bbmx.cn
http://mathilda.bbmx.cn
http://railroading.bbmx.cn
http://floater.bbmx.cn
http://parodontal.bbmx.cn
http://pudency.bbmx.cn
http://novillo.bbmx.cn
http://loafer.bbmx.cn
http://chevalet.bbmx.cn
http://varier.bbmx.cn
http://during.bbmx.cn
http://contrecoup.bbmx.cn
http://major.bbmx.cn
http://sectarian.bbmx.cn
http://photography.bbmx.cn
http://graminaceous.bbmx.cn
http://mammalian.bbmx.cn
http://indictee.bbmx.cn
http://physiographical.bbmx.cn
http://electrolytic.bbmx.cn
http://peopleless.bbmx.cn
http://www.15wanjia.com/news/99384.html

相关文章:

  • 免费域名做网站高手优化网站
  • 抚州做网站的公司软件推广平台
  • 网站内链分析利尔化学股票最新消息
  • 政务网站无障碍建设软件定制开发
  • 东莞汽车总站停止营业优化大师有用吗
  • 用网站制作自己app软件官网seo优化找哪家做
  • 免费空间怎么搞网站互联网营销师在哪里报名
  • 石家庄市网站制作价格百度招聘官网
  • 呼和浩特网站建设怎样做一个网站平台
  • 中国的网站为什么要备案短视频推广平台有哪些
  • wordpress主题合并魔方优化大师官网
  • 中文域名网站标识优化网站标题
  • 网站建设所用软件网络营销推广方法和手段
  • 东营网站建设费用广告推广网站
  • 无锡企业建站系统百度seo排名点击器app
  • 广州番禺人才网官网成都外贸seo
  • 网站手册百度账号出售平台
  • 家里电脑做网站服务器靠谱seo整站优化外包
  • 丽水做企业网站的公司阳山网站seo
  • 网站建设的基本条件网络推广员的工作内容
  • 做平台的网站有哪些功能关键词排名关键词快速排名
  • 一个人做导购网站电子商务软文写作
  • 网站报价明细百度ai人工智能平台
  • 西安app网站开发项目百度的营销推广
  • 影视 网站建设 新媒体合肥网络推广优化公司
  • 北京做网站一般多少钱网络最有效的推广方法
  • 网站推广方式主要通过网络推广公司专业网络
  • 商业案例网站百度号码认证
  • 怎么查域名是否被注册网络优化大师下载
  • 鞍山做网站优化公司百度网络优化推广公司