渔溪大王
码龄7年
关注
提问 私信
  • 博客:228,500
    228,500
    总访问量
  • 46
    原创
  • 1,377,772
    排名
  • 59
    粉丝
  • 0
    铁粉

个人简介:锐气藏于胸,和气浮于脸,才气见于事,义气施于人。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
  • 加入CSDN时间: 2017-11-13
博客简介:

weixin_41047704的博客

查看详细资料
个人成就
  • 获得263次点赞
  • 内容获得71次评论
  • 获得1,014次收藏
  • 代码片获得188次分享
创作历程
  • 1篇
    2021年
  • 24篇
    2019年
  • 21篇
    2018年
成就勋章
TA的专栏
  • java  web
    4篇
  • 计算机网络知识
    3篇
  • mysql数据库
    3篇
  • git
    2篇
  • java
    27篇
  • 计算机硬件
    2篇
  • 数据结构
    2篇
  • 算法
    1篇
  • Spring Cloud
    1篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

重写了equals()真的就一定要重写hashCode()吗?

目录1、结论2、使用哈希表相关容器存储自定义对象时,为什么重写了equals()就一定要重写hashCode()?为什么重写了equals()就一定要重写hashCode()?其实这个问题之前自己也没有完全想清楚,反正八股文嘛,背就完了呗!但是随着工作的这两年以来,不断丰富的人生阅历以及不断增加的代码量,让我对很多事物的认知也悄悄地发生一些改变,作为一个自认为有点追求的人,自己拿来恰饭的东西还是要尽量做到知其然并知其所以然。首先先来看看万物之祖Object类中的equals()和hashC
原创
发布博客 2021.07.29 ·
578 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

使用SimpleDateFormat进行日期格式转换时遇到的问题

最近写代码的时候,使用了SimpleDateFormat对Date进行格式转换,刚开始我是这样写的:SimpleDateFormat sdf = new SimpleDateFormat("HH:MM:SS");这样写乍一看似乎没有什么毛病,但是实质上隐藏了很大的问题。仔细看一看构造参数中的"HH:MM:SS",当时我并不知道H、M、S的大小写分别代表了不同的意思,所以导致时间格式并没有...
原创
发布博客 2019.08.02 ·
5096 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

通过Spring Cloud Gateway转发WebSocket实现消息推送

一、总体方案流程先上总体流程图吧,(我没有用visio来画图,而是用了网上的一个工具Process On,所以图看上去不是那么正规。不用visio主要还是因为visio用的太菜了,有机会还是要多练习一下使用visio画图)。主要起了四个工程,一个是模拟用户服务的工程user-service(模拟两个服务就通过两个不同的端口来模拟); 一个是Spring Cloud Gateway...
原创
发布博客 2019.06.24 ·
71987 阅读 ·
23 点赞 ·
30 评论 ·
141 收藏

Git的学习和使用(一:基础概念部分)

前言今天是五一假期的第一天,突然想起来应该对最近工作中遇到的一个非常让我头痛的问题进行一下深入的学习和探索。这个问题是什么呢?就是git的使用。虽然以前自己做项目的时候也用过git,但是那时候对git的使用很浅,只要是push successfully就完事了,没有注意到git有那么多的使用细节。现在参与到团队开发中以后,我发现个人开发和团队开发是完全不一样的,相较于单人开发项目时的随意和松散...
原创
发布博客 2019.05.01 ·
473 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

排序算法总结

1、冒泡排序1.1、冒泡排序的基本思想从无序队列的头部开始(当然也可以从尾部开始,两两比较,将最小的数交换到队首),从前往后,将相邻的两个数进行两两比较,根据大小交换位置,将最大的数交换到无序数列的队尾,从而成为有序数列的一部分。下一次继续这个过程,直到将无序数列变成有序数列。如下图所示,每次都把最大的数浮动到队列的末尾:1.2、java代码实现package Bubbl...
原创
发布博客 2019.02.17 ·
316 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

