个人理解
心怀梦想的咸鱼
这个作者很懒,什么都没留下…
展开
-
ide快捷键以及js的小知识
事件委托的核心思想是利用事件冒泡,每个子节点的事件都会冒泡泡到父节点中,因此可以给父节点注册事件,通过一次注册dom,就能完成。this在函数定义时是不能确定指向的,通常在函数运行时会指定函数的调用者,而且vue里的箭头函数,回调函数也有这种该问题;在全局函数或者普通函数中,this指向widows,在构造函数中指向实例,在回调函数和被调用函数中,指向调用者。节点可以增加也可以删除,可以参考列表的操作方法,设置某个节点为父节点或者子节点、网页上的所有内容都是节点(node),包括标签,属性,文本,注释。..原创 2022-08-25 18:03:21 · 398 阅读 · 1 评论 -
记录运行springboot下的一个hello world所踩的坑
使用java的springboot框架写hello world,并解决了一个问题原创 2022-04-13 16:25:40 · 201 阅读 · 0 评论 -
sping的注解注入
@Component放到类上面标注,可以使POJO类(普通的java类)转换为容器管理的beanSpring还提供了三个等效注解@Controller:对Controller实现类进行注解。@Service:用于对Service进行类注解@Responsitory:用于对DAO进行类注解扫描注解定义的bean在实现类上添加注解之后,还需要在配置文件中设置扫描类包才能让Spring容器识别到<?xml version="1.0" encoding="UTF-8" ?>转载 2022-04-11 10:36:50 · 90 阅读 · 0 评论 -
学习Java引起对系统分配内存的思考
学习Java时了解了它的内存分配情况,Java将内存分为堆区,栈区和静态区。这引起我的思考,我在学习C++时学到C++分别将内存分为了堆、栈、自由存储区、全局/静态存储区和常量存储区。那么不同的内存分区会根据内存的不同而发吗?为什么要那么分?如果分了以后,为什么堆区 栈区 静态区的效率不同?针对第一个问题,不是,内存在物理层面上是相同的,无所谓分区,第二个问题,我的回答是,它就是那么分的,就像为什么男人和女人有两种性别一样,或许有答案。第三个问题,从硬件的角度来看,内存都是一样的但是原创 2022-04-01 11:11:20 · 702 阅读 · 0 评论 -
Java泛型基本操作
import java.lang.reflect.Array;import java.util.*;interface trytry<T>{ public void Try();}class father<T> { father(){ System.out.println("就是个非静态构造函数"); System.out.println("father end"); } publ.原创 2022-03-31 19:12:34 · 221 阅读 · 0 评论 -
Java的main函数里的参数研究
今天学习Java犯了个低级错误,main函数的参数Stirng忘记加[],导致在idea平台无法编译运行。这是源码。import java.lang.reflect.Array;import java.util.*;public class test { public static void main(String args){ Class c1 = new ArrayList<String>().getClass(); Class c原创 2022-03-31 16:53:33 · 507 阅读 · 0 评论 -
java的向上向下类型转换
class dog extends anmale{ int dog; void eat(){ System.out.println("dog eat"); }}class cat extends anmale{ int cat; void eat(){ System.out.println("cat eat"); }}public class anmale { public static void main.原创 2022-03-30 10:44:42 · 1479 阅读 · 0 评论 -
JAVA学习笔记0
从0开始学习JAVA。所用教材为《thinking in JAVA》JAVA是一种面向对象oop的语言,和C++类似,我个人认为它是一门C++-的语言,有以下区别1.废除了C++中独立存在的变量和函数,必须使用类。2.取消了指针的使用,JAVA 中的传入到方法的对象是其引用,而C++传入到方法的形参可以是指针,引用或者是调用拷贝构造出的新的对象。3.JAVA中程序员使用new在堆上分配空间调用构造函数来实例化变量,C++中也用new来分配内存,但是需要自己delete掉内存否则会内存泄漏原创 2022-03-28 18:55:54 · 734 阅读 · 0 评论 -
根据先序和中序求二叉树
举个例子EBADCFHGIKJ 先序(根左右)ABCDEFGHIJK中序 (左根右)我将其求二叉树的过程称为 求根方法在先序上的每个节点都是其子树的根节点(听起来是废话)先通过先序找到根节点E,在中序中可以看出,ABCD E FGHIJK,E的左边就是左子树的节点ABCD,E的右边是右子树的节点FGHIJK。再通过先序找到第二个节点B,在中序中可以看出,B的左边就是左子树的节点A,B的右边是右子树的节点CD依次类推不断的在先序中找到节点作为根节点,再从中序遍历中看到该节点的左右孩子所属原创 2020-09-25 19:49:45 · 7826 阅读 · 2 评论 -
C++new运算符
new运算符虽然用的很久,但是我实际上对它的了解仅仅局限于表面知道和malloc一样可以在堆内存中申请内存,可能会调用对象的构造函数。但是具体的实现和什么时候调用构造函数完全不了解,因此今天在这里进行梳理。1. new的常见用法int *a =new int[5];int *b =new A();在实际操作中,我们发现A的申请的空间的储存的值为随机值,new仅仅申请了一块随机空间,但是B的申请的空间的值已经初始化了,new调用了A的构造函数。new A()的功能如下在堆上申请空间在分配的空原创 2020-09-25 19:14:09 · 638 阅读 · 0 评论 -
Come back
新佛曰:夷般隸缽我莊修如彌如咒須菩空南莊降兜念囉咒摩耨慧叻劫諦修闍色闍修南修波降空摩叻彌咒闍菩修降咒須色慧僧隸空婆般斯阿宣南塞心嚴斯寂般波摩亦迦是喃嚩修嚴愍隸哆諸哆訶色夷吽彌宣劫即斯尊咤薩莊南願斯羅寂念喃即心諦僧南婆陀囉隸莊塞迦陀心缽薩囉吶咤南須僧聞訶塞色所聞修空我隸祗莊兜兜咤宣咒念眾諸南訶斯我修迦愍宣訶慧阿嚤祗喼陀聞空南訶婆嘚喃念哆蜜摩須波蜜祗慧南菩劫聞迦色須迦斯南聞愍嚴伏婆缽迦須如諸空劫南喃嚤祗陀喃如亦囑囑...原创 2020-07-09 23:28:26 · 3449 阅读 · 0 评论 -
linux(7)进程间通讯
进程运行时时具有独立性的,让它本身通信是困难的,所以进程通信的前提条件是让进程看到同一份资源(通常指的是某一块内存)**进程间通信的目的**...原创 2019-11-03 16:05:57 · 135 阅读 · 0 评论 -
[网络]——UDP协议分析
写完了TCP,运输层的UDP协议最好也总结一下,本篇博客资料来自谢希仁《计算机网络》,真的很推荐看一遍。1.UDP协议UDP协议是运输层协议,有以下的特点。UDP是无连接的UDP尽最大努力交付,但不保证可靠性UDP是面向报文UDP没有拥塞控制UDP支持一对一,一对多和多对多的交互通信。UDP的首部较短只有8个字节UDP是无连接发送数据前不需要建立连接,发送完后同样不需要...原创 2019-11-03 11:07:29 · 670 阅读 · 1 评论 -
[Linux]--------读者写者模型
在之前的博客中我们说明了生产者消费者模型,在这篇博客中我们讨论类似的模型读者写者模型。概念读者写者模型是操作系统的一种同步与互斥机制,与生产者消费者模型相似,区别在于多个读者可以共享缓冲区,但是对于写者而言相互是竞争关系,一次只能有一个写者,写入缓冲区。读者写者模型具有的条件写者排他性:有多个写者的情况下,只有一个写者能够占用缓冲区。读者的并行机制:可以有多个读者同时使用缓冲区。如...原创 2019-10-30 14:16:56 · 369 阅读 · 0 评论 -
C语言复习:const ,static ,sizeof,宏
这篇博客是对于我个人的知识的复习,当然如果有某位大佬能够指出这里面有哪些概念含糊不清或者难懂,麻烦指出来感激不尽。1.constconst:用const修饰的变量是“可读的”,即可以被访问,但是无法修改。const可以修饰指针,数据成员,成员函数,类对象修饰指针指针常量和常量指针顾名思义,类似int* const p;//指针常量,const修饰pconst int* q;...原创 2019-10-28 12:17:58 · 207 阅读 · 0 评论 -
C语言复习:面试题memmcpy和memmove的区别及原因,itoa和atoi的实现
常见的面试题1.请说一下memcpy和memmove的函数用途?memcpy和memove都是string.h的函数,声明为void* memcpy(void* dest,const void* str,int n);void* memove(void* dest,const void* str,int n);作用是把源内存复制n个字节到目标内存中,作用是相同的。2.请说出他们的区别...原创 2019-10-27 19:46:36 · 252 阅读 · 0 评论 -
C语言复习:指针
这篇博客是对于我个人的知识的复习,当然如果有某位大佬能够指出这里面有哪些概念含糊不清或者难懂,麻烦指出来感激不尽。1.指针指针恐怕C里最常见,最不起眼,但也比较难以掌握的知识。计算机内存中的每个位置都由一个地址标识,通常,在邻近的内存位置合成一组,这样就允许存储更大的值,指针就是它的值表示内存的变量。(这里我们不考虑虚拟内存等问题)通常无法通过值的位模式来判断它的类型。类型是通过...原创 2019-10-27 17:39:19 · 245 阅读 · 0 评论 -
C语言复习:大小端
这篇博客是对于我个人的知识的复习,当然如果有某位大佬能够指出这里面有哪些概念含糊不清或者难懂,麻烦指出来感激不尽。关于大端小端的概念小端:数据的高位字节存放在高地址内,数据的低位字节存放在低地址内。大端:数据的高位字节存放在低地址内,数据的低位字节存放在高地址内目前有两种方法判断机器的大小端int变量的地址强转为char*的指针,最后用指针取值得到的就是低地址的值#incl...原创 2019-10-27 16:26:14 · 159 阅读 · 0 评论 -
C语言复习:原反补码
这篇博客是对于我个人的知识的复习,当然如果有某位大佬能够指出这里面有哪些概念含糊不清或者难懂,麻烦指出来感激不尽。原反补码放出链接原返补码深入探究在大学的C语言课堂上,可能就接触到了原反补码的概念,大学老师说,正数的原反补码就它本身,负数的反码就是符号位不变,其他数值取反,补码则是反码+1.但是为什么,我从大一开始就有这个疑惑,为什么正数就不用变,负数则要这么复杂?直到我拜读了刀斧手...原创 2019-10-25 17:14:52 · 501 阅读 · 0 评论 -
学习之路:C/C++内存管理
在C中内存分布为:代码段:储存可执行代码和只读常量数据段:全局数据和静态数据堆:用于程序运行时动态内存分配,C中可以用malloc,C++中用new分配,在内存上是向上增长的栈:又叫栈堆,储存非静态局部变量,函数返回值,函数参数等,是向下增长的内核空间:内核总是驻留在内存中,是操作系统的一部分。内核空间为内核保留,不允许应用程序读写该区域的内容或直接调用内核代码定义的函数(还有内存映...原创 2019-01-21 16:53:20 · 146 阅读 · 0 评论 -
linux(5)写一个私人shell
在我们学了fork,wait,exec等函数后,就可以尝试写一个我们私人的shell,下面是我的源代码。#include <unistd.h>#include <string.h>#include <iostream>#include <stdlib.h>#include <sys/wait.h>#include <st...原创 2019-07-27 16:59:31 · 170 阅读 · 0 评论 -
项目---IM多人聊天室
技术要点STLhttp协议websocke协议session和cookiemysql c connectsession 管理mongoose框架理解jsoncpp需要下载的第三方库和文件安装websocket框架mongooshttps://github.com/cesanta/mongoose版本选择:最新6.14,该框架非常简单,只要包含 mongoose....原创 2019-07-31 20:19:47 · 576 阅读 · 0 评论 -
DNS解析地址
1.DNS域名解析1.1 DNS产生背景用户与互联网的某台主机进行通讯时必须知道对方的IP地址,但是要用户很记住32位ip地址时件很反人类的事情(即使是用点分十进制也不容易记住),而我们睿智的程序员早已经料到这一点,在应用层为了方便用户记忆,连接在互联网上的主机不仅有ip地址还有主机名字。DNS域名系统能够把主机的名字转换为ip地址。在上古年代,准确的说是在APRPANET(1969年),整...原创 2019-07-22 21:36:03 · 2835 阅读 · 0 评论 -
linux(4)进程控制
fork函数,在我的前几篇博客中已经使用,在这篇博客里我们具体谈谈fork函数的相关知识fork函数的说明如下fork的功能是创建一个子进程,并且返回两个值,对于父进程返回子进程的PID,对于子进程返回0,这些在前面都说过了,不再浪费时间。当进程调用fork时,内核会做的事情如下分配新的内存块和内核数据结构给子进程将父进程的部分数据结构内容拷贝至子进程添加子进程到系统进程列表中...原创 2019-07-25 23:13:51 · 418 阅读 · 0 评论 -
linux(2)进程基础
在我们配置好环境,掌握了linux系统的基本指令后,就要接触进程这一概念,不过在接触进程前我们首先要了解一个概念操作系统原创 2019-07-21 14:05:16 · 199 阅读 · 0 评论 -
linux(3)进程的地址空间
在C语言刚入门的时候我们曾经见过这一个图片当时我们认为这就是内存,但是今天我们要推翻这个结论,它的真实名字叫进程的地址空间。我们对地址空间先描述再组织,它是一个结构体存在很多的区间,通过调节区间的开始值和结束值来管理虚拟地址。运行如下代码#include <iostream>#include <stdlib.h>#include <unistd.h>...原创 2019-07-25 00:07:25 · 180 阅读 · 0 评论 -
网络基础---数据链路层
在网络的应用层 传输层 网络层 数据链路层 物理层中我的上一篇博客粗略的介绍了网络层的ip协议,在这篇博客你将花费8分钟看有关数据链路层的有关信息1.对比理解“网络层”和“数据链路层”假如有一个主机A想要发送主机B一些数据报文,这些数据报文会从路由器转发到主机B的局域网,再从局域网里给主机B发送数据报文,这个工作就是网络层的IP协议所干的事情。ip协议能够让数据报文从A主机运送到B主...原创 2019-07-20 17:06:45 · 272 阅读 · 0 评论 -
const
说起来惭愧,学了这么久才发现我的C语言基础里const居然还有漏洞不过实际上也没有什么可说的,对于C和C++来说const有一点区别,在C中用const修饰的还是变量,而在C++中用const修饰的量算是一个常量。可以用下面的代码跑跑试一试#include <iostream>using namespace std;int main(){ int num = 3...原创 2019-07-24 17:59:21 · 161 阅读 · 0 评论 -
项目---人工语音识别智障AI
时间是2019年7月23日,写在这里用来记录项目推进的情况。第一步要把环境装好。注册注册图灵机器人,官网:http://www.turingapi.com/创建机器人完成认证(暂缺)注册百度语音识别,上官网:http://ai.baidu.com/技术文档选择C++SDK因为比较容易控制操作...原创 2019-07-24 12:35:49 · 682 阅读 · 0 评论 -
程序编译的四个过程
hollo.c是大部分程序员写的第一个程序,本篇博客将介绍编译运行hello.c,操作系统将做的事情。编译系统hello.c是一个高级C语言代码,格式如下#include <stdio.h>int main(){printf("hello world\n");return 0;}在系统中运行该程序,则必须把每一条C语言代码转化成低级机器语言指令,这些指令按照可执行...原创 2019-08-01 19:51:08 · 2333 阅读 · 2 评论 -
2019.9.4 广联达实习生笔试 -- 最大面积
题目描述如图,有一块面积很大的地,这块地已经被划分为了无数个1x1的方块,现在,我们商定了一种圈定方法:以任意一个方块的顶点为圆心画一个圆,圆中所有的完整小方块就是属于你的土地,如果所画的圆半径为N(N为整数),请问能圈到多少地?输入:半径N输出:圈到的面积(方块个数)M例如:输入N = 3,输出16.#include <iostream>#include <...原创 2019-09-04 19:20:04 · 411 阅读 · 0 评论 -
[编程题]奇异数 热度指数
链接:https://www.nowcoder.com/questionTerminal/7442938f5012486499ddd61ce16f9086来源:牛客网如果一个数字满足以下条件,我们就称它为奇异数:1、这个数字至少有两位2、这个数的最低两位是相同的比如: 1488是一个奇异数,而3、112不是。牛牛现在给出一个一个区间[L,R],让你计算出在区间内有多少个奇异数思路:...原创 2019-09-07 12:09:03 · 402 阅读 · 0 评论 -
海量数据判重——布隆过滤器(Bloom filter)
布隆过滤器布隆过滤器(Bloom filter)是一个高空间利用率数据结构,由Burton Bloom于1970年提出。被用于测试一个元素是否在集合中(由于集合无重复元素的性质,可用来判重)。布隆过滤器的优势布隆过滤器的思想类似位图,主要是由一个很长的二进制向量和若干个(k个)散列映射函数组成。因为每个元数据的存储信息值固定,而且总的二进制向量固定。所以在内存占用和查询时间上都远远超过一般的...原创 2019-10-06 16:15:40 · 594 阅读 · 0 评论 -
位图
位图今天介绍的数据结构叫做位图,在介绍之前,首先看一道“简单”的题目,给出40亿个数据,给出一个四位数字,判断该数字是否在这四十亿个数字中。这道题难点并不在思路,之前我们使用的链表红黑树等算法思想都能解决这个问题,但是有一点无法解决,40亿个数太太太太大了,换算成int类型大约16G大小的空间,计算机的内存可不一定够,聪明的读者可能想到了char类型来出错结构,从16G的需求降低到4G的...原创 2019-10-06 13:24:16 · 183 阅读 · 0 评论 -
哈希表
哈希表在之前实现的数据结构中,查找一个数据在顺序表中的时间复杂度为O(n),在平衡二叉树和树的高度有关,为O(logn)。但是理想状态下的数据的查询为O(1),有没有数据结构能够实现?从标题就知道今天要介绍的数据结构是哈希表,但是在介绍之前,先介绍哈希。哈希是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。通过映射的方式将数据存在表中,...原创 2019-10-04 21:46:13 · 322 阅读 · 0 评论 -
红黑树
之前博客实现了AVL树,但是AVL树的频繁的插入和删除,会引起频繁的rebalance,导致效率下降;红黑树不是高度平衡的,算是一种折中,插入最多两次旋转,删除最多三次旋转。所以红黑树在查找,插入删除的性能都是O(logn),且性能稳定,所以STL里面很多结构包括map底层实现都是使用的红黑树。红黑树也是一种二叉平衡树,它不使用平衡因子来维护树的形状,而是使用红黑节点来决定,使得最长节点的长度...原创 2019-10-03 16:07:19 · 204 阅读 · 0 评论 -
AVL树
之前的博客实现了二叉搜索树,但是二叉搜索树本身有一定的局限性,二叉搜索树在时间性能上是具有局限性的二叉搜索树的局限性同样的数据,可以对应不同的二叉搜索树,如下:二叉搜索树可能退化成链表,相应的,二叉搜索树的查找操作是和这棵树的高度相关的,而此时这颗树的高度就是这颗树的节点数n,同时二叉搜索树相应的算法全部退化成 O(n) 级别显然,说二叉搜索树的查找、插入、删除这三个操作都是O(lgn...原创 2019-10-02 17:58:53 · 207 阅读 · 0 评论 -
二叉搜索树
二叉搜索树(BST)——基本概念及基本实现代码二叉搜索树二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树例如下图为一个二叉搜索树:二叉搜索树的操作包括查找,插入,删除等其中需要特别注意的是删除操作。二叉...原创 2019-09-30 21:55:48 · 131 阅读 · 0 评论 -
string基础模拟实现深浅拷贝
string实现string(const char* str)string(string&string)operator=(string &string)~string()为什么要有深拷贝?浅拷贝又称为位拷贝,是将资源按位拷贝,如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,造成重...原创 2019-09-29 21:00:53 · 134 阅读 · 0 评论 -
string刷题笔记
增减字符串匹配给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i = 0, …, N-1,都有:如果 S[i] == “I”,那么 A[i] < A[i+1]如果 S[i] == “D”,那么 A[i] > A[i+1]来源:力扣(LeetCode)链接:https:/...原创 2019-09-28 17:25:10 · 142 阅读 · 0 评论