目录

一、计算机原理基础

三、虚拟机安装与使用

四、Linux系统介绍

4.1 Linux系统介绍

4.2 单体项目部署:

4.3 部署Springboot项目(java -jar xxx.jar):

4.3.1 windows

4.3.2 linux环境上部署目录:

4.4 Linux 实操命令:

五、网络通讯介绍

5.1、 网络分层

5.2、网络基础知识

5.3、TCP

​编辑

5.4、UDP

5.5、HTTP

5.6、SOCKET

5.6.1、 BIO(Blocking IO)程序

5.6.2、 NIO 程序

​编辑​​​​5.6.3、 Netty

5.6.4、 Redis底层基于epoll的实现原理


一、计算机原理基础

三、虚拟机安装与使用

四、Linux系统介绍

4.1 Linux系统介绍

4.2 单体项目部署:

1.云服务器的购买
2.相关环境的安装,准备:
后端,前端
jdk,maven,tomcat,nginx,
3.Linux里面安装Nginx服务器
部署项目的时候,配置Nginx
4.购买,备案域名
腾讯云或者阿里云的购买
首先注册新的域名
再网站备案
5.使用SSL证书配置HTTPS
腾讯云购买SSL证书https://www.bilibili.com/video/BV15V411U7Vd?p=11&spm_id_from=pageDriver

4.3 部署Springboot项目(java -jar xxx.jar):

4.3.1 windows

步骤:

1.打包:

idea工具打jar包,使用maven命令

2.运行jar文件:

(1)前台启动方式:java -jar xxx.jar

(2)后台启动方式:java -jar xxx.jar &

区别:

前台启动 Ctrl + c 会关闭程序,

后台启动 不会

3.将上面的两个命令写成脚本,直接启动:

java -jar xxx.jar >nohup.out 2>&1&

命令解析:

nohupt.out:将标准输出日志打印到指定的文件nohup.out

2>&1:输出所有的日志文件

&: 后台启动

部署发包记录:

zip包,将引入的外部jar等资源文件也上传到服务器

jar包:只是将.class字节码文件上传到服务器

注意:

当项目引入新的jar包的时候,发jar包失败

则需要发zip包,将新引入的jar包也上传到服务器

4.3.2 linux环境上部署目录:

通过脚本启动项目命令:

./startup.sh xxx.jar

就可以成功将项目启动了,然后页面可以访问到。

注意事项

linux环境下注意关闭防火墙,否则部署之后,经常会访问不到网页。如果linux环境下安装了java的一些环境,还可以通过jps命令,查看哪些已经启动的java进程。

4.4 Linux 实操命令:

linux目录解析:

opt/:主要放安装包 的目录

/usr/local: 软件安装的目录

linux命令:

cd:  进入指定目录
cd ../ :到上一级目录
rz :    上传文件(从window上传文件到linux服务器)wget:    linux最常用的下载命令,
一般的使用方法是: wget + 空格 + 要下载文件的url路径
例如: # wget http://www.linuxsense.org/xxxx/xxx.tar.gztar -zxvf:  解压压缩包
解析:
linux命令的 - 后面有多个字母代表有多个参数z: 压缩文件是.tar.gz结尾的,所以用tar命令 -z进行筛选x:    进行解压操作v:    显示信息f:  指定是哪个需要解压的文件cp 文件名  路径: 拷贝文件,将某个文件拷贝到指定目录下
cp -r:递归拷贝文件夹和其里面的文件mv:移动文件夹
ex: mv  文件 a b  ->    将文件从a目录移动到b目录
rm:删除文件件
ex:rm 文件1       ->    删除文件1
rmdir:   删除空目录
rm -rf: 删除目录(递归删除,谨慎使用)
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,
现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf
即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,
不作任何提示的意思方法:
1、删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access
目录以及其下所有文件、文件夹
2、删除文件使用实例:rm -f /var/log/httpd/access.log将会
强制删除/var/log/httpd/access.log这个文件
注意事项:使用这个rm -rf的时候一定要格外小心,linux没有回收站的tar -vxf :   解压.tar.xz为后缀的压缩包
tar -zvxf : 解压.tar.xz为后缀的压缩包
upzip:  解压.zip为后缀的压缩包
rz: 上传文件到linux服务器
sz:  从linux服务器下载文件touch :新建文件
vim :编辑文件
编辑完按Esc退出编辑模式此时输入:
i:开始编辑 打开编辑模式
保存退出编辑文件
:w   :   保存当前文件
:x  :保存文件且退出
:q   : 退出 vi编辑
:wq:保存文件且退出vi:w
:q!:不保存文件退出vi
cat :查看文件内容linux下重命名文件或文件夹的命令mv既可以重命名,又可以移动文件或文件夹.
例子:将目录A重命名为B
mv A B
例子:将/a目录移动到/b下,并重命名为c
mv /a /b/cLinux日志中如何查找关键字及其前后的信息
通过grep搜索 xxx.log 日志中的关键字,高亮显示
cat xxx.log | grep "关键字"
然后再根据上一步查找到的 trace: id 会话id搜索同一个会话的日志即可
cat xxx.log | grep "trace: id]"参考:https://www.cnblogs.com/wintest/p/11676966.h

