Java Map Java Map Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap,Hashtable,LinkedHashMap和TreeMap,类继承关系如下图所示。 HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的,HashMap最多只允许一条 2021-08-30 Software Language Java JavaSE 泛型与集合
Java 输入输出基本概念 Java 输入输出基本概念 I/O设备与文件 外部设备分为两类:存储设备与输入/输出设备。 存储设备包括硬盘,软盘,光盘等,在这类设备汇总,数据以文件的形式进行组织。 输入/输出设备分为输入设备和输出设备,输入设备有键盘,鼠标,扫描仪等,输出设备有显示器,打印机,绘图仪等,在操作系统中,将输入/输出设备也看作一类特殊文件。 从数据操作的角度讲,文件内容可以被看作是字节的序列,根据数据的组织方式 2021-08-30 Software Language Java JavaSE 流式输入输出与文件处理
Servlet 网页重定向 Servlet 网页重定向 当文档移动到新的位置,我们需要向客户端发送这个新位置时,我们需要用到网页重定向,当然,也可能是为了负载均衡,或者只是为了简单的随机,这些情况都有可能用到网页重定向。 setStatus()和setHeader() 该方法把响应连同状态码和新的网页位置发送回浏览器,您也可以通过把 setStatus()和 setHeader()方法一起使用来达到同样的效果: 123Str 2021-08-30 Software Language Java JavaEE Servlet
JSP 表达式语言 JSP 表达式语言 JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单,JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式,在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true,false,还有null 一个简单的语法 典型的,当您需要在JSP标签中指定一个属性值时,只需要简单地使用字符串即可: 1<jsp:setProperty na 2021-08-30 Software Language Java JavaEE JSP
JSP XML 数据处理 JSP XML 数据处理 当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档,作为一个XML文档,它仅仅只是一堆文本而已,使用JSP创建XML文档并不比创建一个HTML文档难。 使用JSP发送XML 使用JSP发送XML内容就和发送HTML内容一样,唯一的不同就是您需要把页面的context属性设置为text/xml,要设置context属性,使 2021-08-30 Software Language Java JavaEE JSP
JSP 异常处理 JSP 异常处理 当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方,JSP代码中通常有以下几类异常: 检查型异常:检查型异常就是一个典型的用户错误或者一个程序员无法预见的错误,举例来说,如果一个文件将要被打开,但是无法找到这个文件,则一个异常被抛出,这些异常不能在编译期被简单地忽略。 运行时异常:一个运行时异常可能已经被程序员避免,这种异常在编译期将会被 2021-08-30 Software Language Java JavaEE JSP
Git rebase Git rebase 变基(Rebasing) 将当前分支的提交复制到指定的分支之上。 变基与合并有一个重大的区别: Git 不会尝试确定要保留或不保留哪些文件,在执行 rebase 的分支总是含有想要保留的最新近的修改,这样不会遇到任何合并冲突,而且可以保留一个漂亮的,线性的 Git 历史记录。 1git rebase <branch_name> 上面这个例子展示了在 ma 2021-08-30 Software DevOps VCS Git 基本命令
Git subtree Git subtree git subtree 可以实现一个仓库作为其他仓库的子仓库。 git subtree 与 git submodule 不同,它不增加任何像 .gitmodule 这样的新的元数据文件。 git subtree 对于项目中的其他成员透明,意味着可以不知道 git subtree 的存在。 在父仓库中新增子仓库 12git subtree add --prefix= 2021-08-30 Software DevOps VCS Git 基本命令
IP协议 IP协议 IP数据报的格式 分类的IP地址 IP地址根据网络号和主机号来分,分为A,B,C三类及特殊地址D,E,全0和全1的都保留不用。 A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0或 0xFF000000)第一个字节为网络号,后三个字节为主机号,该类IP地址的最前面为"0”,所以地址的网络号取值于1~126之间,一般用于大型网络。 B类:(1 2021-08-30 Network TCPIP
TCP 连接 TCP 连接 TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接,所谓的"连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址,端口号等。 TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包,重复以及错误问题,在连接的建立过程中,双方需要交换一些连接的参数,这些参数可以放在TCP头部。 TCP提供了一种可靠,面向连接,字节流,传输 2021-08-30 Network TCPIP
TCP/IP参考模型 TCP/IP参考模型 OSI参考模型 OSI参考模型虽然完备,但是太过复杂,不实用,而之后的TCP/IP参考模型经过一系列的修改和完善得到了广泛的应用,TCP/IP参考模型包括应用层,传输层,网络层和网络接口层,TCP/IP参考模型与OSI参考模型有较多相似之处,各层也有一定的对应关系,具体对应关系如下图所示: 应用层,TCP/IP参考模型的应用层包含了所有高层协议,该层与OSI的会话层,表示 2021-08-30 Network TCPIP
一致性Hash 一致性Hash 一致性Hash算法主要应用于分布式存储系统中,可以有效地解决分布式存储结构下普通余数Hash算法带来的伸缩性差的问题,可以保证在动态增加和删除节点的情况下尽量有多的请求命中原来的机器节点。 Hash环 一致性Hash算法也是使用取模的方法,只是刚才描述的取模法是对服务器的数量进行取模,而一致性Hash算法是对2^ 32取模,,一致性Hash算法将整个Hash值控件组织成一个虚 2021-08-28 Software BackEnd Distributed
分布式系统概念 分布式系统概念 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行。 分布式系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统,其目的是利用更多的机器,处理更多的数据 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本,此时,用于简化增删改查工作量的数据访问框架 2021-08-28 Software BackEnd Distributed
Java 锁 Java 锁 锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制,锁旨在强制实施互斥排他,并发控制策略。 乐观锁与悲观锁 ,对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改,Java中,synchronized关键字和Lock的实现类都是悲观锁。 而乐观 2021-08-28 Software Language Java JavaSE 多线程
Java 线程 Java 线程 线程与进程 进程(Process) :是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础,在当代面向线程设计的计算机结构中,进程是线程的容器,程序是指令,数据及其组织形式的描述,进程是程序的实体。 线程(thread) :是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个 2021-08-28 Software Language Java JavaSE 多线程
Java 基本数据类型包装类 Java 基本数据类型包装类 为什么需要包装类? 很多人会有疑问,既然Java中为了提高效率,提供了八种基本数据类型,为什么还要提供包装类呢? 因为Java是一种面向对象语言,很多地方都需要使用对象而不是基本数据类型,比如,在集合类中,我们是无法将int,double等类型放进去的,因为集合的容器要求元素是Object类型。 为了让基本类型也具有对象的特征,就出现了包装类型,它相当于将基本类型 2021-08-28 Software Language Java JavaSE 其他核心类
Mybatis Plus 代码生成器 Mybatis Plus 代码生成器 pom.xml 1234567891011<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.0</ver 2021-08-02 Software Language Java Mybatis MybatisPlus
ZooKeeper 概念 ZooKeeper 概念 ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务,同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 一个典型的分布式数据一致性的解决方案,分 2021-07-23 Software BackEnd Distributed ZooKeeper