栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

2022.1.29刷题笔记

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022.1.29刷题笔记

** j2sdk是JAVA的开发环境包它包含JDK(开发工具包,包含JRE)和JRE(运行时环境包),简称JDK。J2SDK包含很多东西,比如java language、的、Deloyment等。**

** Appletviewer 是运行applet(即Java小应用程序,是可随网页下载到客户端由浏览器解释执行的java程序)的,applet不用main方法,继承applet类即可**

TreeSet和linkedHashSet

TreeSet自然排序、linkedHashSet按添加顺序排序

TreeSet使用二叉树的原理对新add()的对象按照指定的顺序排序(升序,降序)**,每增加一个对象都会进行排序,将对象插入的二叉树指定的位置

HashSet存储元素的顺序并不是按照存入时的顺序(和List显然不同)而是按照哈希值来存的所以取数据也是按照哈希值取的

linkedHashSet继承于HashSet,是具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序(插入顺序)进行迭代。

Java类成员的访问控制权限

public > protected > 同包(default) > private

基类就是父类,也叫超类。导出类就是子类,也叫派生类

java.exe是java虚拟机,javadoc.exe用来制作java文档,jdb.exe是java的调试器,javaprof.exe是剖析工具

JAVA虚拟机中通常使用UTF-16的方式保存一个字符

ResourceBundle能够依据Local的不同,选择性的读取与Local对应后缀的properties文件,以达到国际化的目的。

CMS

CMS全称Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的垃圾回收器,以牺牲吞吐量为代价来获的最短回收停顿时间的垃圾回收器,对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。CMS的基础算法是:标记-清除

它的过程可以分为以下6个步骤:

初始标记(STW initial mark)并发标记(Concurrent marking)并发预清理(Concurrent precleaning)重新标记 (STW remark)并发清理(Concurrent sweeping)并发重置(Concurrent reset)

    初始标记:在这个阶段,需要虚拟机停顿正在执行的任务,官方的叫法STW(Stop The Word)。这个过程从垃圾回收的“根对象”开始,只扫描到能够和“根对象”直接关联的对象,并作标记。所以这个过程虽然暂停了整个JVM,但是很快就完成了。并发标记:这个阶段紧随初始标记阶段,在初始标记的基础继续向下追溯标记。并发标记阶段,应用程序的线程和并发标记的线程并发执行,所以用户不会感受到停顿。并发预清理:并发预清理阶段仍然是并发的。在这个阶段,虚拟机查找在执行并发标记阶段新进入老年代的对象(可能会有一些对象从新生代晋升到老年代,或者有一些对象被分配到老年代)。通过重复扫描,减少下一个阶段“重新标记”的工作,因为下一个阶段会Stop The World重新标记:这个阶段会暂停虚拟机,收集器线程扫描在CMS堆中剩余的对象。扫描从"根对象"开始向下追溯,并发处理对象关联。并发清理:清理垃圾对象,这个阶段收集线程和应用程序线程并发执行并发重置:这个阶段,重置CMS收集器的数据结构,等待下一次垃圾回收。

类方法是指用Static修饰的方法,普通方法叫做对象方法

线程进程
    一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程(通过说的主线程)。资源分配给进程,同一进程的所有线程共享该进程的所有资源。线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。处理机分给线程,即真正在处理机上运行的是线程。线程是指进程内的一个执行单元,也是进程内的可调度实体。

instance是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例

JVM参数配置

-Xms:1G , 就是说初始堆大小为1G
-Xmx:2G , 就是说最大堆大小为2G
-Xmn:500M ,就是说年轻代大小是500M(包括一个Eden和两个Survivor)
-XX:MaxPermSize:64M , 就是说设置持久代最大值为64M
-XX:+UseConcMarkSweepGC , 就是说使用使用CMS内存收集算法
-XX:SurvivorRatio=3 , 就是说Eden区与Survivor区的大小比值为3:1:1

运行时常量池

运行时常量池是什么

运行时常量池是每一个类或接口的常量池的运行时表示形式。
具体体现就是在java编译后生成的.class文件中,会有class常量池,也就是静态的运行时常量池。

运行时常量池存放的位置

运行时常量池一直是方法区的一部分,在不同版本的jdk中,由于方法区位置的变化,运行时常量池所处的位置也不一样.JDK1.7及之前方法区位于永久代.由于一些原因在JDK1.8之后彻底祛除了永久代,用元空间代替。

运行时常量池存放什么?

   存放编译期生成的各种字面量和符号引用;(字面量和符号引用不懂的同学请自行查阅)
   运行时常量池中包含多种不同的常量,包括编译期就已经明确的数值字面量,也包括到运行期解析后才能够获得的方法或者字段引用。 此时不再是常量池中的符号地址了,这里换为真实地址。

运行时常量池与字符串常量池?

字符串常量池:在JVM中,为了减少相同的字符串的重复创建,为了达到节省内存的目的。会单独开辟一块内存,用于保存字符串常量,这个内存区域被叫做字符串常量池.

字符串常量池位置?

JDK1.6时字符串常量池,被存放在方法区中(永久代),而到了JDK1.7,因为永久代垃圾回收频率低;而字符串使用频率比较高,不能及时回收字符串,会导致导致永久代内存不足,就被移动到了堆内存中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号