牧童遥指杏花村丫
码龄7年
关注
提问 私信
  • 博客:146,749
    146,749
    总访问量
  • 143
    原创
  • 2,051,343
    排名
  • 69
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:新加坡
  • 加入CSDN时间: 2017-08-06
博客简介:

MOON5555的博客

查看详细资料
个人成就
  • 获得89次点赞
  • 内容获得5次评论
  • 获得210次收藏
  • 代码片获得150次分享
创作历程
  • 14篇
    2019年
  • 49篇
    2018年
  • 80篇
    2017年
成就勋章
TA的专栏
  • Java
    2篇
  • C语言
    25篇
  • Linux
    30篇
  • 数据结构
    19篇
  • 排序
    8篇
  • 项目
    3篇
  • C++
    38篇
  • MySQL数据库
    6篇
  • Git学习
  • 源码阅读
    11篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java中的反射

在面向对象的世界里,万事万物皆对象。 java语言中,类是对象,类是java.lang.Class类的实例对象。这个对象我们成为该类的类类型。 Class类的对象到底如何表示呢? 任何一个类都是Class的实例对象,这个实例对象有三种表示方式: (1)第一种表示方式:实际告诉我们任何一个类都有一个隐含的静态成员变量class Class c1 = F...
原创
发布博客 2019.08.27 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java8 Lambda表达式

lambda表达式也称函数式编程自己在学习java的时候才接触到了lambda表达式 看到lambda表达式会让代码看起来非常精简 我看了一下网上的学习资料也不少 自己整理一下顺便写一下自己的看法 比较简单 希望我的博客可以带给别人帮助 以及方便自己以后进行回顾和总结 Lambda表达式的组成 java 8 中Lambda 表达式由三个部分组成:第一部分为一个括号内用逗号分隔的形...
原创
发布博客 2019.08.27 ·
468 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——Collect包.AbstractMapBasedMultimap类

AbstractMapBasedMultimap是Multimap接口的基础实现类,实现了Multimap中的绝大部分方法,其中有许多的方法还是靠实现类的具体实现,比如size()方法,其计算方法在不同实现是不一样的。同时,AbstractMapBasedMultimap类也定义了自己的一些方法,比如createCollection()。AbstractMapBasedMultimap类中主要存在...
原创
发布博客 2019.04.08 ·
496 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——base包.Joiner类

Joiner类的基本功能:将字符串数组按指定分隔符连接起来,或字符串串按指定索引开始使用指定分隔符连接起来,通过Join类,我们可以方便实现将容器中的数据按照自定义的方式拼接成一个字符串,而且这是一种线程安全的方式。变量://分隔符构造方法:这两个构造函数都是静态构造器,所以不能直接使用这两个构造器去创建Joiner,所以想要创建Joiner只能使用静态方法。可接收字符串和...
原创
发布博客 2019.04.07 ·
350 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——base包.Splitter类 转至元数据结尾

Strategy模式:策略模式这个定义了一系列的算法,并将每个算法封装起来,使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户,在Splitter中就主要使用了这种模式。1、首先看一个内部类这个类才是真正去处理字符、字符串、正则表达式的接口,这个接口的定义其实就是策略模式。此接口中只有一个方法,返回的是一个Iterator迭代器,这里我们可以先联想到最终返回...
原创
发布博客 2019.04.07 ·
356 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——base包.Stopwatch类

Stopwatch是什么 Stopwatch 解释为计时器,又称秒表、停表,很明显它是记录时间的。 成员变量 构造函数 isRunning方法:如果start方法被调用但是stop方法还没有调用,就返回真。start方法:启动stopwatch。stop方法:停止stopwatch,...
原创
发布博客 2019.04.07 ·
530 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Guava源码阅读——base包.Strings类

方法 功能 传参类型 返回类型 实现方法 复杂度 nullToEmpty 将null转换为"" String String O(1) emptyToNull 与上个方法相反 String String ...
原创
发布博客 2019.04.07 ·
429 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——Collect包.ComparisonChain类

ComparisonChain 使用有一个产品的list,想对这个list先按产品生效时间排序,如果生效时间一样再按失效时间排序,代码如下:package collection; import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util...
原创
发布博客 2019.04.07 ·
491 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——Collect包.Lists类

功能函数 创建ArrayList方法 newArrayList() newArrayList(E... elements) newArrayList(Iterable<? extends E> elements) newArrayList(Iterator<? extends E> elements) newA...
原创
发布博客 2019.04.07 ·
904 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——Collect包.Multimap类

