第二颗大白菜
码龄5年
  • 2,403,510
    被访问
  • 357
    原创
  • 1,550,123
    排名
  • 171
    粉丝
关注
提问 私信

个人简介:每天写点什么,不是为了得到一些什么,也不是向谁证明一些什么,更不是为了存在感,而是让自己知道每天都做了些什么。

  • 加入CSDN时间: 2017-09-13
博客简介:

第二颗大白菜

博客描述:
每天写点什么,不是为了得到一些什么,也不是向谁证明一些什么,更不是为了存在感,而是让自己知道每天都做了些什么。
查看详细资料
个人成就
  • 获得512次点赞
  • 内容获得317次评论
  • 获得1,062次收藏
创作历程
  • 30篇
    2021年
  • 90篇
    2020年
  • 160篇
    2019年
  • 121篇
    2018年
成就勋章
TA的专栏
  • Java大S养成之路
    18篇
  • mongodb
    9篇
  • MySQL
    11篇
  • 网络
  • JMM
    14篇
  • JUC
    5篇
  • Java基础
    15篇
  • redis
    9篇
  • elasticsearch
    7篇
  • IO
    1篇
  • jvm
    6篇
  • 解决方案
    1篇
  • 笔记
    6篇
  • 敏捷开发
    2篇
  • Redisson
    1篇
  • swagger
    1篇
  • 机器学习
    2篇
  • 中间件
    4篇
  • Shiro
    1篇
  • Spring JPA
    1篇
  • hibernate
    1篇
  • idea
    2篇
  • htmlunit
    1篇
  • php
  • 软考-软件设计师复习笔记
    52篇
  • sonar
    1篇
  • 数据结构
    2篇
  • 事务
    2篇
  • log
    1篇
  • 开发软件安装使用教程
    8篇
  • JavaSE
    28篇
  • 开发出现错误解决方案
    13篇
  • 学而不思则罔
    37篇
  • Javaweb
    32篇
  • 思想
    13篇
  • 软考
    48篇
  • 程序人生
    26篇
  • 软设
    52篇
  • sql
    22篇
  • ssh
    5篇
  • Spring
    18篇
  • Java类爬虫
    1篇
  • mybatis
    8篇
  • springmvc
    9篇
  • 前端
    3篇
  • 资讯
    8篇
  • 科技
    6篇
  • 微服务
    6篇
  • SpringBoot
    17篇
  • Java
    6篇
  • 服务器
    5篇
  • 建站
    2篇
  • Android
    2篇
  • springcloud
    6篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
  • 大数据
    mysqlredis
  • 数据库管理
    数据仓库数据库架构dba数据库开发
  • 前端
    javascriptcss
  • 后端
    spring架构
  • 移动开发
    android studio
  • Android
    rxjava
  • 人工智能
    语音识别自然语言处理图像处理nlp数据分析回归
  • 网络
    https
  • 搜索
    elasticsearch
  • 安全
    web安全安全架构
  • 服务器
    linux
  • 设计
    photoshop
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

继上篇文章说到的面向过程和面向对象,再聊聊我眼中的面向对象

继上篇文章说到的面向过程和面向对象,再聊聊我眼中的面向对象经典典例:把大象放冰箱;面向过程,专注于 “开冰箱门” “塞大象” “关冰箱门” 过程,将3个过程串联起来,就完成了一个把大象放进冰箱的事件;面向对象:将其分析出几个实体 “冰箱” “大象” ,那么冰箱有两个行为“开门”“关门”,大象有一个动作“进冰箱”,我们所考虑的是行使各个对象实体的行为,让其成为一个事件。面向对象,我们更多是对事务进行边界划分,将各个事务间相互隔离,将事务特有的属性和行为进行封装,我们对于操作者而言,..
原创
发布博客 2021.04.22 ·
86 阅读 ·
1 点赞 ·
1 评论

什么是失血模型和充血模型?(DDD)

