计算机基础知识

作者: 月如钩dgf | 来源:发表于2021-08-31 23:55 被阅读0次

一,二进制和十进制转换

1.十进制转换为二进制:进行对2取余法计算

十进制转换为二进制
2.二进制转换为十进制:
从最后一位开始算,依次列为第0、1、2...位 第n位的数(0或1)乘以2的n次方 得到的结果相加就是答案。
例如:二进制1101换算成十进制就是:12(1-1)+02(2-1)+12(3-1)+12(4-1)=1+0+4+8=13
3.整数:一个字节表示无符号整数取值为0~255(2^{8} - 1),有符号整数范围-128~+127,01111111最大127,若大于127溢出
4.实数:实数用浮点型表示,
ASCII码:
数字0 为:48
大写字母A:65
空格:32
英文字符的机内码是用一个字节存放ASCII码,一个ASCII码占一个字节的低7位,最高位位“0”,为区分汉字机内码中的两个字节的最高位置均置“1”。

二,存储器:

内存储器:

1.内存有只读存储器(Read only memory)简称ROM和随机(存取)存储器(Random Access memory)简称RAM。
ROM特点:只读不可写入,断电信息不丢失。
RAM特点:可读,可写,断电信息丢失,

外存储器:

1.软磁盘存储器(软盘)
2.硬磁盘存储器
3.磁带存储器
4.光盘存储器

数据库管理系统(Database Management System):

适用于网络环境的大型数据库管理系统有:sybase,oracle,DB2,SQLSever

计算机网络与Internet基础

网络协议:

一个功能完善的计算机网络是一个复杂的结构,网络上的多个节点间不断地交换着数据信息和控制信息,在交换信息时网络中每个节点都必须遵守事先约定好的共同的规则,为网络交换而制定规则约定和标准统称为网络协议。
UDP协议:
是一种不可靠的无连接协议,它与TCP协议不同的是它不进行分组顺序的检查和差错控制,而将这些工作交给上一级应用层完成。
传输控制协议TCP:
数据传输的可靠性是由控制协议(TCP协议)来提供的。
TCP 协议的主要功能是如下图描述:

TCP协议的主要功能
TCP连接三次握手
第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
释放连接四次挥手
第一次挥手:数据传输结束以后,客户端的应用进程发出连接释放报文段,并停止发送数据,其首部:FIN=1,seq=u;
第二次挥手:服务器端收到连接释放报文段之后,发出确认报文,其首部:ack=u+1,seq=v。此时本次连接就进入了半关闭状态,客户端不再向服务器发送数据。而服务器端仍会继续发送。
第三次挥手:若服务器已经没有要向客户端发送的数据,其应用进程就通知服务器释放TCP连接。这个阶段服务器所发出的最后一个报文的首部应为:FIN=1,ACK=1,seq=w,ack=u+1。
第四次挥手:客户端收到连接释放报文段之后,必须发出确认:ACK=1,seq=u+1,ack=w+1。 再经过2MSL(最长报文端寿命)后,本次TCP连接真正结束,通信双方完成了他们的告别。
IP地址:
所有Internet上的计算机都必须有一个Internet上唯一的编号作为在Internet的标识,这个编号成为IP地址,表示为W,X,Y,Z分别为一个0~255的十进制数
http和https:

HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。它可以使浏览器更加高效。HTTP 协议是以明文方式发送信息的,如果黑客截取了 Web 浏览器和服务器之间的传输报文,就可以直接获得其中的信息。
HTTPS:是以安全为目标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。SSL 协议可分为两层:SSL 记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL 握手协议(SSL Handshake Protocol),它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等
HTTPS 的优点
1、使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
2、HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。
3、HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
摘自:https://blog.csdn.net/qq_38289815/article/details/80969419

BIO和NIO

BIO:同步并阻塞,服务器实现一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,没处理完之前此线程不能做其他操作,在单线程的情况下,传输的文件很大的时候可以通过线程池机制改善。BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。
NIO:同步非阻塞,服务器实现一个连接一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4之后开始支持。

粘包和拆包

产生TCP粘包和拆包问题的主要原因是,操作系统在发送TCP数据的时候,底层会有一个缓冲区,例如1024个字节大小,如果一次请求发送的数据量比较小,没达到缓冲区大小,TCP则会将多个请求合并为同一个请求进行发送,这就形成了粘包问题;如果一次请求发送的数据量比较大,超过了缓冲区大小,TCP就会将其拆分为多次发送,这就是拆包,也就是将一个大的包拆分为多个小包进行发送

netty

Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发

序列化

简单来说序列化就是一种用来处理对象流的机制。
序列化的实现将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable
只是为了标注该对象是可被序列化的。然后使用一个输出流(如:FileOutputStream)来构造一个
ObjectOutputStream(对象流)对象。接着,使用ObjectOutputStream对象的writeObject(Object obj)方法
就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
在序列化的过程中,有些数据字段我们不想将其序列化,对于此类字段我们只需要在定义
时给它加上transient关键字即可,对于transient字段序列化机制会跳过不会将其写入文件,当然
也不可被恢复。但有时我们想将某一字段序列化,但它在SDK中的定义却是不可序列化的类型,
这样的话我们也必须把他标注为transient

相关文章

  • linux系统基础知识学习心得

    通过三天的对Linux 系统基础知识的学习,从计算机的基础知识演化到Linux 系统的发展由来,全面加强了对计算机...

  • 01 Java学习前 2018-06-17

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • Java基础笔记01

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • Java学习笔记(一)

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • JAVA笔记1-9

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例计算机(Compute...

  • Java多线程编程——计算机基础知识

    计算机基础知识 前言 在学习Java多线程编程之前,有必要先了解计算机基础知识。不必对个别问题过于深入,核心是后续...

  • 2018-05-27

    计算机基础知识 一、计算机的基本构成 一台完整的计算机是由硬件系统和软...

  • [Computer Science] Week1 Data Ma

    1.0 Computer Architecture/ 计算机结构 CPU Basics/ CPU基础知识 The ...

  • day32-Linux基础

    一、Linux基础知识 1.计算机基础知识 计算机是由硬件和软件构成的。 硬件的五大部件:运算器控制器存储器 ->...

  • 二十天入门Java系列:第一天

    @[toc] 第一天 01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例...

网友评论

    本文标题:计算机基础知识

    本文链接:https://www.haomeiwen.com/subject/jkrtwltx.html