目录
1.Java基本数据类型有哪些?分别占多少个字节?表示的范围是多少?
1.Java基本数据类型有哪些?分别占多少个字节?表示的范围是多少?
2.int和flout谁表示的范围更大?为什么?
实际上,二者是无法比较大小的,因为它们所能表示的数据范围是不同的。
int类型的范围9-10位数,flout类型的范围是6-7位数,从这个角度来说,int较大。
但是另外一方面来说,flout可以存储浮点数,从这个角度来说,flout更大。
3.flout是如何存储小数的?
一个flout是四个字节,也就是32位,可以分为1个符号位,8个指数部分,23个尾数部分。其中,符号位占用 1 位二进制数,用于表示数字的正负;指数部分占用 8 位二进制数,用于表示数值大小的范围,使用 2 的补码表示法;尾数部分占用 23 位二进制数,用于表示数值的有效位数。
4.http和https的区别?
安全性
- HTTP 是一种明文传输协议,传输的数据容易被黑客截获或窃听,存在安全风险。
- HTTPS 利用 SSL 或 TLS 协议对数据进行加密和认证,保证了数据传输的安全性。
网站证书
- HTTP 协议不需要网站使用证书,任何人都可以创建一个 HTTP 网站。
- HTTPS 网站需要有数字证书,证书会验证网站的身份和可信性,只有合法网站才能使用 HTTPS。
端口号
- HTTP 协议使用的端口号是 80。
- HTTPS 协议使用的端口号是 443。
连接速度
- 由于 HTTPS 需要对数据进行加密和认证,相比 HTTP,连接速度会慢一些。
缓存
- HTTP 协议可能会被 ISP 或者浏览器进行缓存。
- HTTPS 协议的内容不会被缓存,因为每次请求的都是加密的内容,无法利用缓存提高请求速度。
使用场景
- HTTP 主要用于传输一些非敏感数据,比如一些普通网页、文件下载等。
- HTTPS 主要用于传输敏感数据,比如在线支付、网上银行、电子邮件等。
5.简单说一下TCP协议的三次握手?
-
第一次握手:客户端发送 SYN 包(同步序列编号)到服务器,并随机生成一个初始序列号 ISN(Initial Sequence Number),表示包的第一个字节的编号。此时,客户端状态为“SYN_SENT”。
-
第二次握手:服务器收到客户端的 SYN 包之后,回复 ACK 包(确认应答),并发送 SYN 包给客户端,并为这个新的连接分配一个新的 ISN。此时,服务器状态为“SYN_RECEIVED”。
-
第三次握手:客户端收到服务器的 SYN 包和 ACK 包之后,向服务器发送确认 ACK 包,代表客户端已经准备好接收数据。此时,建立连接成功,客户端状态为“ESTABLISHED”,服务端状态也为“ESTABLISHED”。
通过三次握手握手过程,客户端和服务器已经确定了彼此的接收和发送能力。为了确保数据的可靠传输,TCP 还使用“确认应答”和“序列号”机制来保证数据传输的可靠性。