程序员应该知道的一二事

  • JAVA
  • java虚拟机&虚拟机
  • 网络原理
  • 科普
  • 密钥(secret key)


JAVA

java虚拟机&虚拟机

“老师上课的时候老是在说虚拟机虚拟机,哪里有安装虚拟机?”“百度一下,你就知道!”

首先java 虚拟机(简称jvm),不是微软的虚拟机(vm),是sun公司的,现在已经被Oracle收购了。如果要下载的话 要去java的官网下载jdk,安装就可以了。

一个(jvm)是用来兼容的,一个(vm)是用来在计算机上再虚拟出一台或多台计算机的。

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。(也就是说java虚拟机不是用了虚拟计算机系统的,是用来搞java程序开发的)

“你不是说不写虚拟机的吗?” “真香~”

网络原理

某位daolao告诉我其实课堂上的那个CDMA系统的方式和密钥不同,因为没有“加密”的过程,只是类似于校对、过滤。

比如说有一个黑箱,放一个数进去,得到另外一个数的过程就相当于加密。CDMA系统的码片相当于随机分配的,只不过,每两个码片之间要互相正交,只要符合这个条件就可以作为码片使用。

科普

密钥(secret key)

密钥分为对称密钥与非对称密钥,对应对称加密技术与非对称加密技术。

对称密钥:信息的发送方和接受方使用同一个密钥去加密和解密数据,优势是速度快。

非对称密钥:此时密钥分为两种(公钥&私钥),公钥是公开的,每个人都可以知道。用户使用公钥去加密信息就只有拥有私钥的管理员能够解密数据,防止数据泄露。同时管理员用私钥加密的数据也只有公钥能解密。

也许有人问既然每个人都有公钥那为什么还要加密呢?其实如果使用了私钥加密,那肯定要用公钥解密,那如果每条信息都用公钥解密的话不就知道哪条信息是私钥发的,哪条不是吗?也就是说接受的信息肯定是管理员发的,而不是其他什么乱七八糟的东西。那些人又给出一个一眼看不懂的概念叫“签名”。私钥加密信息,把它称为签名,我们看了这个签名,就知道是管理员本人写的的。