什么是失血模型和充血模型?如题,那么什么是失血模型(贫血模型)呢?我们在日常开发中,经常会需要用到各种model,定义各种 DTO/VO/BO/PO 等数据载体,那么我们细想一下,对于这种实体,我们通常对它的定义是什么?我们对它的使用场景是哪些?反正笔者之前,对于一个类的定义就是如下:/** * @author WangJi * @Description 人类 * @Date 2021/4/22 8:27 */public class Human {​ ...
原创
发布博客 2021.04.22 ·
1702 阅读 ·
6 点赞 ·
2 评论

Base理论是什么?之前也聊到过CAP理论

Base理论是什么?之前也聊到过CAP理论基于标题的CAP理论,我们再升华一个新的理论--BASE理论;其实CAP理论和BASE理论是有因果关系的;通俗的来讲,我们知道CAP理论中,三角关系,在同时共存的情况下,我们只能实现2/3的要求;那么当不同的分布式系统选择的组合情况下,那么将也会有不同的现象;那么我们都知道,对于CAP理论,我们更多的会考虑P的选择,然后再去选择CA中的其一,因为对于分布式来说,如果分区容错性都不考虑了,那么只能回归到单体服务的架构模型上了。那么对于C(.
原创
发布博客 2021.04.21 ·
99 阅读 ·
0 点赞 ·
0 评论

总结一个问题:finally一定会执行,但是return的变量是不是对应的变量呢?

总结一个问题:finally一定会执行,但是return的变量是不是对应的变量呢?贴代码 public static class Test { public static int anInt() { int i = 0; try { i++; i = i / 0; return i; } catch (E...
原创
发布博客 2021.04.20 ·
55 阅读 ·
0 点赞 ·
0 评论

关于线上查询脚本无法使用索引问题解决分析(mongodb)

问题背景,查询脚本无法使用索引,导致全表扫描,直接mongodb服务器节点cpu打满,导致生产其他用户查询卡死。直接分析查询条件or 关键字查询,有个注意事项 就是索引命中使用的问题,按照上图中分析,我们再到mysql上试验一下:(更好理解了)就是说 or 必须所有关键字都要有索引,并且都需要最优索引,才会有最好的结果合并...
原创
发布博客 2021.03.31 ·
109 阅读 ·
0 点赞 ·
0 评论

HTTP 和 HTTPS 其实我一直很模糊

HTTP 和 HTTPS 其实我们一直很模糊1.如题,在这种信息数据量大爆炸的时代,我们每一个人在网络上冲浪,来回穿梭。那如果有人告诉你:你相当于在裸奔?你会怎么对待这件事情呢?一种做法,拒绝使用互联网,拒绝在网络上进行任何会使用到我们信息的场景(基本不可能,数据时代,有数据建模,人物画像...);逃避任何的信息录入方式。一种做法,继续使用,但是你必须得给我保证,我是安全独立的在使用,而不是公开透明。那么这就得说到我们的安全协议了。2.笔者很苦恼,为什么,我自己搭...
原创
发布博客 2021.02.21 ·
164 阅读 ·
0 点赞 ·
1 评论

刚new出来的对象实例,内部的属性对象实例是如何在内存中访问的?

刚new出来的对象实例,内部的属性对象实例是如何在内存中访问的?1.先贴个代码(1)我们定义了两个类:一个 Book书、一个Bookmark书签@Datapublic static class Book {​ private int id;​ private String name;​ private Bookmark bookmark;​ public Book(int id, String name, Bookmark bookmark) {...
原创
发布博客 2021.02.17 ·
183 阅读 ·
0 点赞 ·
0 评论

一个对象的实例中到底有什么信息?

一个对象的实例中到底有什么信息?记得上回我在说堆内存的时候,说到,堆内存中存放的都是对象的实例数据,一个个的实例。然后再后来的对象实例的创建中,我们也提到了对象实例的创建过程,也提到了对象实例。那么问题来了,对象实例到底有哪些数据组成,为什么这么多实例对象呢?我们带着这个问题去分析一下对象的实例中的内存布局情况。1.话不多说,先上一张模型图。大家可以先看看,我们带着这张图进行分析,可以现在看不懂,但是在我们分析后,就需要看懂了。2.图片上很明显...
原创
发布博客 2021.02.17 ·
290 阅读 ·
2 点赞 ·
0 评论

CAP理论(分布式系统的引导式思想)

CAP理论CAP理论,这篇文章的标题已经写好久了,一直想着学习一下什么叫CAP理论,但是这段时间一直在巩固JVM相关的知识,就没有穿插其他知识点的文章。今天还是了解一下什么叫CAP理论吧!关于此类偏理性的知识点,需要借助维基百科的定义作为我们的参考文献:CAP定理在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点:[1][2] 一致性(Consist..
原创
发布博客 2021.02.16 ·
172 阅读 ·
0 点赞 ·
1 评论

一个新生命诞生的过程(Java对象的创建)

一个新生命诞生的过程(Java对象的创建)这个标题取得有点哲学意思哈。Java中频繁的创建对象,是我们家常便饭,那么对于我们的家常便饭,他如何被创建出来的呢?他制作的过程中,分为哪些主要的步骤呢?制作的过程又涉及到哪些我们所了解的内存区域呢?Java虚拟机是怎么帮我们制作出这些对象的?问题很多,有这么多的疑问,我们都想去学习其中的所以然。那么我们就带着这些疑问去了解一下整个对象的创建过程。关于创建对象,我们都是 new Object(),方式,但是笔者也见过通过深拷贝、序列化等方..
原创
发布博客 2021.02.15 ·
70 阅读 ·
0 点赞 ·
0 评论

直接内存(个人认为是本地直接内存,而不是堆外内存)

直接内存(个人认为是本地直接内存,而不是堆外内存)那么直接内存到底是什么呢?直接内存访问(DMA,Direct Memory Access)是一些计算机总线架构提供的功能,它能使数据从附加设备(如磁盘驱动器)直接发送到计算机主板的内存上。这是百科关于直接内存访问的概述。那么关于直接内存的概述呢?直接内存是一种加快IO传递的解决方案,个人认为,我们的虚拟机要想将磁盘上的一个文件通过网络传输socket等方式,发送给其他设备,那么就会在多个内存区域之间拷贝多次,才能实现发送这个动作.
原创
发布博客 2021.02.15 ·
755 阅读 ·
0 点赞 ·
0 评论

非堆,方法区(常量池的生成机制)

非堆,方法区一个不是堆内存的区域,这样理解吗?其实笔者刚开始也是这样理解的,但是当我们了解了其中的原理,就不会这样认为了,也不能这样认为了。“非堆”、“堆”不能将其认为是两个相对的内存区域,甚至我们可以将其统称为堆。在Java虚拟机规范中描述:方法区为堆的一个逻辑部分。但是我们在内存模型构建的时候,就是将堆和方法区分为块区域的。那么它们分别有什么共同点呢?方法区又存放的是什么数据内容呢?共同点:有堆内存的特性,线程共享;那么线程共享,自然而言,里面存放的数据...
原创
发布博客 2021.02.14 ·
266 阅读 ·
1 点赞 ·
0 评论

堆内存,最大的内存区域

堆内存,最大的内存区域如题,我觉得这样说一点都不为过。给大家看一张生产环境的堆内存和非堆内存的监控图片。大家观察下图中Heap Usage 设置的 最大内存,已经超过4GB,那么我们对比一下右边的non-Heap Usage,也就是300MB。可想而知,我们对于堆内存是多么的慷慨。那么堆内存到底存放的是什么数据呢?在运行时数据区域,很多说法都直接将其划分为 堆内存区域和非堆内存区域,也就是说,一个内存占用,要么是在堆内存中,要么就是在非堆内存中。可想而知,堆这个概念...
原创
发布博客 2021.02.13 ·
288 阅读 ·
0 点赞 ·
0 评论

一个与Java虚拟机栈没什么区别的内存区域-本地方法栈

一个与Java虚拟机栈没什么区别的内存区域-本地方法栈本质来说,就是一个栈空间,也有类似的栈帧,局部变量表,也会存储很多数据结构类型。他的实现不是通过Java的字节码文件编译而来,所以说,在一开始,这里的内存空间基本是确定,且基本上不怎么会出现内存溢出问题,因为,都是官方封装好的源代码,底层都是直接通过C实现的,都不是面向Java开发人员的一块内存区域,那么自然而言,就没有了太复杂的应用,也就不会太容易出现问题。所服务的对象也就是本地方法。在结构上的区别而言,基本上和Java虚拟机.
原创
发布博客 2021.02.13 ·
92 阅读 ·
0 点赞 ·
0 评论

Java虚拟机栈???????

Java虚拟机栈???????“线程私有”内存空间;Java虚拟机栈空间是存放Java方法执行的线程内存模型;我们需要分享Java虚拟机机栈空间里面的时候,需要贴上一张详细的图片来表示:就是下图中所圈出的那块区域,结构很清晰,每个线程都会有一个栈空间,栈空间中存放了很多栈帧,那么这些栈帧中到底存放了些什么数据呢?我们知道,在每个Java方法被执行的时候,Java虚拟机就会同时创建一个栈帧,那么多个方法,就会有多个栈帧;那么每个方法中都会对应到一个栈帧;然后我们思考一下,...
原创
发布博客 2021.02.13 ·
50 阅读 ·
0 点赞 ·
0 评论

什么叫做“程序计数器”?它能做什么?

什么叫做“程序计数器”?它能做什么?程序计数器在JMM中的位置如下是一个线程独享的数据区域,也就是说,每个线程之间的数据相互不干扰,是一个线程内存空间。程序计数器 内存空间是不大的,第一眼看到这个名词,很有可能被认为是计量程序执行次数?不不不,千万别这样理解,我们可以把它当做一个下标位置临时存储,例如打断点中的当前断点位置;都知道,对于jvm层面而言,所执行的是class字节码文件,那么字节码文件中的程序逻辑也有顺序,一个简单的程序化结构语言如下:那么程序计数器中到底存...
原创
发布博客 2021.02.13 ·
3007 阅读 ·
6 点赞 ·
0 评论

JVM的内存结构,简单说一下为什么要知道JMM(开篇)

JVM的内存结构,简单说一下JMM我们为什么要学习jmm呢?这其实是一种追本溯源的过程,对于开发人员来说,需要很清晰的控制每个对象的出生到毁灭,并且需要控制每一个对象的归属,而不是随波逐流。这尤其是C的开发人员。但是对于Java程序员来说,在虚拟机自动内存管理机制的帮助下。我们放宽了很多心,我们类似将整个项目的对象的构造,回收都托管给了第三方,也就是Java虚拟机内存管理模型。如此一来,我们就不需要花重心去打理内存的使用,但是Jvm虚拟机内存模型并不是永远不会发生错误,也会有内存溢出的情况,那.
原创
发布博客 2021.02.13 ·
205 阅读 ·
0 点赞 ·
0 评论

LockSupper是什么?他和Lock、Synchroized有什么关系?解决了什么?

LockSupper是什么?他和Lock、Synchroized有什么关系?解决了什么?话不多说,先贴文档:关键的一句话:用于创线程和其他同步类的基本线程阻塞原语;简单来说,就是阻塞线程的;但是我们阻塞线程不可以用await、wail吗?看第三行:方法park和unpark提供了阻止、解除阻塞(唤醒)线程的有效手段,该方法不会遇到导致不推荐使用的方法Thread.suspend和Thread.resume目前不能使用的问题:一个线程调用park和另一个线程之间的尝试unpar..
原创
发布博客 2021.02.10 ·
158 阅读 ·
0 点赞 ·
0 评论

explain 关键字分析(第一次发)【图片版】

原创
发布博客 2021.02.10 ·
71 阅读 ·
0 点赞 ·
0 评论

三级缓存(不是CPU的概念,而是一种技术上逻辑容错处理方案)

三级缓存(不是CPU的概念,而是一种技术上逻辑容错处理方案)相信硬件出生的同学,对这个一眼就认为是CPU的三级缓存。百科上解释的三级缓存三级缓存是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。其运作原理在于使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,缓存(cache)能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速。它这个三.
原创
发布博客 2021.02.10 ·
415 阅读 ·
0 点赞 ·
0 评论
加载更多