五、网络通讯介绍

5.1、 网络分层

5.2、网络基础知识

5.3、TCP

1.概述:分层

实例:

发的时候是封装:

收的时候是分用:

环回接口:

5.4、UDP

5.5、HTTP

5.6、SOCKET

5.6.1、 BIO(Blocking IO)程序

并发高了,存在阻塞问题,使用BIO会不合适,在jdk 1.4之后就会引入了NIO (不阻塞的IO )。

没有记太多笔记,学习地址可跳转至下方链接(没有打广告,个人博客,自己记录学习而已):

https://www.bilibili.com/video/BV19K4y1Q7Yt?p=2&spm_id_from=pageDriver

5.6.2、 NIO 程序

NIO解决了BIO阻塞问题,还有只能单线程处理一个客户端连接的问题(除非创建多线程处理)

这样的NIO存在的问题?

答:比如1w个链接,只有3个客户端链接有读写事件,但是还是每次都会遍历1w次,这样就浪费资源。

如果优化?工作中实际使用的NIO是如何优化的?

答:优化方式

NIO的模式讲解图:

客户端链接对应的socketChannel会注册到selector(多路复用器),selector (ServerSocketChannel) 会去监听有读写事件的客户端链接(socketChannel),把它们存在就绪事件列表rdlist,遍历的时候,只去遍历rdlist(有读写事件的客户端链接)。

Java语言的跨平台:

windows版本的jdk:select()方法的底层就是调用windows版本的方法创建select

linux版本的jdk:select()方法的底层是调用linux版本的方法创建select

macos版本的jkd:select方法的底层是调用macos版本的方法创建select

所以java语言的跨平台性其实就是,针对于不同版本的系统,jdk在底层方法调用的时候,判断了不同的系统,调用的是不同的方法。

Java里面创建select()的时候,实际底层是,linux系统的epoll()函数帮我们创建了c语言的级别的epoll()数据结构体。(也可以理解为,c语言帮我们创建了epoll实例对象,存储实现集合)

如何查看linux系统的epoll()函数底层是如何实现的呢?

1.下载linux的源码来看,linux是由c语言和汇编语言写的,看起来难度大

2.百度

3.直接在linux系统里面使用 man 命令 + epoll(),linux系统会给我反馈此函数的一些英文描述

Selector.open()方法底层调用解析:

epoll()底层实现原理:

epoll()3个重要函数的讲解:

1.epoll_create()

2.epoll_ctl()

3.epoll_wait()

channel的是否有事件的监听,底层实际是操作系统帮我们监听的:是由操作系统的中断程序来感知响应监控的。

2.epoll_ctl底层的监听,存储channel的原理:

3.epoll_wait()的作用:

while循环去处理有事件发生的channel

有事件发生就跳出阻塞,处理channel

没有事件发生就阻塞,等待事件的发生

​​​​5.6.3、 Netty

5.6.4、 Redis底层基于epoll的实现原理