MySql学习笔记

 目录1、常见的MySql引擎1.1、什么是MySql引擎?1.2、存储引擎的作用是什么?1.3、为什么要合理选择数据库存储引擎?1.4、InnoDB引擎(Version5.1以后的默认存储引擎)1.5、MyIsam引擎(Version5.1以前的默认存储引擎)1.6、InnoDB引擎和MyIsam引擎的对比2、事务2.1、什么是MySql事务?2.2、...
原创
发布博客 2019.02.14 ·
389 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

常见的几种Java设计模式

目录1、什么是设计模式?设计模式有什么用?2、设计模式应该遵循的面向对象设计原则3、设计模式的六大原则4、设计模式的四种类型(包括J2EE设计模式)5、几种常见的设计模式5.1、工厂模式5.2、抽象工厂模式5.3、单例模式5.4、适配器模式5.5、装饰器模式5.6、代理模式5.7、策略模式5.8、观察者模式1、什么是设计模式?设计模式有什么用...
原创
发布博客 2019.02.05 ·
1339 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

码出高效读书笔记:ConcurrentHashMap

考虑到线程并发安全性,ConcurrentHashMap是比HashMap更加推荐的一种哈希式集合。JDK8对ConcurrentHashMap进行了脱胎换骨的改造,使用了大量的lock-free技术来减轻因锁的竞争而对性能造成的影响,涉及了volatile、CAS、锁、链表、红黑树等众多知识点。CAS:Compare And Swap,它是解决轻微冲突的多线程并发场景下使用锁造成性能损耗的一...
原创
发布博客 2019.02.01 ·
271 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程池类ThreadPoolExecutor解析

1、使用线程池的好处线程使应用能够更加充分合理地协调利用CPU、内存、网络、I/O等系统资源。线程的创建需要开辟虚拟机栈、程序计数器、本地方法栈等线程私有的内存空间。在线程销毁时需要回收这些资源。频繁地创建和销毁线程会浪费大量的系统资源,增加并发编程风险。另外,在服务器负载过大的时候,如何让新线程等待或者友好地拒绝服务?这都是线程自身无法解决的。所以需要通过线程池协调多个线程,并实现类似主次线...
原创
发布博客 2019.01.25 ·
488 阅读 ·
1 点赞 ·
3 评论 ·
0 收藏

码出高效读书笔记:线程同步

1、什么是同步Q1:什么是原子性操作?A1:众所周知在物理世界中,原子是最小的粒子,是不可分割的。所谓原子性操作就是指不可分割的一系列操作指令,在执行完毕之前不会被其他操作中断,要么全部执行,要么全部不执行。举个例子,i++就不是原子性操作,因为它分为三步:取i的值、i+1、赋值,即ILOAD---->IINC---->ISTORE。而i=1就是最简单的原子性操作。回归正题...
原创
发布博客 2019.01.23 ·
237 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程安全和锁

1、进程与线程的概念先来复习一下操作系统中所讲的进程、线程这两个概念:进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。 线程:是进程的一个执行单元,是进程内可调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。2、并发与并行的概念并发:指的是某个时间段内,多任务交替处理的能力。在某段执行时间内,每个CPU不可能...
原创
发布博客 2019.01.22 ·
1275 阅读 ·
4 点赞 ·
2 评论 ·
7 收藏

HashMap详解

更正一下:之前对于hashmap初始容量这一块的知识,我在理解上出了问题,初始容量应该指的是哈希表中能存放的元素的数量,而并非是hashmap实例创建时哈希表中数组的长度。目录1、HashMap简介1.1、HashMap的继承关系1.2、HashMap的数据结构2、HashMap源码分析(使用的是JDK1.7版本的源码)2.1、HashMap的四种构造函数2.2、Has...
原创
发布博客 2019.01.18 ·
777 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

码出高效读书笔记:树

