![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础篇
sinat_27397195
这个作者很懒,什么都没留下…
展开
-
TCP/IP运用实例
(2)客户端可以输入一个音乐文件名,比如《珊瑚海》,服务端收到音乐名后,可以给客户端返回这个。对节点流进行包装,使用数组缓冲的方式,对文件的处理效率更高。.发送数据结束时无需释放资源(因为不是面向连接的),速度快。.使用TCP协议前,预先建立TCP连接,形成传输数据通道。.将数据、源、目的封装成数据包,不需要建立连接。.传输完毕,需要释放自己建立的连接,效率低。,如果服务器没有这个文件,返回一个默认的。.传输前,采用"三次握手"方式,是可靠的。.在连接中可进行最大数据量的传输。.因无需连接,故是不可靠的。原创 2023-05-31 09:52:41 · 770 阅读 · 0 评论 -
多态与动态绑定机制
当调用对象方法的时候,该方法会和对象的内存地址/运行类型绑定;(4)编译类型看定义时 = 号的左边,运行类型看 = 号的右边。.当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。(2)编译类型在定义对象时,就确定了,不能改变。(1)一个对象的编译类型和运行类型可以不一致。(3)运行类型是可以变化的。原创 2023-05-31 09:25:32 · 128 阅读 · 0 评论 -
String
(2)String有一个属性是final char[] value,就是内容实际存放的地方,地址不能被修改。重新赋值时,不能修改原String对象的值,只能指向新的对象;(3)final char[] ch的地址也不能被修改,但是数组可以通过下标(实际是地址)修改对象的值。(1)String str,char[] ch作为形参,一个是值传递,一个是引用传递;(4)Java对象之前的赋值都是值传递。原创 2023-05-30 11:43:24 · 38 阅读 · 1 评论 -
类加载的几个阶段
此阶段才真正完成静态代码块的初始化内容,利用方法,完成静态内容的赋值内容。而且用同步锁,确保了初始化一个类的安全性,只有一个线程可以操作,其他线程处于阻塞等待。:将类的class文件读入到内存中,并为之创建一个Class对象,此过程由加载器完成;,即保证class字节流文件符合虚拟机的要求,并不会危害虚拟机的安全、:即分配内存,完成类的静态成员属性与方法的默认初始化、:把符号引用替换为直接引用。原创 2023-05-30 10:35:52 · 68 阅读 · 1 评论 -
HashSet源码解析
创建一个hashmap构成的table数组+链表结构,数据元素是Node,数组初始长度为16,临界值是12=16*0.75。.数组链表插入元素,当hash值与之前插入的元素相同,且内容不相同,则插入至元素之后形成单链表。否则,返回false,代表插入不成功;.当某条单链表长度大于8,并且table已经扩容至64个长度,此时单链表立马变成红黑树结构;.数组扩容:当数组元素个数第一次达到临界值12,那么table数组长度开始扩容16。依此类推,table数组长度扩至64个长度;原创 2023-05-30 10:23:47 · 26 阅读 · 0 评论