![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
学习笔记
文章平均质量分 82
学习过程中的笔记,C++,go,java等等
青玉白露
字节跳动工程师|AI 让我成为全栈工程师~
公众号,【二进制的耳语】,欢迎关注~
展开
-
怎么添加网页到桌面快捷方式?
推荐用过最棒的学习网站!添加网页到桌面快捷方式?很简单,仅需要两步,接下来以chrome浏览器为例。原创 2024-06-21 00:30:00 · 333 阅读 · 0 评论 -
CPU是怎么制作的?(简化版)
CPU(中央处理器)被誉为计算机的大脑,其制造过程充满了高科技和精密工艺。原创 2024-06-21 00:00:00 · 635 阅读 · 0 评论 -
如何提高学习效率?
每个人在学习过程中都希望能够提高效率和效果,然而多数人常常感到时间不够用或者效果不理想。今天,我从多个方面为大家提供一些实用的技巧和方法,帮助你们更高效地学习。原创 2024-06-20 00:00:00 · 954 阅读 · 0 评论 -
如何选择适合的编程语言入门?
如何选择最适合自己的编程语言呢?接下来,我给大家分享一些实用的建议,希望能帮到你们。原创 2024-06-19 12:37:16 · 1042 阅读 · 0 评论 -
在指导100家初创公司后的前5个学习经验
作为一个16岁的高中生,我开始了我的初创旅程,阅读Paul Graham关于怎样一些聪明的开发者可以通过共享的创造力和速度每年产生价值数百万美元的文章。我想将我从旅程中得到的教训向前传递,以节省其他年轻创始人的时间和精力,避免我自己经历的错误。我和我的同学对建立平台和应用感到非常兴奋,但一旦我们建立它们,我们就失去了兴趣,转向下一个亮眼的项目。你需要弄清楚他们的原因和动机,因为这就是你将说服他们的方式。你将回避与用户进行困难的谈话,他们会告诉你你的想法或产品不好,但这些正是你需要尽早进行的谈话才能成功。原创 2024-04-24 12:45:00 · 1749 阅读 · 0 评论 -
谷歌出品!读懂 QUIC 协议:更快、更高效的通信协议
在TCP里,如果一个segment传递丢失,那么后续segment乱序到达,也不会被应用层使用,只到丢失的segment重传成功为止,因此TCP实现的HTTP2的多路复用能力受到制约。QUIC解决了上面的歧义问题。与采用Sequence Number 标记不同的是,其使用的Packet Number标记严格单调递增,如果 Packet N 丢失了,那么重传时 Packet 的标识不会是 N,而是比 N 大的数字,比如N+M,这样发送方接收到确认消息时就能方便地知道 ACK 对应的是原始请求还是重传请求。原创 2024-01-25 22:54:02 · 3240 阅读 · 0 评论 -
ElasticSearch搜索引擎入门到精通
ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。这篇文章就是为了进一步了解一下它,到底是如何做到这么高效的查询的。在学习其他数据库的时候我们知道是一个数据库系统极其重要的部分,它直接决定着查询的效率。ES之所以快,是因为其底层的Lucene采用倒排索引的方式,并且还有很多的优化点,原创 2024-01-25 22:53:03 · 1375 阅读 · 0 评论 -
GLM-4多模态重磅更新!摸着OpenAI过河!
听到GLM-4发布的当天,我就去试用了一下GLM-4,毕竟是国内 全自研第四代基座大模型GLM-4!我依次测试了多模态、ALL Tools、个性化智能定制功能。首先测试其图片理解能力,上传了一张猫片:从结果来看,它基本上理解了这个图片的内容。上传一张更复杂的图片试试呢?图片里有几个人?几个男人几个女人?我也是学CV的,它答不准的原因在于底层图片识别、图像分割能力的不足,还需要继续努力。为了测试它到底是不是真的理解图片里的含义,我上传了五环的图片,它成功的告诉我这个是五环,代表世界五大洲的团结和合作,赞!Al原创 2024-01-18 21:28:27 · 1160 阅读 · 0 评论 -
前端的JWT怎么进行用户认证?
实现用户认证和权限控制是Web应用开发中的重要部分,关系到用户的隐私和数据安全。在Go语言的后端开发中,一般会使用JSON Web Tokens(JWT)搭配存储中间件(如Redis)来处理用户认证和权限控制。JWT是一个开放标准 (RFC 7519),它定义了一种自包含的方式,用于在各方之间安全地传输信息作为一个 JSON 对象。这种信息可以被验证和信任,因为它是数字签名的。在用户认证的背景下,当用户使用他们的凭证(比如,用户名和密码)首次登录时,服务器会创建一个JWT,并将其发送回用户。原创 2024-01-03 21:49:21 · 503 阅读 · 0 评论 -
怎么获取客户端真实IP?GO
在使用 Golang 的 net/rpc 包进行 RPC 服务开发时,我们有时候会遇到需要获取客户端的真实 IP 和当前连接 net.Conn 的需求。需要注意的是,在我们的服务方法中,我们依然不能直接获得该连接信息,我们需要在方法被调用之前或之后去获取。但是希望以上的内容能够帮助你解决这个问题。这样,我们的RPC服务就会使用自定义的编解码器来处理每一个请求,每一个连接对应一个编解码器,我们可以从编解码器中获取到连接信息。然后我们需要自定义我们的RPC服务,使其在处理请求时能够使用自定义的编解码器。原创 2024-01-01 20:26:59 · 946 阅读 · 0 评论 -
Golang标准库sync的使用
Go语言作为现代编程语言,其并发编程的优势是有目共睹的。在实际编程中,我们常常需要保证多个goroutine之间的同步,这就需要使用到Go语言的sync标准库。sync库提供了基本的同步原语,例如互斥锁(Mutex)和等待组(WaitGroup),这些都是协调和控制并发执行的重要工具。原创 2024-01-01 20:25:06 · 828 阅读 · 0 评论 -
前端需要学GraphQL 吗?
GraphQL 是 Facebook 开发的一个数据查询语言,可以让前端开发者更具体地指定他们需要什么数据,从而使数据获取更加高效。GraphQL 是一种数据查询和操作语言,它主要被设计用来作为 API 的请求语言。与传统的 RESTful API 相比,GraphQL 的主要优势在于其灵活性,它允许客户端精确地描述他们需要什么样的数据,减少不必要的数据传输,提高 API 请求效率。原创 2023-12-31 09:20:31 · 1182 阅读 · 0 评论 -
为什么ChatGPT选择了SSE,而不是WebSocket?
WebSocket是一种网络通信协议,它最早被提出来是为了解决HTTP连接的一大限制:HTTP协议中,一个客户端发送给服务端的请求必须由服务端返回一个响应,这使得服务端无法主动向客户端推送数据。客户端通过发送一个特殊的HTTP请求向服务器请求建立WebSocket连接。这个请求类似于:GET /chat HTTP/1.1 Upgrade: websocket Connection: Upgrade服务器响应这个请求,确认建立WebSocket连接。原创 2023-12-31 09:19:10 · 1984 阅读 · 3 评论 -
pnpm、npm、yarn是什么?怎么选择?
pnpm、npm、yarn三者是前端常用的包管理器,那么他们有什么区别呢?原创 2023-12-27 08:49:31 · 1531 阅读 · 0 评论 -
编程技巧:一行代码实现电商评分系统~
有的代码像魔术师一样巧妙地隐藏了自己,有的像魔法师一样让你眼花缭乱,还有的像瑜伽大师一样灵活自如。这段代码使用到了JavaScript的字符串截取函数substring,利用传入的rating评分值,截取出对应数量的星号,生成了动态的星级评分。世界充满无数奇妙的代码,它们像瑜伽大师一样灵活自如,像魔术师一样令人瞠目结舌。当我们浏览各大电商平台、电影评价网站时,经常会看到各种星级评价系统,产品或服务的品质就通过简洁明了的星星数目一览无余,这些评价图标的生成背后,是如何运用代码实现的呢?原创 2023-12-27 08:42:50 · 447 阅读 · 0 评论 -
国产商汤的的Copilot到底有多好用?
GitHub 和 OpenAI 共同打造的一款编程神器–Copilot,这是一款立足于人工智能技术的编程助手。在此基础上,借助于GitHub 庞大的代码库和来自全球的开源社区帮助,搭配 OpenAI 在自然语言处理以及机器学习方面的实力,Copilot成为了开发者的得力助手,为建议代码、生成代码等提供了新的功能。原创 2023-12-26 22:32:19 · 1658 阅读 · 0 评论 -
4月阿里offer被毁,我是怎么进字节的?
仅想通过我的故事,给大家分享求职过程中的感悟。原创 2023-12-26 22:11:04 · 460 阅读 · 0 评论 -
AI跨界学习,不再是梦!
以 【人工智能】为例,当我们提出问题的时候,GPT会从入门到精通,逐步输出人工智能领域的知识树,从入门到精通,应有尽有!由于内容过长,使用图片代替可以看到,我们可以直接获得【人工智能领域】有关的知识树,并且给出了价值、学习资源、如果我们想进一步了解某个模块的知识,直接问就可以了,比如:是不是很简单呢?原创 2023-12-06 22:14:14 · 444 阅读 · 0 评论 -
GPT实现开放式世界游戏实践【生化危机】
最近开始研究如何基于GPT构建一个游戏引擎,于是先从简单的文字游戏开始探索。添加图片注释,不超过 140 字(可选)添加图片注释,不超过 140 字(可选)下一个文字游戏,打算做一个塞尔达背景的世界,并且探索一下游戏战斗模式,如果大家有其他好的点子,欢迎评论。原创 2023-12-03 15:32:11 · 605 阅读 · 0 评论 -
分享几个国内免费使用的 gpt 网站
对于免费用户来说,登录之后每天可以使用50次,对于绝大多数用户来说已经够了。并且其内置了GPTs,可以使用许多提高工作、学习效率的工具,另外文字游戏做的也不错。3、其它小型网站,之前用过,但是使用比较麻烦,直接进去就要注册登录,且登录方式单一,个人不是很推荐。算是国内比较早的AI应用网站,支持问答,画图等,所有的问答和画图都是按照积分进行消耗的。个人长期自用,界面简单,使用比较方便,支持验证码、微信登录。可放心阅读点击,无邀请链接、邀请码等。今天主要分享几个个免费的GPT网站。1、智晓星AiStar。原创 2023-12-03 15:25:07 · 22978 阅读 · 0 评论 -
计基2—RISCV指令集介绍与汇编
先来看一个问题,什么是指令集?或者说,什么是指令?我们都知道,CPU是基于晶体管、电阻、电容等基本元器件所实现的集成电路,那么实际上它是如何工作的呢?抽象成数字电路来看,当我们给CPU的一些指定端口传入**“有意义”的高低电平时,CPU内部的逻辑电路就会按照“事先设计的规则”进行运转,并在一些端口输出最终“计算的结果”**。用一幅图来描述这个过程:上图“有意义的高低电平”就是所谓的指令,而右侧的端口输出就是执行这一指令所得到的结果。...原创 2022-08-28 21:11:44 · 4543 阅读 · 0 评论 -
计算机基础(1)——Verilog语法入门
最近在学计算机基础课程,硬核到不仅仅是汇编,而是直接开始写硬件相关代码了!为了能够跟上课程进度,提前了解一些Verilog语法是很有必要的。原创 2022-08-06 22:29:55 · 4678 阅读 · 0 评论 -
CPU Cache与MESI缓存一致协议
CPU Cache在看小林文章的时候,边看边查,加深了对CPU Cache了解。包括什么是Cache?Cache的分级?缓存一致性?write through与wrte back?等等什么是Cache小林开篇提了一个问题:请问以下两种初始化数组的方式,哪种方式执行速度更快?回答这个问题,必须得有Cache相关的知识储备。现阶段,计算机内存的速度远远低于CPU的访问速度,为了协调CPU与内存之间的速度差异,就在两者之间加了一个中间层——缓存Cache。CPU缓存(Cache Memory)位于原创 2021-09-21 23:05:02 · 356 阅读 · 0 评论 -
手写操作系统(5)——CPU工作模式与虚拟地址
CPU工作模式按照CPU功能升级迭代的顺序,CPU的一共有三种工作模式:实模式、保护模式、长模式。在不同的工作模式下,CPU执行程序的方式不同,至于有什么不同以及为什么会造成不同,接着往下看。实模式(Real Mode)实模式,何为实?一是指运行的指令是真实的,没有权限区分;二是指运行的地址是真实的,与内存地址一一对应,并且可以操控任意位置的内存。内存寻址在理解实模式运行过程之前,先来看看在X86 CPU实模式下的寄存器有哪些:上面这些寄存器有什么用?当CPU运行某段指令时,需要先将指原创 2021-08-19 20:11:42 · 1137 阅读 · 0 评论 -
手写操作系统(4)——计算机是如何启动的?BIOS、GRUB、文件系统......
我一直有一个疑惑——计算机到底是怎么启动的?而且似乎有点矛盾——要想启动,就必须运行程序,但是计算机没开机怎么加载和运行程序呢?为了解决这个矛盾,工程师终于想出将一小段程序固化进一块存储设备,电脑只要开机就会开始执行这段程序。并且上节课中提到了BIOS、GRUB、BootLoader等概念,与之相类似的还有诸如UEFI、MBR、GPT等名词,这些名词都是跟计算机的启动过程有关的。它们都是在操作系统之前进行的,主要完成计算机的硬件检查、初始化、加载操作系统等**,**现在我们梳理一下它们的关系便于更好的原创 2021-07-24 22:57:36 · 1289 阅读 · 3 评论 -
手写操作系统(3)——开发环境建立与内核架构设计
之前介绍了简单的Hello OS以及代码是如何运行的。接下来我们会真正动手开始往我们的Hello OS中增加功能,但是——操作系统架构是一个极其精细的活。如老话所言“凡事三思而后行”,虽说是手写操作系统,但也得先想清楚其中的细节、一步一步的来构建操作系统不是?这一次,我们先跟着彭老师的课程在Mac环境或Windows环境下进行内核开发环境的构建,并启动我们所配置的操作系统。而后再来看看操作系统的内核设计,而后建立我们以后进行内核开发的环境。环境建立工欲善其事必先利其器,就跟开发其他应用一样,首先,我们原创 2021-07-15 23:12:48 · 3219 阅读 · 36 评论 -
【Java Spring开源项目】新蜂(NeeBee)商城项目运行、分析、总结
项目简介**项目地址:**https://github.com/newbee-ltd/newbee-mall**项目介绍:**newbee-mall 项目是一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发。 前台商城系统包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统包含数据面板、轮原创 2021-07-11 22:35:47 · 3321 阅读 · 6 评论 -
【实习总结】Java学习最佳实践!
总结在Java学习过程中一些看过的、质量不错的文章。前言目录**Java基础****Java进阶****编码规范****反射****注解****泛型****多线程****异常****集合框架****JVM相关****Class文件结构****类加载过程****GC垃圾回收原理、策略****Java8新特性****Stream****Lambda****Optional类****方法引用****单元测试****系统设计****设计模式****系统设计理念****Spring相关****常用中间件****K.原创 2021-07-06 21:54:20 · 711 阅读 · 0 评论 -
Spring特性之二——IOC控制反转
带着问题阅读● 什么是IOC?(是什么+为什么)● 理解DI(依赖注入)先看其他人的理解(内容来源)1.IoC是什么IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:● 谁控制谁,控制什么:传统Java SE原创 2021-06-24 21:38:35 · 218 阅读 · 1 评论 -
Spring特性之一——AOP面向切面编程
带着问题去阅读什么是面向切面编程?(是什么+为什么)如何使用AOP?(怎么用)什么是AOP?AOP,全称:Aspect Oriented Programming,即面向切面编程。它最早是在1997年的面向对象编程大会上提出来的概念,并于2001年在AspectJ中得到首次实践。与面向对象OOP不同的是,AOP并不是将程序抽象成各个层次的对象,而是将程序抽象成一个一个的切面。何为切面?简单的理解,就是将程序在一些特定的地点(比如在某个函数调用之前、返回之后等)切分开来,并在这些特定的地点插入原创 2021-06-24 21:37:44 · 215 阅读 · 1 评论 -
什么是分布式锁?
什么是分布式锁?在一些分布事场景下,为了保证数据的一致性,而分布式锁就是用来解决这个问题的。例如,当多台机器需要对同一个用户属性进行修改时,就会出现属性值跟预想的不一样的结果,如下图所示:PS:其实跟多线程锁需要解决的问题很像——都是为了达到数据的一致性。只不过多线程锁是为了解决单机问题,而分布式锁是为了解决多台机器(分布式集群)的问题。分布式锁应该具备的条件:一个方法同一时间只能被一台机器执行;高可用的获取锁和释放锁;高性能的获取锁和释放锁;具备可重入性;具备相应的机制,防止死锁;原创 2021-06-17 23:47:30 · 278 阅读 · 0 评论 -
kafka底层原理分析
Kafka是由Linkedin公司开发的一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据。文章目录**系统架构****工作流程****通信模式****其他****Zookeeper**kafka具有众多良好的特性:高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒可扩展性: kafka集群支持热扩展持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止.原创 2021-06-17 23:43:26 · 575 阅读 · 10 评论 -
【面试必问】五分钟搞懂Java常用注解以及原理
注解是什么?Java 注解是Java5添加的,用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解可以用于这一目的。注解是一种元数据,可以将它理解为一种特殊的注释,它为我们在代码中添加信息提供了一种形式化的方法,它用于帮助我们更快捷的写代码。简单来说,注解主要有四个部分的作用:生成文档:即将元数据生成为Javadoc文档;编译检查:编译器在编译阶段会对代码进行检查,例如@override注解会提示编译器查看其是否重写了父类的方法;编译动态处理:主要是用原创 2021-06-12 20:35:34 · 1367 阅读 · 1 评论 -
Java8函数式编程接口:Consumer、Supplier、Function、Predicate
开宗明义java8的一个新特性就是在java.util.function中提供了四个函数式编程接口,分别是Consumer、Supplier、Function、Predicate。其中,consumer即消费接口,传入一个参数,并对其进行相应的操作(有点类似于lambda表达式);supplier即供给接口,可以传入数据,作为一个容器;function即方法接口,主要是用作数据类型之间的转换;predicate即判断接口,传入参数,而后返回判断的结果true/false;接原创 2021-06-02 22:51:27 · 1841 阅读 · 2 评论 -
大话设计模式(3)——造物者一般的建造者模式
本来建造者模式是放到后面才写的,但有群友催稿,并且点明需要看看建造者模式来满足工作上的需要,也就有了这篇文章。什么是建造者模式?建造者模式归纳起来其实就一句话:女娲造人,形态各异。传说女娲是用泥巴捏出人来的,当时捏出的小泥人虽然每个都是两条腿、两只手、一个脑袋的样子,但是具体到每个部位,却有有所不同:有的小泥人手长一点,有的手短一点;有的脑袋圆鼓鼓的,有的脑袋尖尖的······也就是说,当初女娲在造人的时候,她的心中是有一副蓝图——即是人型的样子,但是在塑造不同部位的时候,选择的是不同的“捏制”.原创 2021-05-29 22:31:29 · 1666 阅读 · 19 评论 -
大话设计模式(2)——策略模式
策略模式现在,我们来看看用处极广的一个设计模式:策略模式。定义策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式的精髓就在于将经常变化的一点提取出来,单独变成一类,并且各个类别可以相互替换和组合,类图关系如下:结合策略模式的类图,可知:策略模式通过context上下文类来自由的选择所要采取的方法:public class AbstractContext { AbstractStrategy strategy; /原创 2021-05-27 21:05:05 · 309 阅读 · 2 评论 -
手写操作系统(2)——代码是怎么运行的?
之前手写了一个非常简单的Hello OS操作系统,再开始后面的学习之前,我们先思考一个问题——代码到底是怎么运行起来的?下面就将从0和1,二极管,数字电路,模拟电路入手,讲一讲代码内部的秘密。文章目录**从0和1到代码****0和1****二极管****逻辑运算与门电路****加减乘除四则运算****寄存器****译码器与选择器****“终”章****计算机组成****CPU****存储器****IO设备****软件****参考链接**从0和1到代码现在可以开始一个问题了:一个代码到底是怎么执行.原创 2021-05-24 22:59:58 · 1208 阅读 · 3 评论 -
【技术面试】服务器常问面试集锦
在Tinywebserver这个项目最后,社长提出了一些可能的面试问题,读者学习完该项目之后可以试着回答一下,看是否究竟对这个项目了如指掌::包括项目介绍,线程池相关,并发模型相关,HTTP报文解析相关,定时器相关,日志相关,压测相关,综合能力等。我对此进行了简单的回答,如果有所纰漏请大家不吝赐教。原文地址:https://zhuanlan.zhihu.com/p/364044293项目介绍为什么要做这样一个项目?——实验室的项目偏向于机器视觉,感觉自身对于后台开发的知识有点薄弱,故此想学习有关服务原创 2021-05-24 22:39:45 · 3214 阅读 · 0 评论 -
Spring新手教程
基于《Spring实战》第五版进行学习让我们来一起学习Java Spring吧!Spring基础介绍Spring 的核心是一个容器,通常称为 Spring 应用程序上下文,用于创建和管理应用程序组件。**这些组件(或 bean)**在 Spring 应用程序上下文中连接在一起以构成一个完整的应用程序。将 bean 连接在一起的行为是基于一种称为 依赖注入(DI)的模式。依赖项注入的应用程序不是由组件自身创建和维护它们依赖的其他 bean 的生命周期,而是依赖于单独的实体(容器)来创建和维护所有.原创 2021-05-22 10:36:34 · 590 阅读 · 0 评论 -
Java从0开始
让我们来一起学习Java吧!前置环境配置工欲善其事必先利其器,先老老实实地把环境配置好吧。环境配置参见:https://www.runoob.com/java/java-environment-setup.html,至于ide安装的是:https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows&code=IIC。之后就是具有仪式性的一件事了——helloworld!新建一个project,取.原创 2021-05-17 22:31:40 · 121 阅读 · 0 评论