1、树(tree)树是一种常用的数据结构,它是一个由有限节点组成的一个具有层次关系的集合,数据就存在树的这些节点中。最顶层只有一个节点,称为“根节点”(root)。在分支处有一个节点,指向多个方向,如果某节点下方没有任何分叉的话,就是叶子节点。从某节点出发,到叶子节点为止,最长简单路径上边的条数,称为该节点的高度。 从根节点出发,到某节点边的条数,称为该节点的深度。如下图所示的树,根节...
原创
发布博客 2019.01.16 ·
306 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

码出高效读书笔记:Comparable与Comparator、hashCode与equals

1、Comparable和ComparatorJava中两个对象相比较的方法通常用在元素排序里,常用的两个接口分别是Comparable和Comparator。前者Comparable是自己和自己比,可以看作是自营性质的比较器。从词根上分析,Comparable以-able结尾,表示它有自身具备某种能力的性质,表明Comparable对象本身是可以与同类型进行比较的,它的比较方法是comp...
原创
发布博客 2019.01.15 ·
433 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

码出高效读书笔记:集合与泛型

集合与泛型的联合使用,可以把泛型的功能发挥到极致,很多程序员不清楚List、List<Object>、List<?>三者的区别,更加不能区分<? extends T>与<? super T>的使用场景。List<?>是一个泛型,在没有赋值之前,表示它可以接受任何类型的集合赋值,赋值之后就不能再随便往里添加元素了,下面的代码很好地说明了...
原创
发布博客 2019.01.14 ·
485 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

ArrayList源码分析

1、ArrayList简介ArrayList是基于数组实现的List类。 ArrayList是容量可以改变的非线程安全集合,当多个线程访问同一个ArrayList时,程序需要手动控制保证该集合的同步性。 ArrayList的特点是遍历速度快,插入和删除操作速度慢。2、ArrayList源码分析package Test;import java.util.*;public cl...
原创
发布博客 2019.01.14 ·
151 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

码出高效读书笔记:数据结构概要

1、数据结构1.1数据结构定义数据结构是指逻辑意义上的数据组织方式及其相应的处理方式。逻辑意义:比如说,二叉树在磁盘中的存储真的是树形排列的吗?并非如此,树的存储可能是基于物理上的顺序存储方式,可以理解为一个格子一个格子连续地放,设想有7个节点的二叉树,第一个格子放根节点,第二个格子放左子树的根节点;并且根据引用知道左叶子在后续的哪个格子里;第三个格子放右子树根节点,依此类推。此外,树...
原创
发布博客 2019.01.13 ·
179 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

码出高效读书笔记:异常与日志

1、区分throws和throw(1)throws定义一个方法时,可以用throws关键字声明,使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。 throws关键字格式:public 返回值类型 方法名称(参数列表,,,)throws 异常类{}。 请看下面一段代码:package Test;public class iTest { ...
原创
发布博客 2019.01.09 ·
379 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

码出高效读书笔记:类的加载过程

1、什么是机器码和字节码?Java是如何实现一次编译,到处执行的?Q1:什么是机器码?A1:在计算机的世界中,0和1是计算仅能识别的信号,经过0和1的不同组合产生了数字上的操作,同时通过不同的组合也产生了各种字符。同样,可以通过不同的组合产生不同的机器指令。在不同的时代,不同的厂商,机器指令组成的集合是不同的。但毕竟CPU是底层基础硬件,指令集通常以扩展兼容的方式向前不断演进。而机器码是离...
原创
发布博客 2019.01.08 ·
289 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

码出高效读书笔记:基本数据类型、包装类型及字符串

1、基本数据类型基本数据类型是指不可再分的原子数据类型,内存中直接存储此类型的值,通过内存地址即可直接访问到数据,并且此内存区域只能存放这种类型的值。一般来说Java有8中数据类型,分别为byte、char、short、int、long、float、double、boolean,但是码出高效中多给出了一种基本数据类型,即refvar,这是一种面向对象世界中的引用变量,也叫作引用句柄。前...
原创
发布博客 2019.01.06 ·
612 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏
加载更多