自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

我的博客文章

  • 博客(26)
  • 资源 (6)
  • 收藏
  • 关注

原创 2020年博客写作半年度总结

背景虽然在非常早的时间注册了csdn,但真正开始博客写作的,是在今年的三月份。突如其来的疫情,打乱了我们生活的节奏,也放慢了工作的脚步。在这期间读了不少的书籍,也正是受到了《写作是最好的自我投资》这本书的影响,回到了csdn,开始技术写作。勇气刚开始写的时候担心自己坚持不下来动笔了感觉没什么写,内容不充实在互联网上写博客,总是要被人看的,怕被人笑话公开写作肯定需要勇气,特别是需要“被讨厌的勇气”:其实写作的世界很单纯,是你自己搞复杂了:你写博客不是要成为职业作家,你写的东西是给自己看的。

2020-06-30 14:29:10 306

原创 Java网络编程的基础知识:IP地址

文章目录概念Java APIInetAddress类NetWorkInterface类案例:获取本机所有的IPv4地址概念是指互联网协议地址(Internet Protocol Address);用来给一个网络中的计算机设备做唯一的网络编号。IPv4:是一个32位的二进制数,通常被分为4个字节,表示成a.b.c.d的形式,其中a.b.c.d都是0-255之间的十进制数,比如192.168.0.1;最多可以表示42亿个地址。IPv6:采用128位地址长工,每16个字节一组,分成8组16进制数,比

2020-06-29 16:44:53 369

原创 自已做动画及编写程序搞清楚最大堆的实现原理

