自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方寸间沧海桑田的博客

欲买桂花同载酒,终不似,少年游。https://github.com/1802802

  • 博客(118)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式学习(C++)总结

 至此,对于设计模式的学习也就告一段落了,这段时间也就相当于走马观花一般地把二十三种设计模式全过了一遍,整体感觉有些模式在实际运用中很常见,但是有些模式似乎没怎么见过,不过这种设计模式的解决问题的核心思想才是学习的关键。 以下即为二十三种设计模式的大意与链接:(我认为重要的模式均进行了加粗处理)一、创建型模式单例模式:保证为一个类只生成唯一的实例对象,分为饿汉式和懒汉式;单例模式工厂模式...

2019-05-05 10:43:35 456

原创 Spring实战(第5版)个人项目与填坑记录

博客为项目的ReadMe文件间歇性同步,实时更新与代码参考GitHub链接Spring实战(第5版) 练习项目项目简介:跟随Spring实战第5版,使用SpringBoot自己搭建的TacoCloud项目。项目特点:从第3章开始就使用工程通用的MySql数据库搭建持久层,而非书本的H2;对书本中的诸多问题进行填坑记录,给予其他同学一定地填坑帮助;其他基本和书本一致, 没啥其他特点了(笑)。项目规划:边学习边搭建,但考虑到作者对自己历史代码的改动“极不负责任”,所以在完成这本书的核心.

2021-08-08 02:06:54 782 3

原创 《Effective Java》 Chapter3 对于所有对象都通用的方法

本章要点1.何时以及如何覆盖Obeject类中的非final方法(如equals、hashCode等)2.虽然我不喜欢记录定理性的东西,但是这章的要点就是定理。第10条:覆盖equals时请遵守通用约定equals的通用约定为:1.自反性;2.对称性;3.传递性;4.一致性;5.对于任何非null的引用值x,x.equals(null)必须返回false;equals的实现诀窍:1.使用==操作符检查“参数是否为这个对象的引用”;2.使用instanceof操作符检查“参数是否为正确

2021-02-19 21:08:18 213

原创 设计模式 7个基本原则

1、单一职责原则 (Single Responsibility Principle)概念:一个类只负责一项职责。简述:实际工作中随着业务拓展,维持此原则需要较大的改动成本,所以实际编码的过程中很难将它恰当地运用,需要结合实际情况进行运用。2、开放-关闭原则(Open Close Principle)概念:软件实体 (类、模块、函数等等) 应该是可以被扩展的,但是不可被修改,即对扩展开放,对修改关闭(Open for extension, close for modification)。简述:在程序

2021-02-14 22:29:33 264

转载 设计模式 前言

1.前言GoF的《设计模式》一书,一共有以下三个层面的内容:指出编程开发活动中存在模式,提出总结设计模式需要关注的四要素 "名称-问题-解决方案-效果“ ,并给出描述一套模式的格式模板;提出了面向对象开发中”针对接口编程优于针对实现编程”,”组合优于继承”的总体设计思路;选取了现实开发中基于上述设计思路所形成的23种常见设计模式作为例子详细描述。虽然第3点包括的多个具体的设计模式实例占据了最多的篇幅,但事实上第1点和第2点才是纲。2.何时使用设计模式《设计模式》书中有一句很关键

2021-02-14 22:26:49 159

原创 《Effective Java》 Chapter2 创建和销毁对象

第1条:用静态工厂方法代替构造器把常用的构造逻辑封装成对应名字的方法,然后通过这些方法来实例化而非构造函数。构造函数: Customer customer = new Customer(name, age, sex);静态工厂方法: Customer customer = Customer.getCommonCustomer(name, age, sex);第2条:遇到多个构造器参数时要考虑使用构建器使用Builder模式实例化对象,尤其是多构造参数时(@Builder注解即可实现功能)。普通

2021-02-13 21:16:43 177 3

原创 读《Java核心技术 卷I》有感之第14章 并发

continue  一个程序同时执行多个任务,通常每一个任务被称为一个线程,可以同时运行一个以上线程的程序被称为度线程程序。14.1 什么是线程  Java的线程创建常规方式:new一个Thread,为这个Thread的run方法提供实现代码,最后调用这个Thread的start方法,这个方法将创建一个执行run方法的新线程(直接调用run方法只会在同一个线程中执行其中的任务,不会启动一个新的线程来执行run中的任务)  简单一提,之所以能够这么实现是因为Thread实现了Runnable函数式.

