
JAVA
文章平均质量分 60
宁宇丶
这个作者很懒,什么都没留下…
展开
-
GC垃圾回收
Java由于自带垃圾回收机制,可以让哦我们不用担心垃圾回收的事情,但在一些情况下,如果我们不去适配GC的话,可能会出现一些致命的问题,所以我们应该了解一些GC的回收机制和算法。什么内存需要回收线程不共享的 : 程序计数器,虚拟机栈和本地方法栈。这些是随着线程一起被回收的,不必多考虑回收问题。线程共享的 : 堆和方法区这些是需要考虑的部分,算法和判断都是在这个地方实现。主要的回收内容是废弃常量和无用类。怎么判断需要回收当对象不再被调用,也就是死亡时。我们该怎么知道对象死亡呢?这原创 2022-03-10 08:47:00 · 206 阅读 · 0 评论 -
JVM内存模型
JVM是JAVA语言可以在多环境下运行的根本,而JVM的字节码机制便是JVM运行的根本什么是JVM字节码机制JVM,是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。既然是模拟计算机,那么它就应该有计算机的某种根本特性——机器语言(这也很难称得上语言了,只是二进制代码),而JVM字节码正是JVM的机器语言。...原创 2022-03-09 09:20:18 · 801 阅读 · 0 评论 -
JVM堆及其GC
JVM堆是JAVA程序运行时对象的存储位置,其存储方式和垃圾收集机制是我们调优的一大关键。堆的构成堆从内存回收的角度看,由于现在收集器基本都采用分代收集算法,所以堆可细分为新生代和老年代,新生代占1/3,老年代占2/3.新生代又被分为Eden和Surviver,Surviver被分为from和to两个部分。也就是新生代一共有三个部分,内存占比默认为8:1:1,这个占比可以调节。进行划分的目的是为了更好的进行内存回收。新生代与老年代的存放上面说了新生代细分成了三部分,Eden和属于Survivo原创 2022-03-09 09:00:38 · 321 阅读 · 0 评论 -
JVM栈与栈帧
栈帧是JVM中的一种存储结构,它是一条线程中程序运行的主要存储位置,深入理解这部分与其他存储位置的联系可以让我们更加轻松的了解整个JVM运行结构栈(虚拟机栈)除了虚拟机栈,还有操作数栈和本地方法栈,,我们一般只称虚拟机栈为栈;栈的结构特点是FILO(后进先出),这很符合程序在调用方法时的特点,所以用栈来存储再合适不过。当每一次创建一条线程的时候,JVM就会创建一个栈。整体结构大概这样:当然,线程中不止有栈,还有程序计数器(一部分)等其他被调用的东西,这里暂不展开;从图中可以看出,栈帧中还有四原创 2022-03-09 08:46:56 · 443 阅读 · 0 评论 -
泛型的深入浅出理解
从JAVA的诞生,这门语言就是以为了更加方便去开发程序的目的进行演变的,而泛型便是这演变的结果之一。泛型的定义泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。可以说泛型是另一个Object,它的特点就是将其他的类型当做一种参数,这可以使我们在传递元素时只将它当作参数,并不会在意它的类型,直到真正用到它时才去明确,这也是它被称为参数化类型的原因。注意:一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。泛型的诞生在有泛型之前,原创 2022-03-05 07:59:13 · 113 阅读 · 0 评论 -
深入浅出JAVA接口理解
接口的意义接口定义:接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。高聚低耦,方便开发复用,这是JAVA语言最大特点——抽象的目的。而接口就是对抽象方法的进一步抽象,将各个实例类中都用到的抽象方法放在一个类,这个类就叫接口。有了这个接口,我们就可以直接借用这个接口来使用我们想实现的抽象方法,而不用反复造轮子,这便是接口的意义。接口与类的区别明白了接口的意义我们就不难理解接口与类的区别了,-接口不能用于实例化对象。(因为接口原创 2022-03-05 05:14:25 · 418 阅读 · 0 评论 -
truct sockaddr和struct sockaddr_in这两个结构体的区别
truct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面的属性:1 地址类型: ipv4还是ipv62 ip地址3 端口sockaddr用其余14个字节来表示sa_data,而sockaddr_in把14个字节拆分成sin_port, sin_addr和sin_zero分别表示端口、ip地址。sin_zero用来填充字节使sockaddr_in和socka转载 2020-06-26 10:20:08 · 607 阅读 · 0 评论 -
Unicode编码机制的历史与理解
ASCII码在Unicode出现之前,就已经有许多不同的标准存在了,ASCII码就是其中之一,我们都知道计算机所有的信息都以0和1这样的二进制表示,每字节为8bit(这是因为随着发展大家认为8bit可以满足各类字符表示,并在后面受到ASCII码的使用,因此后世默认一字节为8bit),而每位二进制数有 0、1 两种状态,因此 1 字节可以组合出 256 种状态。如果这 256 中状态每一个都对应一个符号,就能通过 1 字节的数据表示 256 个字符。美国人于是就制定了一套编码(其实就是个字典),描述英语中的原创 2020-05-19 22:37:08 · 691 阅读 · 0 评论