01-计算机原理基础相关推荐

  1. 计算机原理基础知识pdf,计算机原理第一章.pdf

    计算机组成原理 讲授:李凌燕 学时:48 本课程考查目标  本课程对计算机专业来说是非常重要的专业基础 课. 理解单处理器计算机系统中各部件的内部工作原理.组 成结构以及相互连接方式,具有完整的计 ...

  2. 计算机原理基础-原反补

    补码.负数和减法 计算机里面,只有加法器,没有减法器,所有的减法运算,都必须用加法进行. 用补数代替原数,可把减法转变为加法.出现的进位就是模,此时的进位,就应该忽略不计. 二进制下,有多少位数参加运 ...

  3. 逻辑代数01律的理解_零基础学习计算机原理:布尔逻辑和逻辑门

    Hello World!我是老乔,欢迎来到超智星球.在这里,每篇都学一个小知识. 微号:超智星球 网站:http://chaozhixingqiu.com 这期呢,还是计算机原理系列,上期最后讲到了自 ...

  4. 01.计算机基础与Java

    计算机基础与Java 01.01_计算机基础知识(计算机概述)(了解) 01.02_计算机基础知识(软件开发和计算机语言概述)(了解) 01.03_计算机基础知识(人机交互)(了解) 01.04_计算 ...

  5. 计算机原理与应用简称,基础知识-计算机原理与应用.ppt

    基础知识-计算机原理与应用 第1章 基础知识 本章内容: 单片机的概念 单片机的发展.基本的结构和特点 单片机的应用模式和领域 MCS-51单片机等. 1.1 计算机的一些概念 1.2 单片机 单片机 ...

  6. 计算机原理寄存器基础知识,微机原理——基础知识及计算机基本组成

    微机原理基础 期末复习要求 理解Bit byte word doubleword 等基本概念 计算机常用的数制和编码 十进制.二进制.十六进制的运算和转换 常用的ASCII码:数字.大小写英文字母的A ...

  7. 微机原理——基础知识及计算机基本组成

    微机原理基础 期末复习要求 理解Bit byte word doubleword 等基本概念 计算机常用的数制和编码 十进制.二进制.十六进制的运算和转换 常用的ASCII码:数字.大小写英文字母的A ...

  8. 安徽大学计算机数据库基础知识,ahu: 安徽大学计算机专业【初试真题】 - 计算机专业基础(数据结构,操作系统)【复试真题】 - 计算机专业综合(计算机组成原理,数据库原理)...

    ahu 安徽大学计算机专业 [初试真题] --->计算机专业基础(数据结构,操作系统) 初试资料我没时间弄,等你们考上学弟学妹的弄吧 [复试真题] --->计算机专业综合(计算机组成原理, ...

  9. 大学计算机教程 曾俊,大学计算机基础教程:曾俊//李柳柏 : 电子电脑 :计算机技术 :计算机原理与基础 :浙江新华书店网群...

    导语 曾俊和李柳柏主编的<大学计算机基础教程>针对CCT和NCRE考试,对大学计算机基础教学的基本内容做了基础性和科学性研究,既精辟地讲解了计算机的基础知识,又突出了计算机的实际应用和操作 ...

最新文章

  1. linux获取url中文内容_Chrome OS 似乎将在Linux 的方向上更进一步
  2. MySQL数据库使用(二):配置、连接远端数据库
  3. NUC120 SPI 模拟I2S
  4. Java 异常处理的误区和经验总结
  5. 【翻译】理念:无冲突的扩展本地DOM原型
  6. ps命令---Linux学习笔记
  7. Bit Digital反驳美国做空机构J Capital对其比特币业务的虚假指控
  8. 20050611:超级伙伴?
  9. C# 控制台程序(Console Application )启动后隐藏
  10. treetable php,jQuery树型表格插件jQuery treetable
  11. 天使轮、A轮、B轮、C轮、D轮融资 究竟是什么?
  12. pyppeteer如何更改默认chrome路径
  13. c语言求任意球的体积,【C.Ronaldo】嘉实多极护见证最强C语言
  14. 人脸识别系列(六):FaceNet
  15. 安卓设置keychain_IOS的keychain的三种使用方法
  16. 零基础学习WEB前端开发(七):注释及特殊字符
  17. 如何优化cocos2d/x程序的内存使用和程序大小【第一部分】
  18. INN:utilization/u-rate/density
  19. 约瑟夫自杀问题笔记思路整理——由黑马java有感
  20. 重装系统后,如何调用之前mysql的数据

热门文章

  1. 高数等价无穷小替换公式
  2. 论文阅读:SUPER: A Novel Lane Detection System
  3. 英语学习 20190922
  4. Linux笔记 No.24---(curl、ip、nmcli、网卡/主机名/DNS配置文件、常见网络问题诊断、网络诊断工具:ping/nmap/tcpdump)
  5. 全网唯一:surfacepro系列用户重启或解锁后蓝牙失灵终极解决方法【绝对有效】
  6. 查看及修改微软Edge浏览器用户数据保存位置(包括详细历史记录(页面停留时间,页面访问次数,最后访问时间,下载历史等),Cookie,书签等)
  7. 【Bitmap】Canvas: trying to use a recycled bitmap android.graphics.Bitmap问题
  8. Kubernetes应用生产(二)集群部署(安装篇)
  9. Android之高仿京东APP首页“京东快报”自动向上滚动的广告条
  10. 数据处理-18.数据采集渠道