2020-07-28 21:38:24 192

原创 入职20多天后,简单说几句

  从7月6日入职到现在,差不多也有20多天了,工作的生活就是那种工作的生活,不算很好也不算很坏,还是差不多的过日子。不过新人进来闲工夫确实也多,之前三个星期基本都没咋学习,这段时间要继续看起来了。顺便一提因为公司内部有Wiki,所以其实这段时间很多东西都写在Wiki里了,博客已经正好一个月没更新了。之后打算把工作相关的内容和学习相关的内容做个分类,博客主要是写各种知识学习方面的东西,公司Wiki主要是和写工作相关的。  对了,如果某些需要校招内推美团的同学碰巧看到了这篇博客的话欢迎联系我,我很乐意帮助大

2020-07-28 19:23:46 207

原创 读《Java核心技术 卷I》有感之第9章 集合

集合这一章,我个人的理解就是讲述了Java中对于经典数据结构的各种实现。这里的实现有别于STL中每个数据结构的具体实现,而是通过接口为骨架,结合各种相关的抽象基类和数据结构类所搭建起来的Java型数据结构。所以这一章的关键在于,理解每个原生接口的关系,以及它们内部的方法;理解每个集合类的继承与接口关系以及内部的方法实现,从而了解它们是怎么形成的。所以这一章主要从宏观的概念来理解,每一种集合类,其实都是标准数据结构的一种,Java只是添加了一些特色功能,这里的关键不是摸清楚每个类的具体实现,而是将每个类与.

2020-06-27 22:53:48 232

原创 读《Java核心技术 卷I》有感之第8章 泛型程序设计

学无止境  泛型存在的意义就是相对于强制转换类型的代码具有更好的安全性与可读性。8.1 为什么要使用泛型程序设计  就是为了让编写的代码尽可能的被很多不同类型的对象所重用。8.1.1 类型参数的好处  类型参数用于泛指类型,这是程序具有更好的可读性与安全性的原因。ArrayList<String> files = new ArrayList<>(); //类型参数在构造函数中可省略ArrayList<String> files = new Array.

2020-06-23 23:39:16 235

原创 读《Java核心技术 卷I》有感之第7章 异常、断言和日志

如今我现已毕业,即将踏上工作岗位,Java语言却才只看了这么一点,真的很是惭愧。现在的我,语言未通,业务无知,框架不懂,真的很是惶恐,惶恐于日后踏上工作岗位时一问三不知被同事耻笑,但又无能为力的尴尬感。姑且默默激励自己,因为我知道开始的艰辛和未知的技术必然会在今年下半年给予我重创,但是能否使自己蜕变和成长,这半年的效果也尤为重要。转行之路仍未结束,在自己独当一面之前,什么都仅仅是前行路上的成长点罢了。

2020-06-19 21:32:30 237

原创 读《Java核心技术 卷I》有感之第6章 接口、lambda表达式与内部类

这一章开始就逐渐是Java语言本身的特色内容了,在理解时也逐渐开始难以理解了起来。换句话说,对于C++的造轮子写法的记忆还是比较顽固的,但是到了Java中发现其设计思路是偏向于提供轮子骨架让你去填充,而不是重头到尾整个轮子。6.1 接口6.1.1 接口概念  Java的特色概念降临了,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。换句话说,就是impleme...

2020-05-09 11:31:40 398

原创 读《Java核心技术 卷I》有感之第5章 继承

写在前面:最近拘泥于研究生公司这边的一些收尾工作,以及相关的论文工作。说实话,感觉没啥效率,因为说穿了就是来回在一些无所谓的事情中做来做去。你说它重要吧,它确实重要;你说它有趣吧,它确实是相当无聊。总结来说,编码水平和理论基础水平不是一回事,我很喜欢看许多理论基础相关的书籍和描述,但是似乎对实际编码过程感觉没有那么有趣。哎,想想以后的搬砖生活,不得不反思自己所做事情的关键所在,以及如何让自己在多...

2020-04-27 21:37:36 274

原创 Qt串口通信 waitForReadyRead函数与waitForBytesWritten函数导致的内存增长问题记录

