- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 Java Hash和Time33
哈希值在java中如hashmap中就有使用,通过table的容量和key的hash值的&,算出所在的下标,再配合红黑树(TreeNode)达到快速查找元素。此算法和jdk中一致,只是值不一样,jdk是31,书中描述是33,一个是2^6-1,另一个是2^6+1,直觉上差不得。第4次循环:hash = 31 * (31 * (31 * 'a' + 'b') + 'c') + 'd'将字符串的逐字符迭代乘以31。不一定唯一,是说a1和a2不相等,但是hash(a1)和hash(a2)可能相等,因为算法不一样。
2023-05-11 19:56:02
155
原创 Java NIO简介
在1.4版本之前,Java的IO库的阻塞IO,简称OIO(Old IO);其后开始,就引入了新的异步IO,称为Java New IO类库,简称Java NIO;主要解决的问题就是同步阻塞的问题;IO模型介绍可参考https://mp.csdn.net/mp_blog/creation/editor/125082530结合IO模型的介绍,Java NIO属于IO多路复用模型a. OIO是面向流的,NIO是面向缓冲区的;所以OIO是顺序读取,不能随意改变读取位置,而NIO是从缓冲区读数据,可以随意改变读取的位置
2022-06-09 14:17:27
402
原创 Hibernate-validator自定义扩展
Hibernate-validator自定义扩展Hibernate-validator是springmvc中对于控制层的参数进行校验的常用工具,有些特殊情况下,自带的校验器可能不满足我们的场景需要,且此类校验在业务场景下比较常见,一种选择就是进行自定义扩展校验注解。假设:我们需要校验一个字段的值是某几个特定的值(当然用正则也能实现,这里用这个案例来演示如何扩展)...
2022-06-08 15:09:16
610
原创 四种主要的IO模型
在说IO前,我们来看一下操作系统进行读写的流程例如:Java客户端通过write系统调用将数据从用户缓冲区复制到内核缓存区,内核通过客户机网卡将数据发送出去;服务器通过网卡接收数据至内核缓冲区,Java用户程序通过read系统调用将内核缓冲区中的数据读取至Java进程缓冲区这是一个典型的系统调用流程对于服务器IO编程来讲,常见的IO模型有4种1. 同步阻塞IOBlocking IO是指用户空间主动发起,需要等内核IO完成后才返回用户空间的IO操作,IO过程中用户进程处于阻塞状态优点:应用程序开发简单缺点:需
2022-06-01 15:22:54
2442
原创 String基础知识
1. 类说明1.1. 首先是final修饰类不能被继承,所以String无子类1.2. 类实现了Serializable,Comparable,CharSequence接口Serializable:用于序列化 Comparable:用于比较 CharSequence:用于操作String的value对象,获取长度,指定字符等1.3. 内部主要成员value:用于存储字符串内容 hash:用于存储hash值,默认是0,在0的情况下且value长度大于0,执行hashCode()方法
2022-03-29 21:45:57
580
原创 Java 6大设计原则28大设计模式
6大设计原则:1. 单一职责原则 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP(There should never be more than one reason for a class to change.)见名知意,充斥着满满的争议,需求的更替,版本的迭代,场景的复杂,种种都能导致这个被破坏,但是把出发点是好的,单一意味着简单,简单意味着易懂,而后易维护、节省人力、成本、增加稳定性;但是场景复杂时就类就多了,em...;仁者见仁智者见
2022-03-24 20:10:38
4321
1
原创 eXtremeDb集成开发篇(Java)
开发语言:Java集成框架:Maven,Spring,Mybatis1. 先新建spring框架(ssh或者用sprintboot随意,若无此基础,请先学习相应知识点)2. resources下从eXtremeDb中引入extremedb.jar、extremedb_jdbc.jarresources>lib>extremedb.jarresources>lib>extremedb_jdbc.jar3. 在pom.xml中引入依赖;maven中央仓库上无此
2021-09-15 22:16:06
449
2
原创 eXtreamDb安装启动篇
eXtreamDb是一款内存数据库,支持HA、cluster等,细节自己看官方介绍1. 下载eXtreamDbFree evaluation of eXtremeDB - McObject LLC安装包名称:extremedb_x.x_fusion_linux_x86_64_sql_lua_eval.tar.gz其中x.x为具体版本2. 上传至linux /PATH_TO_INSTALL_FOLDER使用FTP将安装包上传至linux的安装目录下3. 解压安装包tar zxv
2021-09-15 21:53:23
534
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人