摘要: 如何理解Java的平台无关性? 答:Java源码编译成Java字节码以后,再由不同平台的JVM进行解析,JVM把字节码转换成对应平台具体的机器指令。 阅读全文
posted @ 2019-02-16 22:43 余总出去浪 阅读(715) 评论(0) 推荐(0) 编辑
摘要: 如何使用Redis实现分布式锁? 答:使用Redis中的setnx指令,如果返回1,则表示加锁成功,那么我们的jvm线程则可以去操作共享资源。如果返回0,则表示此时有别的线程正在占用该共享资源,由于Redis是单线程的,所以同一时间只会有一个线程加锁成功。 那么接下来需要考虑一个问题,如果加锁成功, 阅读全文
posted @ 2019-02-16 21:53 余总出去浪 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 在Redis里,如何从海量key中查询出某一个固定前缀所有的key? 答:如果该机器是生产环境正在对外提供服务,不建议使用keys * pattern的方法进行查询,可能会使服务器卡顿,而出现事故。 一般生产服务器建议使用Scan命令,例如: SCAN 0 MATCH aaa* COUNT 5 表示 阅读全文
posted @ 2019-02-16 21:31 余总出去浪 阅读(10422) 评论(0) 推荐(0) 编辑
摘要: Redis有哪些常用数据类型? 答:String 一般用于存放键值对, Hash 一般用户存放对象, List 类似于双端链表, Set 无序集合, SortedSet 有序集合, 还有比较高级的数据类型,比如用于计数的HyperLogLog,用于存储地理位置的Geo 阅读全文
posted @ 2019-02-16 21:18 余总出去浪 阅读(437) 评论(0) 推荐(0) 编辑
摘要: Http和Https的区别有哪些? 答:1、Https比Http更加安全 2、Https需要去CA申请证书,Http不需要 3、Https密文传输,Http明文传输 4、Http默认使用80端口,Https默认使用443端口 阅读全文
posted @ 2019-02-16 21:02 余总出去浪 阅读(229) 评论(0) 推荐(0) 编辑
摘要: Https的传输流程是什么? 答:Https在与服务器进行数据交互之前,会与服务器进行一次通信(握手) 1、浏览器将自身支持的加密算法发送给服务端 2、服务端筛选出一套加密算法,以证书的形式发给浏览器 3、浏览器根验证证书的合法性,据拿到的证书里的公钥加密一串消息发给服务端 4、服务端使用私钥解密信 阅读全文
posted @ 2019-02-16 20:59 余总出去浪 阅读(570) 评论(0) 推荐(0) 编辑
摘要: Cookie和Session有什么区别? 答:Cookie是存放在客户端(浏览器),Session是保存在服务端。 Cookie的安全性不如Session Session如果过多,会对服务端产生较大的压力,不是特别重要的数据,可以考虑使用Cookie存放 阅读全文
posted @ 2019-02-16 20:36 余总出去浪 阅读(641) 评论(0) 推荐(0) 编辑
摘要: HTTP的状态码有哪些? 答:1XX 表示请求已经接受,继续处理 2XX 表示请求已经被成功处理 3XX 表示请求需要进一步的操作 4XX 表示客户端有异常 5XX 表示服务端异常 阅读全文
posted @ 2019-02-16 16:39 余总出去浪 阅读(137) 评论(0) 推荐(0) 编辑
摘要: TCP和UDP的区别是什么? 答:1、TCP是需要进行连接的,而UDP不需要 2、UDP无法保证数据是否会丢失,可靠性不如TCP 3、TCP的报文的数据包会被进行排序的,但是UDP是不具备有序性。 4、由于上述特性比较,TCP性能上会比UDP慢一些。UDP更适合在线视频,MMO游戏等 5、TCP元数 阅读全文
posted @ 2019-02-16 16:25 余总出去浪 阅读(161) 评论(0) 推荐(0) 编辑
摘要: get请求和post请求有什么区别 答:1、get比post更不安全 2、get传输的数据长度比post小 3、get通过在URL后拼接字符串的形式传递参数,post将参数放在RequestBody中 4、get产生一个TCP数据包;post产生两个TCP数据包。(get会把 httpheader 阅读全文
posted @ 2019-02-16 15:14 余总出去浪 阅读(974) 评论(0) 推荐(0) 编辑