Multimap相对于传统的Map区别在于,Multimap是一对多的一个数据结构,对于Multimap的解析用HashMultimap进行解析,看一下HashMultimap的类结构图:HashMultimap构造器因为他的构造方法是私有的,所有他会拥有静态方法构造器:public static <K, V> HashMultimap<K, V> ...
原创
发布博客 2019.04.07 ·
374 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——Collect包.Ordering类

API 实例化直接获得 natural() 自然序 usingToString() 字典序 指定 from(Comparator) 包装Comparator explicit(List)explicit(least, ... others) 指明这几个东西的顺序,只排它们 直接继承 其他 allEqual() 全相...
原创
发布博客 2019.04.07 ·
248 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——Collect包.Sets类

union类实现传入:set1, set2传出:内部实现的 setView 其继承了 AbstractSetpublic static <E> SetView<E> union(final Set<? extends E> set1, final Set<? extends E> set2) { checkNotNull(set...
原创
发布博客 2019.04.07 ·
384 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Guava源码阅读——primitives包.Ints类

看完Primitives包中的Ints类之后,我对其中的方法做出了整理...有写的不好的地方请多多指教 方法 功能 传参类型 返回类型 实现方法 复杂度 hashcode 返回int型的hash值(直接用溢出当作hash) int int...
原创
发布博客 2019.04.07 ·
289 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Git初阶:入门&常用命令

一、版本控制系统集中式版本控制系统SVN:存储每个文件的变化分布式版本控制系统Git:存储完整的文件快照二、SVN和Git的区别1、Git所有的操作都可以在本地完成;SVN需要与服务器通讯以获得其他版本的文件。2、Git用hash生成版本号,可以保证文件的完整性;SVN使用递增的编号作为版本号。三、Git的3种状态1、已修改(modified)----------工作区2、...
原创
发布博客 2019.03.22 ·
197 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

两个队列实现一个栈

代码实现:#include &lt;iostream&gt;#include &lt;queue&gt;using namespace std;class MyStack{public: void push(int val) { //插入到非空队列 if (q1.empty()) { q2.push(val); } if (q2.empty()) ...
原创
发布博客 2018.09.06 ·
200 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

实现统计字符串中第一个空字符前面的字符长度——递归

举例:char buf[] = { 'a', 'b', 'c', 'd', 'e', 'f', '\0', 'x', 'y', 'z' };字符串buf,当输入n=10或者20时,期待输出结果为6;当输入n=3或者5时,期待输出结果为3或者5。 代码实现:#include &lt;iostream&gt;using namespace std;//统计字符串中第一...
原创
发布博客 2018.08.20 ·
511 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

快速排序

代码实现:#include &lt;iostream&gt;using namespace std;//快速排序void QuickSort(int *arr, int len, int left, int right){ int i, j, t, tmp; if (left &gt; right) { return; } tmp = arr[left]; i = ...
原创
发布博客 2018.08.19 ·
246 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

STL不同容器的优缺点

一、容器的分类1、序列容器(1)vector典型的序列容器,任意元素的读取、修改具有O(1),在序列尾部进行插入、删除是O(1),但在序列的头部插入、删除的时间复杂度是O(n),可以在任何位置插入新元素,有随机访问功能,插入删除操作需要考虑。(2)deque序列容器,内存也是连续的,和vector相似,区别在于在序列的头部插入和删除操作也是O(1), 可以 在任何位置插入新元素,有随机...
原创
发布博客 2018.07.29 ·
1226 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

指针和引用的区别

 问题:指针与引用的区别?1.非空区别       在任何情况下都不能使用指向空值的引用,一个引用必须总是指向某些对象(引用必须初始化)。因此如果你使用一个变量并让它指向一个对象,但是该变量在有些时候也可能不指向任何对象,这时你就应该把变量声明为指针,因为这样你就可以赋空值给该变量。相反,如果变量肯定指向一个对象,例如你设计不允许变量为空,只是你就可以把变量声明为引用。不存在指向空值的引用...
原创
发布博客 2018.07.20 ·
231 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

new/delete和malloc/free的区别

1、属性new/delete 是关键字malloc/free是库函数2、参数(是否需要指定内存大小)new动态申请内存时,不需要指定内存块的大小int *p = new int;mallo动态申请内存时,需要显示指定内存的大小int *p = (int*)malloc(sizeof(int));3、返回值(返回类型安全性)new内存分配成功时,返回的是对象类型的指针,是符合类型安全的操作符mall...
原创
发布博客 2018.07.15 ·
354 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多