快速搭建个人博客 —— 保姆级教程
本站点主题现已更换为 Next,文中除主题外的配置参数均不受影响
本站点主题现已更换为 Next,文中除主题外的配置参数均不受影响
👲👲作者主页:🔗杰森的博客
📒📒本文摘要:TCP 三次握手,四次挥手知识点精析。备考、面试前看两眼,加深记忆,祝你一臂之力。顺利通过考试、拿到 offer。
💖💖如果本文帮助到你的话,还请各位小伙伴👍点赞➕收藏⭐➕评论💭支持杰森呀✌️
“什么是三次握手,四次挥手?”,该问题作为计算机网络学科中常见问题之一,无论是面试还是考研,我们都有必要细细参透其中的奥妙
在学习之前,我们首先需要了解一些基本的概念
传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,在 OSI 模型中完成传输层指定功能。
TCP 使用校验和函数检验数据是否出现错误,在数据发送和接收时均需要计算校验和。
大家好,我是杰森。GitHub
对大家来说一定不陌生,无论是学习还是交
(爬)朋
(项)友
(目)。但是今天,我好像和它失联了……
当我像往常一样clone
项目时,却得到了这样的报错
1 | $ git clone git@github.com:appletdevelop/full-stack.git |
什么都不能阻止打工人搬砖,必须要解决。经过一番排查,终于找到了问题的根源。分享两种解决方案,大家注意避坑。
因为错误信息显示 Connection refused
,所以我们需要去看看建立连接时发生了什么,为什么会出错。查看日志,果然发现端倪
1 | $ ssh -vT git@github.com |
日志显示,IPv6
和 IPv4
的 localhost
地址分别为 ::1
和 127.0.0.1
,这意味着我们在连接 github
时,其域名将会被解析为 localhost
地址,当然也就无法连接。
打开查询网站,找到 github.com
的 IP
地址
Windows
下,打开本机 hosts
文件
C:\Windows\System32\drivers\etc
添加域名映射,并在 cmd
窗口刷新 DNS
配置
1 | 140.82.112.4 github.com |
重新拉取,成功。
从上面的报错信息中可以发现,重点在这一句
1 | ssh: connect to host github.com port 22: Connection refused |
ssh
连接 GitHub
的 22
号端口被拒绝。但是 ping
一下 github.com
能通,浏览器访问也没有问题,那有可能是该端口被防火墙蔽掉了。既然 22
端口拒绝访问,我们不妨尝试使用 443
端口进行连接。
使用 vim
指令编辑 ssh
配置文件,添加以下端口信息
1 | $ vim ~/.ssh/config |
测试访问是否成功,通常不出意外的话意外就来了……
1 | $ ssh -T git@github.com |
这与 ssh
的运行机制有关,ssh
会将本机访问过的计算机的 public key
记录在 ~/.ssh/known_hosts
下。当下次访问相同计算机时,若公钥不同则会发出警告,避免受到攻击。这里只需要找到 known_hosts
文件中对应 ip
的 RSA
并删除便可解决。
再次测试,看到以下信息则表示访问成功
1 | $ ssh -T git@github.com |
这样访问 GitHub
时,ssh
就会连接 443
端口,不会报错。
总结下本次踩坑的原因,主要有两点:
DNS
解析;总之:“网上冲浪也要注意暗礁,低头走路也要抬头看路”,以上就是本期分享啦,希望可以帮到您!
👲👲作者主页:🔗杰森的博客
📒📒本文摘要:微信分身(多开)教程
💖💖如果本文帮助到你的话,还请各位小伙伴👍点赞➕收藏⭐➕评论💭支持杰森呀✌️
系统环境:Windows 11
微信,相信已经是我们生活中离不开的东西之一了,但随着使用时间增多,我们添加的好友也越来越多。本来想着分分类,让工作和生活分离开来。但看着近千人的通讯录列表实在是苦于操作,于是我们注册了另一个账户。亦称,“小号”、“工作号”
但随之而来的麻烦又来了,电脑只能登录一个微信账户。那这时候就有同学说了:“来回切换账户发消息,不累么?”
当然,伟大的程序猿们怎么能浪费时间在这种事情上呢!那今天杰森教大家微信分身,一台电脑同时登录多个微信账户
服务器 快到期了,这几天迁移到
GitHub
上,用免费的GitHub Pages
重新部署下 杰森的博客 。以下样式及优化配置基于Hexo
,主题Next
本文最具价值的配置莫过于此,没有用到 GitHub Actions
前,每次发文需要将 markdown
文件放入 _post
文件夹下,然后执行 hexo clean && hexo g && hexo s && hexo g
一连串命令,执行无报错还好说,万一本地环境出现错误,还得花时间找错,非常麻烦
使用 GitHub Actions
后,发文只需要在博客的源文件仓库中拖拽源文件或者 push
源文件到仓库,GitHub Actions
即可监测仓库状态,自动执行部署操作到指定位置,不必担心本地环境出错等系列问题
👲👲作者主页:🔗杰森的博客
📒📒本文摘要:攻城狮杂谈,谈谈对创作的感受
💖💖希望对你有所帮助👍点赞➕收藏⭐➕评论💭支持杰森呀✌️
今天咱们不聊技术,不谈知识要点,单纯聊聊✒️写博客✒️这件事情,分享下我的收获
👲👲作者主页:🔗杰森的博客
📒📒本文摘要:Idea 开发常用快捷键总结,祝你一臂之力,不加班!
💖💖感觉本文不错的话,还请各位小伙伴👍点赞➕收藏⭐➕评论💭支持杰森呀✌️
快捷键 | 含义 |
---|---|
Ctrl+Shift + Enter | 语句完成 |
! | 否定完成,输入表达式时 “!”键 |
Ctrl+E | 最近文件 |
Ctrl+Shift+E | 最近更改的文件 |
Shift+Click | 关闭文件 |
Ctrl+[ OR ] | 可以跑到大括号的开头与结尾 |
Ctrl+F12 | 显示当前文件的结构 |
Ctrl+F7 | 查询当前元素在当前文件中的引用,按 F3 可以选择 |
Ctrl+N | 快速打开类 |
Ctrl+Shift+N | 快速打开文件 |
Alt+Q | 可以看到当前方法的声明 |
Alt+Q | 可以看到当前方法的声明 |
Ctrl+P | 可以显示参数信息 |
Ctrl+Shift+Insert | 可以选择剪贴板内容并插入 |
Alt+Insert | 可以生成构造器/Getter/Setter等 |
Ctrl+Alt+V | 可以引入变量。例如:new String(); 自动导入变量定义 |
Ctrl+Alt+T | 可以把代码包在一个块内 例如:try/catch |
Ctrl+Enter | 导入包,自动修正 |
Ctrl+Alt+L | 格式化代码 |
Ctrl+Alt+I | 将选中的代码进行自动缩进编排,这个功能在编辑 JSP 文件时也可以工作 |
Ctrl+Alt+O | 优化导入的类和包 |
Ctrl+R | 替换文本 |
Ctrl+F | 查找文本 |
Ctrl+Shift+Space | 自动补全代码 |
Ctrl+空格 | 代码提示(与系统输入法快捷键冲突) |
Ctrl+Shift+Alt+N | 查找类中的方法或变量 |
Alt+Shift+C | 最近的更改 |
Alt+Shift+Up/Down | 上/下移一行 |
Shift+F6 | 重构 – 重命名 |
Ctrl+X | 删除行 |
Ctrl+D | 复制行 |
Ctrl+/或Ctrl+Shift+/ | 注释(//或者/**/) |
Ctrl+J | 自动代码(例如:serr) |
Ctrl+Alt+J | 用动态模板环绕 |
Ctrl+H | 显示类结构图(类的继承层次) |
Ctrl+Q | 显示注释文档 |
Alt+F1 | 查找代码所在位置 |
Alt+1 | 快速打开或隐藏工程面板 |
Ctrl+Alt+left/right | 返回至上次浏览的位置 |
Alt+left/right | 切换代码视图 |
Alt+Up/Down | 在方法间快速移动定位 |
Ctrl+Shift+Up/Down | 向上/下移动语句 |
F2 或 Shift+F2 | 高亮错误或警告快速定位 |
Tab | 代码标签输入完成后,按 Tab,生成代码 |
Ctrl+Shift+F7 | 高亮显示所有该文本,按 Esc 高亮消失 |
Alt+F3 | 逐个往下查找相同文本,并高亮显示 |
Ctrl+Up/Down | 光标中转到第一行或最后一行下 |
Ctrl+B/Ctrl+Click | 快速打开光标处的类或方法(跳转到定义处) |
Ctrl+Alt+B | 跳转到方法实现处 |
Ctrl+Shift+Backspace | 跳转到上次编辑的地方 |
Ctrl+O | 重写方法 |
Ctrl+Alt+Space | 类名自动完成 |
Ctrl+Alt+Up/Down | 快速跳转搜索结果 |
Ctrl+Shift+J | 整合两行 |
Alt+F8 | 计算变量值 |
Ctrl+Shift+V | 可以将最近使用的剪贴板内容选择插入到文本 |
Ctrl+Alt+Shift+V | 简单粘贴 |
Shift+Esc | 不仅可以把焦点移到编辑器上,而且还可以隐藏当前(或最后活动的)工具窗口 |
F12 | 把焦点从编辑器移到最近使用的工具窗口 |
Shift+F1 | 要打开编辑器光标字符处使用的类或者方法 Java 文档的浏览器 |
Ctrl+W | 可以选择单词继而语句继而行继而函数 |
Ctrl+Shift+W | 取消选择光标所在词 |
Alt+F7 | 查找整个工程中使用地某一个类、方法或者变量的位置 |
Ctrl+I | 实现方法 |
Ctrl+Shift+U | 大小写转化 |
Ctrl+Y | 删除当前行 |
Shift+Enter | 向下插入新行 |
psvm/sout | main/System.out.println(); Ctrl+J,查看更多 |
Ctrl+Shift+F | 全局查找 |
Ctrl+F | 查找/Shift+F3,向上查找/F3,向下查找 |
Ctrl+Shift+S | 高级搜索 |
Ctrl+U | 转到父类 |
Ctrl+Alt+S | 打开设置对话框 |
Alt+Shift+Inert | 开启/关闭列选择模式 |
Ctrl+Alt+Shift+S | 打开当前项目/模块属性 |
Ctrl+G | 定位行 |
Alt+Home | 跳转到导航栏 |
Ctrl+Enter | 上插一行 |
Ctrl+Backspace | 按单词删除 |
Ctrl+”+/-” | 当前方法展开、折叠 |
Ctrl+Shift+”+/-” | 全部展开、折叠 |
The following iterative sequence is defined for the set of positive integers:
$$
\large n\rightarrow \frac{n}{2}\ \left ( n\ is\ even \right ) ,n\rightarrow3n+1\ \left ( \ n\ is\ odd \right )
$$
Using the rule above and starting with $13$, we generate the following sequence:
$$
\large 13\rightarrow40\rightarrow20\rightarrow10\rightarrow5\rightarrow16\rightarrow8\rightarrow4\rightarrow2\rightarrow1
$$
It can be seen that this sequence (starting at $13$ and finishing at 1) contains $10$ terms. Although it has not been proved yet (Collatz Problem), it is thought that all starting numbers finish at $1$.
Which starting number, under one million, produces the longest chain?
NOTE: Once the chain starts the terms are allowed to go above one million.