景铭的博客

Thinking will not overcome fear but action will.

VIM常用操作

笔记

VIM三种模式:命令模式、输入模式、底线命令模式。还有一种可见模式,鼠标进行选中文本。 一、命令模式 移动光标 命令 说明 0 到行头 $ 到行尾 G 到文件最后一行 ...

浏览器解析Html

笔记

已经有许多的文章介绍了浏览器解析Html。这里只是进行引用和理解。 https://juejin.im/post/6844903745730396174 https://zhuanlan.zhihu.com/p/30898865 https://segmentfault.com/q/1010000000640869 https://www.zhihu.com/question/...

Shell的使用

Tmux

为什么程序员需要使用界面简陋的Shell?或者说:为什么使用键盘操作计算机比使用鼠标要显得高大上? 原因如下: 计算机程序的本质就是提供命令为用户服务。其中的交互设计包括两种: 图形操作:用户首先找到图标,然后点击它运行; 键盘操作:用户用键盘键入自己的命令。 仔细思考下,用户点击图标的时候,其实是需要首先找到图标的坐标的,点击之后触发了类...

从操作系统内核到产品部署(一)

从操作系统内核到产品部署理解

这篇主要是整理下从操作系统内核到软件产品部署的理解要点。 一、操作系统内核 操作系统是介于应用程序和硬件的中间的软件层。操作系统内核就是操作系统的核心,也就是操作系统作为中间层该做的事,包括: 文件系统,进程调度,内存管理,网络系统等。非内核的部分,例如UI。 二、容器技术 例如LXC容器技术,其作用是在同一个内核上运行多个应用程序与系统。 理解:例如有两台电脑,两台电脑同样硬件...

从操作系统内核到产品部署(二)

Web服务

上篇介绍到了Docker,docker里面可以部署应用程序。 这篇以Web服务部署继续讲解。Web程序运行,需要部署到服务器,而服务器依赖操作系统,操作系统打包到Docker。 一、Web程序 所谓Web程序,其实就是通过Http协议来提供服务的程序。一般来说,浏览器请求网页就是请求Web程序给自己服务。 服务提供的内容,按功能特色分为静态资源(就是一些静态的网页文本)和动态资源(一...

Leetcode按题目类型总结(二十)

字典树

所有代码详见:https://github.com/jingminglake/Leetcode 总体思路 前缀树是树结构,特点是其中从根往下走的路径,是有前缀意义的。最常见的是字母前缀树,路径本质是单词和单词的前缀。 前缀树和hashtable的关系 相同之处在于,两者都可以对一组信息(例如一个字典,也就是单词集合)进行存储和管理,对hash技术来说就是存储到一张hash表里...

乐理概要

掌握必要乐理基础知识(一)

乐理对人们对音乐发展中重复性和本质性的内容进行提炼而形成的。通过学习乐理,我们可以站在巨人的肩膀上实践音乐:包括欣赏音乐、唱歌、弹琴、交流音乐等等。 一、音乐的物理构成 音乐由声音构成,由人耳感知。声音是往往由于物体(例如乐器)在发生形变的时候震动带动了空气一起震动产生,然后传入人耳。 音乐中的声音有四种性质:高低、强弱、长短、音色。前三者对应波的要素: 频率(每秒多少次震动)、幅度、时...

Github博客写作

为什么使用Github博客

前言 偶然在网上搜博客搭建,就发现了 qiubaiying 经典教程,就果断决定来操作下。 原来的博客需要花时间迁移过来,现在也还是处于学习阶段。 为什么要迁徙到Github博客呢?请看正文。 正文 静态博客是指主要提供静态文本,而不提供复杂的函数功能服务的博客。这其实已经满足了大部分人的要求,毕竟写文章才是博客的核心。 博文的内容也无非就是技术总结,生活感悟,想法等。对我来说,...

Java知识实践—基础篇(四)

笔记

此篇总结Java的多线程。 https://www.bilibili.com/video/av11076511/ 多线程分三大块:同步和通信、同步容器、线程池。 JAVA线程之间通信主要靠的是共享内存。 一、基本概念 多线程底层原理简单理解 多线程实现类似多进程实现,多线程实现了并发的执行某个进程内多段代码逻辑,且可以共享进程的一些资源。线程之间是调度算法来切换的,在cpu只有一个核的...

Java知识实践—基础篇(二)

笔记

介绍Java常用类使用方法。 Long类 Long的最大值是2^63 - 1,接近小数点后18个0。 Long的乘法有个非常难察觉的错误: 例如:long l = 10000 * 10000000,那么结果l将不等于10^11。问题在于Java把10000和10000000作为int,所以进行了int的乘法, 溢出后转为int,然后赋值给long。 正确写法是:long l = (...