mysql的安装
mysql的安装
Java8的Stream和Optional
Java 8引入了全新的Stream API。
Jdk常见新特性
JDK版本的特性介绍
Hash和HashCode
Hash的作用介绍Hash的定义
散列(哈希)函数
把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值,是一种压缩映射。
或者说一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
Hash函数特性
h(k1)≠h(k2)则k1≠k2,即散列值不相同,则输入值即预映射不同
如果k1≠k2,h(k1)=h(k2) 则发生碰撞;
如果h(k1)=h(k2),k1不一定等于k2;
Hash的使用场景
比如说我们下载一个文件,文件的下载过程中会经过很多网络服务器、路由器的中转,如何保证这个文件就是我们所需要的呢?我们不可能去一一检测这个文件的每个字节,也不能简单地利用文件名、文件大小这些极容易伪装的信息,这时候,就需要一种指纹一样的标志来检查文件的可靠性,这种指纹就是我们现在所用的Hash算法(也叫散列算法)。
散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改变,从而告诉文件使用者当前的文件已经不是你 ...
Java虚拟机
Java内存分配机制JVM内存管理
Java采用GC进行内存管理
Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GC Roots)开始对heap(堆)进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。而内存泄漏出现的原因就是存在了无效的引用,导致本来需要被GC的对象没有被回收掉。
理解内存分配
Java虚拟机是先一次性分配一块较大的空间,然后每次new时都在该空间上进行分配和释放,减少了系统调用的次数,节省了一定的开销,这有点类似于内存池的概念;二是有了这块空间过后,如何进行分配和回收就跟GC机制有关了。
java一般内存申请有两种:静态内存和动态内存 。很容易理解,编译时就能够确定的内存就是静态内存,即内存是固定的,系统一次性分配,比如int类型变量;动态内存分配就是在程序执行时才知道要分配的存储空间大小,比如java对象的内存空间。
深入的JVM内存管理知识,推荐《深入理解Java虚拟机》。
JVM内存分配的几种策略。静态的
静态的存储区,内存在程序编译的时候就已经分配好了,这块内存在程序整个 ...
网络编程
网络模型概述和图解网络模型概述
计算机网络之间以何种规则进行通信,就是网络模型研究问题。
网络模型一般是指OSI(Open System Interconnection开放系统互连)七层参考模型
TCP/IP四层参考模型主机至网络层(物理层 , 数据链路层) , 网际层 , 传输层 , 应用层(应用层 , 表示层 , 会话层)
网络模型7层概述
1.物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0)。这一层的数据叫做比特。
2.数据链路层:主要将从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装。常把这一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。
3.网络层:主要将从下层接收到的数据进行IP地址(例192.168.0.1)的封装与解封装。在这一层工作的设备是路由器,常把这一层的数据叫做数据包。
4.传输层:定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可 ...
注解的使用
枚举(Enum)是在Java 5中添加的新的类型
枚举基础
枚举(Enum)是在Java 5中添加的新的类型
反射机制和代理
反射是一种具有与Java类进行动态交互能力的一种机制
类的加载
类加载的过程包括了 加载——>校验——>准备——>解析——>初始化——>使用——>卸载。