
Java8
文章平均质量分 89
Bruce_Zhang61
zhang0.cool
展开
-
ArrayList和Vector
今天阅读ArrayList和Vector的源码,了解其底层结构和扩容机制首先,需要知道的是ArrayList和Vector底层都是可变数组实现ArrayList非线程安全,Vector是线程安全的。原创 2022-08-20 15:00:16 · 264 阅读 · 1 评论 -
我的HashMap源码阅读记录
为什么是16呢 简单的解释就是使用2的次方的容量可以在HASH取模运算后使得散列更加均匀 学过数据结构的朋友应该都有印象 书上建议初始化大小为2的次幂 在这里JDK开发者选择了16作为默认的值。值得注意的是,这里Node的equals方法,是比较Key和Value的equals方法,在开发中,如果有需求要进行个性化的比较,就需要重写我们自己的Object类的equals方法了。个人理解:这些参数的存在,就是为了数据有一个较好的散列效果,以增强数据查询插入的效率,以达到高性能的效果。原创 2022-08-19 19:55:33 · 369 阅读 · 0 评论 -
Flask快速入门
Flask是一个轻量级的基于Python的Web框架。相较于Django,更加轻量便捷,非常适合快速开发查看介绍和版本Hello World项目结构通过Pycharm新建一个Flask项目,可以看到初始化的目录结构为:static用于放置静态资源templates存放模板文件app.py是程序启动文件运行结果:浏览器访问http://127.0.0.1:5000/就会显示Hello World终端也会记录下访问的日志修改Flask配置其中,为默认值。可以将这个参数自定义为自己的项目原创 2022-07-08 23:03:19 · 1755 阅读 · 0 评论 -
Java泛型T、E、K、V、N、?和Object区别和含义
通常我们在看一些源码时,发现全是T、?,晕乎乎的😭。于是,把泛型掌握好十分重要!什么是泛型Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。泛型有什么好处?写个例子一目了然:我们要封装一个消息响应类:public class Result implements Serializable { // 响应码 Int原创 2022-03-08 20:21:25 · 1123 阅读 · 0 评论 -
开发过程中那些不得不知道的密码学基础
发展历史古典密码学 如凯撒密码、滚筒密码近代密码学 如德国Enigma机,被图灵破解现代密码学编码算法不是加密和解密,为了在网络间更方便的传输数据/本地存储字节数组而产生Base64Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可原创 2022-03-06 22:49:48 · 3889 阅读 · 0 评论 -
Java超类Object源码学习
Object超类Java是一门天然的面向对象的语言。而所有我们手动创造出来的类,都继承于同一个类,即Object类。可以看一下Object类的结构native方法首先,超类拥有一个native方法private static native void registerNatives();static { registerNatives();}Java中,用native关键字修饰的函数表明该方法的实现并不是在Java中去完成。而是被C/C++完成,并被编译成了.ddl文件,由Jav原创 2022-03-05 23:46:30 · 484 阅读 · 0 评论 -
Java反射机制
反射反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息及动态调用对象方法的功能叫Java的反射机制每一个Java程序执行必须通过编译、加载、链接和初始化四个阶段编译:将.java.文件编译成字节码.class文件加载:查找并加载类的二进制数据链接:验证:确保被加载类的正确性为类的静态变量分配内存,并将其初始化为默认值将类中的符号转换为直接引用原创 2022-03-05 17:09:17 · 391 阅读 · 0 评论