文章目录背景概念最大堆最大堆的线性存储动画实现最大堆加入新元素代码实现最大堆加入新元素动画实现最大堆取出最大元素代码实现最大堆取出最大元素程序测试最大堆的应用--优先队列写在最后背景二叉树是数据结构中的重点,也是难点。二叉树比数组、栈、队列等线性结构相比复杂度更高,想要做到心中有“树”,需要自己动手画图、观察、思考,才能领会其真谛。在上篇文章《自己动手作图深入理解二叉树、满二叉树及完全二叉树》中,我们对完全二叉树有了一定认识,该文将对一种特殊的完全二叉树”最大堆”进行底层研究。概念堆(hea

2020-06-28 15:20:25 384 1

原创 Java网络编程的基础知识

文章目录基本概念网络通信协议分类IP地址端口号TCP/IP协议TCP通信程序握手连接实现方式客户端的实现代码服务端的实现代码基本概念通过计算机网络可以使多台计算机实现连接,且连接的计算机进行通信时必须遵守一定的规则,这类规则被称为网络通信协议,它对数据的传输格式、速率、步骤等做了统一规定,这些规定是网络中计算机相互完成数据交换的必要前提。网络通信协议分类UDP:User Datagram Protocol,用户数据报协议;不提供复杂的控制机制,利用IP提供面向无连接的通信服务;效率高,但不安全

2020-06-27 17:05:23 366

原创 用实际的例子讲清楚Java I/O的序列化流与反序列化流

文章目录概念序列化流: ObjectOutputStream反序列化流: ObjectInputStreamtransient关键字InvalidClassException实际案例概念把对象以流的方式,写入到文件中保存,这种方式称为对象的序列化。把文件中保存的对象,以流的方式读取出来,这种方式称为对象的反序列化。序列化流: ObjectOutputStream构造方法:– ObjectOutputStream(OutputStream out):参数 OutputStream为字节输出流

2020-06-26 16:32:53 226

原创 通过手写实际的代码案例理解Java I/O的缓冲流

文章目录概念字节缓冲流BufferedInputStreamBufferedOutputStream字节缓冲流的实际例子字符缓冲流BufferedWriterBufferedReader字符缓冲流的实际例子概念在基本的字节输入输出流或字符输入输出流,是通过JVM与操作系统直接与文件打交道,每次操作时,都需要进行硬盘读取或写入,效率低且速度慢。java i/o缓冲流的引入,是在原有输入输出流的基础上增加一个缓冲区(底层数据结构为数组),缓冲区的引入,减少了程序与硬盘文件读写的次数,可以极大地提高效率。

2020-06-25 16:33:48 283

原创 自己动手作图深入理解二叉树、满二叉树及完全二叉树

文章目录背景概念结点二叉树二叉树的深度满二叉树完全二叉树完全二叉树的线性存储完全二叉树的创建与遍历背景二叉树是数据结构中的重点,也是难点。二叉树是一种非线性结构,比数组、栈、队列等线性结构相比复杂度更高,想要做到心中有“树”,需要自己动手画图、观察、思考,才能领会其真谛。该文将会结合图形,深入理解二叉树、满二叉树及完全二叉树的概念。概念结点结点是组成二叉树的最小单元。– 用图形表示– 用代码表示 // 结点 class Node<E> { E e;

2020-06-24 17:36:37 4120 5

原创 用一个图书库实例搞懂二分搜索树的底层原理

文章目录一、背景二、概念1、定义2、 动画示例三、图书库实例3.1、项目需求3.2、代码结构3.3、图书类3.4、二分搜索树的底层实现3.5、图书库的构建四、深入理解一、背景二叉树是一种常用的数据结构,更是实现众多算法的一把利器。本文将通过建立一个图书库的实例对二叉树中的常用类型:二分搜索树(Binary Search Tree)进行底层原理的深入理解。二、概念1、定义1 二分搜索树是一颗二叉树2 二分搜索树每个节点的左子树的值都小于该节点的值,每个节点右子树的值都大于该节点的值3 任意一个

2020-06-23 14:54:24 467

原创 Redis项目应用场景与实例(四):集合(Set)

文章目录一、背景二、项目需求三、环境配置四、项目代码4.1 Redis工具类增加集合操作方法4.2 客户实体类4.3 客户信息WebApi4.4 记录并缓存客户信息实现类五、测试与验证5.1 相同信息自动去重5.2 不同集合之间的交集与差集六、源码一、背景在前三篇文章《Redis项目应用场景与实例(一):哈希表(Hash)》《Redis项目应用场景与实例(二):字符串(String)》《Redis项目应用场景与实例(三):队列(List)》介绍了Redis对于Hash表、字符串、队列的操作,该

2020-06-22 11:58:40 814

原创 Java IO字符流深入分析

文章目录字符流字符输入流(Reader)文件输入流FileReader字符输出流(Writer)文件输出流FileWriterFileWriter中的flush方法和close方法通过FileWriter对文件进行续写用try catch 处理字符流异常字符流上篇文章Java IO字节流深入分析对字节流进行了解析,该文将对字符流进行深入分析。字符流是在字节流的基础上,加上编码形成的数据流;因为字节流在操作字符时,可能会有中文导致的乱码,所以由字节流引申出了字符流。字符输入流(Reader

2020-06-21 16:10:54 214

原创 疫情时代程序员的应知应会

背景最近陆续看了一些文章,有经济及投资方向的、技术发展及创新的、技术人职业发展与未来规划的等等。总结来看,在疫情时代,不确定性更多,挑战也更大。个人也想通过博文记录及表达一些自已的所见所得及想法(文章纯属个人浅见,仅供参考)。时代上面说到了疫情时代与不确定性,如果非得回归到历史长河中去映射,有的观点说是2008年金融危机,有的观点说是大萧条时代,我比较认同的是瑞.达利欧(桥水基金创始人,《原则》的作者)的观点,现在所处的时期与1930年代世界经济危机时期非常类似,具体可参见其文章。历史相似性的主要观

2020-06-20 12:03:46 366

原创 哈希表(HashTable)的深入理解及实际演练

文章目录概念哈希函数的构建哈希函数构建的代码演练哈希地址冲突的处理冲突的处理办法哈希地址解决冲突的代码演练哈希表的查找概念在记录的存储位置和它的关键字之间建立一个确定的对应关系H,以函数H(key)作为关键字为key的记录在表中的位置,这个对应关系H称为哈希(Hash)函数(又称散列函数),按这个思想建立的表为哈希表(HashTable)。哈希函数的构建直接定址法:取关键字key的一个线性函数为哈希函数,即:H(key)=a×key+b,其中a、b为常数,且a≠0。– 举例:学生表关键字

2020-06-19 17:48:32 805

原创 Apache JMeter 5.3:WebApi压测的利器

文章目录介绍下载安装设置中文使用1、添加线程组2、对线程组添加HTTP请求3、添加HTTP信息头管理器4、添加各种监听器5、运行介绍jmeter是apache公司基于java开发的一款开源压力测试工具[github地址],最新版本V5.3。jmeter可以做接口测试:包括http get/post请求、加cookie、加header、加权限认证、上传文件等。下载安装国内镜像地址解压:运行设置中文Options->Choose Language->Chinese(S

2020-06-18 16:28:04 1397 3

原创 Redis项目应用场景与实例(三):队列(List)

文章目录一、背景二、项目需求三、环境配置四、项目代码4.1 Redis工具类增加队列操作方法4.2 图片上传服务增加Redis队列五、测试与验证六、源码一、背景在前两篇文章《Redis项目应用场景与实例(一):哈希表(Hash)》《Redis项目应用场景与实例(二):字符串(String)》介绍了Redis对于Hash表、字符串的操作,该文将对队列(List)的应用场景进行项目演练。stringshasheslistssetssorted sets封锁一个IP地址

2020-06-17 13:30:56 2314

原创 Java高频面试问题:类的初始化顺序

文章目录背景概念初始化顺序代码验证注意点背景在Java面试过程中,关于虚拟机中类的初始化过程及初始化顺序是经常被问到的问题,本文将通过实例代码对类的初始化顺序做出说明。概念类的初始化阶段是类加载过程的最后一个步骤,Java虚拟机才真正开始执行类中编写的Java程序代码,初始化阶段就是执行类构造器()方法的过程。初始化顺序代码验证##### 父类 /** * 类的初始化过程--父类 * * @author zhuhuix * @date 2020-06-16 */pu

2020-06-16 15:42:39 241

原创 Redis项目应用场景与实例(二):字符串(String)

文章目录一、背景二、项目需求三、环境配置四、项目代码4.1 Redis工具类增加字符串数据类型4.2 登录实现类增加Redis计数判断五、测试与验证六、源码一、背景在上篇文章 《Redis项目应用场景与实例(一):Hash(哈希表)》 中已经介绍了Redis对于Hash表的操作,该文将对字符串(String)的应用场景进行项目演练。stringshasheslistssetssorted sets封锁一个IP地址存储用户信息模拟消息队列自动排重以某一个条件为权重,进行

2020-06-15 11:56:04 631

原创 Java IO字节流深入分析

文章目录一、分类二、字节流2.1 字节输出流(OutputStream)2.1.1 输出流的方法2.1.2 输出流的使用2.2 字节输入流(InputStream)2.2.1 输入流的方法2.2.2 输入流的使用三、字节流实例练习四、补充说明一、分类Java IO流分为字节流与字符流:输入流输入流字节流InputStreamOutputStream字符流ReaderWriter二、字节流文件数据在存储时,都是以二进制数字的形式保存的,即文件就是一个个字节

2020-06-14 16:53:09 200

原创 Redis项目应用场景与实例(一):Hash(哈希表)

文章目录一、背景二、应用场景三、环境配置四、SpringBoot集成Redis4.1 添加依赖4.2 配置文件 添加redis连接配置4.3 增加RedisConfig配置及工具类五、核心代码解析六、测试与验证七、源码一、背景Redis在互联网的应用已经非常普遍,作为一款性能优异的内存数据库,有效地支撑了互联网应用高并发、高可用、高性能的特性。作为一名JAVA程序员,必须通过实战项目的演练才能有效地掌握Redis的典型应用场景和技术特点。Redis 是一个开源(BSD许可)的,内存中的数据结构

2020-06-12 17:20:03 3211

原创 以猜数字游戏引出的分治算法的理解与思考

文章目录一、背景二、猜数字游戏2.1 游戏规则2.2 猜数字游戏源码2.3 猜数字游戏技巧三、分治算法3.1 思想与策略3.2 适用的特征3.3 分治算法的典型应用3.3.1 归并排序的原理3.3.2 自顶向下的归并排序源码四、总结一、背景分治算法是计算机五大常用算法之一,也是在JAVA编程中经常用到的算法之一。对于分治算法的理解,往往会停留在一些枯燥的概念上,比如“分而治之”,“问题原子分解”等。该文将会通过一个猜数字的游戏入手,引出对于分治算法基本思想的思考。二、猜数字游戏2.1 游戏规则由

2020-06-11 16:39:59 1027

原创 通过与C++程序对比,彻底搞清楚JAVA的对象拷贝

文章目录一、背景二、JAVA对象拷贝的实现2.1 浅拷贝2.2 深拷贝的实现方法一2.3 深拷贝的实现方法二三、C++程序对比3.1 拷贝构造函数3.2 源码四、总结一、背景JAVA编程中的对象一般都是通过new进行创建的,新创建的对象通常是初始化的状态,但当这个对象某些属性产生变更,且要求用一个对象副本来保存当前对象的“状态”,这时候就需要用到对象拷贝的功能,以便封装对象之间的快速克隆。二、JAVA对象拷贝的实现2.1 浅拷贝被复制的类需要实现Clonenable接口;覆盖clone()方法

2020-06-10 17:25:46 280

原创 用队列实现栈,用栈实现队列,听起来有点绕,都搞懂了就掌握了精髓!

文章目录一、背景二、概念2.1 栈2.2 队列三、栈和队列的相互实现3.1 用队列实现栈3.2 用栈实现队列四、总结一、背景栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性。二、概念2.1 栈栈[Stack]:是一种限定仅在表尾进行插入和删除操作的线性表;即后进先出(LIFO-last in first out),最后插入的元素最先出来入栈(push)出栈 (pop)2.2 队列队

2020-06-09 18:34:12 424

原创 研究JAVA递归方法与文件I/O:手写一个简单的搜索指定文件的方法

文章目录一、背景二、概念2.1 递归2.2 文件过滤接口三、搜索指定文件3.1 简单需求描述3.2 代码3.3 注意点一、背景在java递归详解与应用文章中,我们做了个小练习:《使用递归列出windows目录下的所有文件夹及所有文件》,通过该练习,不仅对递归方法有了初步的认识,而且对JDK的文件IO的基础方法也有了一定的了解,该文将对以上掌握的知识再做更深入的研究。二、概念2.1 递归所谓递归就是自己调用自己。递归一定要有条件限定,保证递归能够停止下来,否则会形成死循环。2.2 文件过滤接

2020-06-07 16:02:12 265

原创 用一个通用测试类简化排序算法时间复杂度的研究

文章目录一、背景二、概念2.1、时间复杂度的定义2.2、时间复杂度的比较三、测试类3.1、程序结构3.2、测试工具类3.3、 排序算法接口定义3.4、 各种排序算法的实现3.5、 测试主程序3.6、 测试分析四、写在最后一、背景在学习算法的过程中,除了熟练掌握各种算法的程序逻辑外,还经常需要用到一些测试案例对算法的时间复杂度做具体的测试。本文将通过打造一个测试类工具包,让我们可以更简便地研究排序算法的时间复杂度。二、概念2.1、时间复杂度的定义即从序列的初始状态到经过排序算法后形成的最终排序状态

2020-06-06 12:51:21 319

原创 用斗地主的实例学会使用java Collections工具类

文章目录一、背景二、概念1、定义2、方法2.1、排序方法2.2、查找/替换方法三、斗地主实例3.1、代码结构3.2、常量定义3.3、单只牌类3.4、玩家类3.5、主程序四、深入理解一、背景最近在学习数据结构和算法的过程中频繁用到了Collections工具类,这是开发中的一把利器,简化了许多涉及集合的编码,该文将通过实例对此工具类进入深入剖析。二、概念1、定义java.util.Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于J

2020-06-05 13:45:17 5007 6

原创 数据结构:用实例分析ArrayList与LinkedList的读写性能

文章目录背景ArrayListLinkedList实例分析1、增加数据2、插入数据3、遍历数据3.1、LinkedList遍历改进总结背景ArrayList与LinkedList是Java编程中经常会用到的两种基本数据结构,在书本上一般会说明以下两个特点:对于需要快速随机访问元素,应该使用ArrayList。对于需要快速插入,删除元素,应该使用LinkedList。该文通过实际的例子分析这两种数据的读写性能。ArrayListArrayList是实现了基于动态数组的数据结构:priv

2020-06-03 17:37:51 475

原创 用一个通俗易懂的例子彻底说清楚单例模式

文章目录一、背景二、单例模式1、概念2、网站计数的单例实现2.1 饿汉模式2.2 懒汉模式2.3 枚举类实现单例模式三、总结一、背景在企业网站后台系统中,一般会将网站统计单元进行独立设计,比如登录人数的统计、IP数量的计数等。在这类需要完成全局统计的过程中,就会用到单例模式,即整个系统只需要拥有一个计数的全局对象。在网站登录这个高并发场景下,由这个全局对象负责统计当前网站的登录人数、IP等,即节约了网站服务器的资源,又能保证计数的准确性。二、单例模式1、概念单例模式是最常见的设计模式之一,

2020-06-01 17:29:31 540

微信小程序使用的md5.js

微信小程序使用的md5.js,用于加解密 /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002. * Code also contributed by Greg Holt * See http://pajhome.org.uk/site/legal.html for details. */

2020-07-29

maven .xmind

maven架构思维导图,分为maven项目目录结构,常用构件命令,生命周期,仓库,POM常见元素,依赖范围等,可供下载学习分析使用

2020-03-19

Web Developer.png

web开发思维导图图片,分为三个部分:基本,前端开发,后端开发。

2019-08-19

web developer.xmind

Web Developer 思维导图,分三个维度:基本技能;前端开发;后端开发

2019-08-19

.net cf 3.5安装包

wince .net compact framework 3.5安装包

2015-12-26

某公司OA系统源码,不错的学习工具

不错的公司OA源代码,ms visual studio 2003开发环境

2009-10-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除