这段时间做项目需要有一个进行快速采集信息的设备,但是在单独测试的过程中发现程序的内存占用会一直增长,也就是所谓的内存泄露问题。这个问题困扰了我们几个星期,我尝试了通过事件循环重写waitfor系列函数来解决这个问题,但是由于线程包含问题导致了新的问题。。。今天在Qt的官方论坛上搜索时发现15年就有人发现了这个问题,然后上传了bug库并得到了解决,所以特此记录。1.问题描述 通过形如下面的代...

2020-04-26 21:45:09 26682 9

原创 简单说说对QT中moveToThread实现多线程操作的理解

  QT中的多线程写法有两种主流,一种是继承QThread类并重载run函数,在run函数中写一个状态机或者计时器来实现对线程运作;一种是通过moveToThread的方式实现事件托管从而实现线程运作,在这里主要针对后者来进行说明与理解。  1.常见情况分析:该方法在进行代码编写时的常见情况如下:class tempActive{public: tempActive() { ...

2020-04-10 12:02:56 6795 5

原创 读《Java核心技术 卷I》有感之第4章 对象与类

4.1 面向对象程序设计概述  面向对象程序设计(OOP)的核心是将数据放在第一位,然后再考虑操作数据的算法。4.1.1 类  Java的类与C++的类其实极为相似,但是两者之间内的许多东西在名词形容,以及相关的属性上均有所不同,所以在此特别记录下Java的多种类中名词以及对应的C++名词,还有两者之间的辨析理解。由类构造对象的过程被称为创建类的实例;封装用于操作类中数据的隐藏手段,其...

2020-04-02 21:29:58 206

原创 读《Java核心技术 卷I》有感之第3章 Java的基本程序设计结构

3.1 一个简单的Java应用程序  定义了几个定理,具体如下:如果当前源代码需要作为起始函数,那么需要保证其中的存在一个与当前源代码文件名相同的公有类(比如FirstSample.java和public class FisrtSample定义),同时也需要保证其中存在一个main函数,并且该main函数需要为静态成员函数。main函数最好一直表示为public static void m...

2020-03-30 15:22:14 227

原创 读《Java核心技术 卷I》有感之第2章 Java程序设计环境

2.1 安装Java开发工具包  这里有一些比较关键的Java术语及其简称:JDK:编写Java程序的程序员使用的软件;JRE:运行Java程序的用户使用的软件,包含虚拟机JVM但不包含编译器;Server JRE:在服务器上运行Java程序的软件;SE:用于桌面或简单服务器的Java平台,为Java的标准版;EE:用于复杂服务器的Java平台;ME:用于手机和其他小型设备的Jav...

2020-03-29 14:39:07 180

原创 读《Java核心技术 卷I》有感之第1章 Java程序设计概述

因为之后的工作原因,需要突击学习下Java,所以选择从语法出发,使用Java核心技术作为入门的第一本书。但是由于此书的写法与《C++ Primer》截然不同,不存在大量的课后习题用于巩固理解,故在此记录下学习过程中的一些想法,可能会从C++出发,也可能会从Java本身出发。1.1 Java程序设计平台  核心就是表达:“Java是一个完整的平台,有一个庞大的库”。1.2 Java“白皮书...

2020-03-29 14:22:02 233

原创 用C++的语法理解Java的数组操作

public class mainClass{ public static void main(String[] args) { int a[] = new int[100]; //创建一个数组a,new的方式,a存储在堆里 int b[] = {2,3,4}; //创建了一个数组b,序列初始化方式,b存储在栈里 System.out.println("初始数组a的内存:" +...

2020-03-26 22:25:38 166

原创 【lua程序设计(第四版)】第3章练习

-- 3.1print(.0e12)-- error print(.e12)-- error print(0.0e)print(0x12)-- error print(0xABFG)print(0xA)print(FFFF)print(0xFFFFFFF)--error print(0x)-- error print(0x1P10)print(0.1e1)print(0.1...

2019-10-24 16:58:40 235

原创 【lua程序设计(第四版)】第2章练习

N = 5--第n个皇后放在第c列上时,是否会与之前已经被放置在数组a中的n-1个皇后发生冲突function isplaceok(a,n,c) for i = 1, n - 1 do if(a[i] == c) or (a[i] - i == c - n) or (a[i] + i == c + n) then return false end end return t...

2019-10-24 16:57:51 173

原创 【lua程序设计(第四版)】第1章练习

--1.1 阶乘的负数处理function fact(n) if n < 0 then return "num error" else if n == 0 then return 1 else return n * fact(n-1) end endendprint(fact(-1))--1.2 twice函数实示例function twice...

2019-10-24 16:50:10 334

原创 五种构造函数与两种懒汉式单例模式 复习

1.五种构造函数class class_test1{public: class_test1(); class_test1(const class_test1 &a); class_test1(class_test1 &&a)noexcept; class_test1& operator=(const class_test1 &a); clas...

2019-10-11 20:13:53 207

原创 2020秋招 C++软件开发/游戏开发 面试知识整理汇总

鄙人的2020秋招目前已经基本结束,最终拿了四家公司的offer,在综合比较之后目前已经有了明确的偏向,之后在尘埃落定后再写一篇感想总结把。现在把这两个月来整理的CPP复习资料做一个总结,希望日后能够帮助到需要帮助的人由于文章很长,在这里枚举出对应的十个主要知识点。同时由于md编译器的排版实在比不上word,建议下载本人所提供的word资源。一、C++方面的问题二、数据结构和算法三、计...

2019-10-10 10:46:29 4112 2

原创 圣斗士格子战斗题

这也是一道网易互娱问的比较多的题,原型是2019年完美世界的春招笔试第二题1.题目给定一个 N*M 地图,每个格子会发生一场战斗,该格子上标识的数为玩家hp变化的值,玩家需要从(0,0)出发,到右下角。当hp值<=0时 玩家死亡,求玩家出发时所需要的最小hp值。2.代码#include <iostream>#include <algorithm>#in...

2019-09-27 23:00:20 155

原创 strlcpy的实现方式

这道题是网易互娱很喜欢出的一道现场笔试题,之前参照库写了一遍,今天为了便于自己理解又重写了一遍1.官方模板写法花里胡哨的,说实话不好记//size表示目的缓冲区大小,把src拷贝到dest中,保证不溢出,并且目的缓冲区是一个完整的C串//strlcpy的特色就是自动在字符串拷贝时在最后添加'\0',当然也相应的在cpy时cpy的实际size被减了1size_t strlcpy(cha...

2019-09-27 21:53:25 452

原创 对于“线上跑点”这种面试题的一种解法思想

明天就将是网易互娱的二面了,这也应该会是我整个秋招生涯的最后一个面试,这段时间找工作的过程很忐忑,也很感慨,但是现在还不是享受胜利果实的时刻,写一道对网易互娱的一道经典题目的理解吧。1.题目这是网易互娱的经典面试题,从大概一个多月前就看到了,往年也出现过多次,但是在牛客网上一直找不到恰当的解决方案。这段时间和一位很厉害的学姐,以及一位师弟讨论了一下,总结出了这种问题的解法。题目具体如下:...

2019-09-27 21:40:37 327

原创 2020秋招基础知识整理【C++篇(第I部分 C++基础)】

第I部分 C++基础C是面向过程的语言,C++是面向对象的语言C++中new和delete是对内存分配的运算符,取代了C中的malloc和freeC++中有引用的概念,C中没有C++引入了类的概念,C中没有C++有函数重载,C中不能C变量只能在函数的开头处声明和定义,而C++随时定义随时使用关键字相关const的作用,宏定义与const的区别(const为变量,宏定义为展开)...

2019-09-09 16:59:57 160

原创 【C++】位运算实现加减乘除

近日复习剑指offer,看到了当时写第65题题实现了位运算的加减乘除法,特此记录1.加法位的异或运算跟求"和"的结果一致:异或 1^1=0 1^0=1 0^0=0求和 1+1=0 1+0=1 0+0=0位的与运算后<<1的结果跟求"进位"的结果一致:位与 1&1=1 1&0=0 0&0=0进位 1+1=1 1+0=0 0+0=0而...

2019-09-04 19:36:52 3552

原创 优必选笔试三道题

1.根据年月日算星期记住公式此题无敌//计算年月日是星期几int main_ybx111(){ int year, month, day; while (cin >> year >> month >> day) { if (month == 1 || month == 2) { month = month + 12; yea...

2019-09-03 21:07:44 452

原创 拼多多校招的三道笔试题

题目记不太清了,主要是存下代码第一题#include <iostream>#include <string>#include <algorithm>#include <vector>#include <sstream>#include <queue>using namespace std;struct ...

2019-09-03 14:57:55 815

原创 C++环形队列实现

1.环形队列循环队列:队列有着先入先出的特性。但是对于队列如果删除队头以后剩下的空间将不会被释放,又由于队列只能由队尾插入这就导致被删除部分的空间被浪费。解决这个问题就是循环队列。循环队列顾名思义就是将队列串起来形成一个类似与环的结构。对于原来队列里的操作自然有不同的地方:1.判断满:循环队列的满不再是rear=front 而是改成(rear-front+maxn)%maxn。2.入队...

2019-08-28 12:31:54 2092 6

原创 剑指offer面试题12—矩阵中的路径 改编

这是昨天华为挂我的题,具体涉及到一些文件操作,现场相关指令都忘了,今天在做完京东笔试后写出来了,记录一下1.题目描述输入文件input.txt,读取文件,从左上角找到右下角,如果找到就输出路径到out.txt,找不到就cout出来;拓展:多条路径时找出所有路径,如何确定最短路径(我的想法是每条路径存起来,然后比长度,长度一样都输出,不然就出输出最短的,具体的通过isVisited存,或...

2019-08-24 23:22:54 137

原创 最后还是菜是原罪—华为武研所优招面经

23号早上的武研所优招面试,22号也有一批,但是一点消息和风声都没有,然后今天去了之后看着零零散散的十几个人我就知道了为什么没有消息出来。。(人太少了),然后我就开始怀疑我这个菜逼是何德何能收到了优招的邀请(然后晚上看官网状态就是面试未通过了,难受)。一面:技术面面试官很和蔼,好像是搞C的,一直问我会不会C我表示大一学的真的全忘光了只会C++,所以问的浅显,没有问很深的东西:(1)自我...

2019-08-23 21:56:06 1032

原创 三种背包问题

背包问题每种物品都有一个价值w、体积c与数量i,你现在有一个背包容积为V, 你想用一些物品装背包使得物品总价值最大.1. 0-1背包问题我们有n种物品,物品i的重量为weight[i],价格为value[i]。我们假定所有物品的重量和价格都是非负的。背包所能承受的最大重量为v。如果限定每种物品只能选择0个或1个,求背包里面能放的最大价格。static int ZeroOnePack...

2019-08-20 22:32:31 374

原创 Vector类模板类实现与十种排序算法的内部实现

1.Vector.h模板类的实现最近复习数据结构,顺便把Vector.h模板类实现了,同时也再实现了一遍十种排序算法,具体包括了Vector的构造函数与多种功能函数,以及内置的十种排序算法与乱序器。#pragma once#include <time.h>#include <vector>#include <queue>using namespa...

2019-08-19 23:08:57 437 5

原创 字符串匹配的BF算法与KMP算法

1.BF算法//T为文本串如"Now is the time",P为模式串如"time",时间复杂度O(m*n),其中m与n为P和T的长度int bf_match(string P, string T){ int sizeP = P.size(); int sizeT = T.size(); int i = 0, j = 0; for (; i < sizeP - sizeT ...

2019-08-19 18:45:13 193

原创 智能指针(C++模板实现)

1.基本Counters类仿照标准智能指针类_Ref_count_base基类的数据class Counters{public: Counters() {} int m_ref_count = 0; int m_weak_count = 0;};2.shared_ptr智能指针template<typename T> class shared_ptr{pu...

2019-08-18 23:49:25 720

原创 痛定思痛,记录这两天大疆和字节跳动的一面

大疆一面:(1)C++基础问题:const的用法,内存分布(堆、栈、代码段、数据段与常量存储区),C++11新特性;(2)操作系统:进程与线程的区别,多线程的优势是什么;(3)设计模式:问我了解什么,然后我说主要是单例模式,其他的设计模式多实使用思想;(4)数据结构:map的底层实现是什么,引出平衡二叉树与红黑树的比较,vector与list的比较,两者的使用区分...

2019-08-18 15:56:54 820

查到的一个不错的简历模板

这是一个我下载的简历模板,感觉还可以,所以选择 上传一下

2019-02-27

空空如也

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

TA关注的人

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