JAVA 面试题(四)
JAVA 面试题
JAVA 面试题(二)
JAVA 面试题(三)
Java-面试-逻辑题
Java-面试-逻辑题(二)
HTTP与HTTPS区别
1.HTTP 在地址栏上的协议是以 http:// 开头,而 HTTPS 在地址栏上的协议是以 https:// 开头;
2.HTTP 是未经安全加密的协议,它的传输过程容易被攻击者监听、数据容易被窃取、发送方和接收方容易被伪造;而 HTTPS 是安全的协议,它通过 密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法 能够解决上面这些问题;
3.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全;
4.HTTP 的默认端口是 80,而 HTTPS 的默认端口是 443;
5.https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
TCP与UDP区别
1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接;
2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;
Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3.UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信;
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
5.TCP对系统资源要求较多,UDP对系统资源要求较少。
请简述TCP建立连接的三次握手过程
1.第一次握手:Client将标志位SYN((同步序列编号(Synchronize Sequence Numbers))置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
2.第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
3.第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
Node.js是什么?应用场景
Node.js 是一个能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境。常用于数据密集的即时应用程序。
Node.js 特点
1.Node.js是一个 JavaScript 运行环境,依赖于 Chrome V8 引擎进行代码解释。
2.事件驱动:在 Node 中,客户端请求建立连接,提交数据等行为,会触发相应的事件。在 Node 中,在一个时
刻,只能执行一个事件回调函数,但是在执行一个事件回调函数的中途,可以转而处理其他事件,然后返回继
续执行原事件的回调函数。
3.非阻塞 I/O:Node.js 中采用了非阻塞型 I/O 机制,在执行了访问数据库的代码之后,将立即转而执行其后
面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。
4.轻量可伸缩,适用于实时数据交互应用。
5.单线程:好处是减少内存开销,不用像多线程编程那样处处在意状态同步的问题。
缺点是错误会引起整个应用退出。
Nodejs应用场景
NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景
实际案例
1.RESTful API;URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。
2.统一Web应用的UI层
3.Ajax请求的应用;个性化应用,每个用户看到的页面都不一样,缓存失效,需要在页面加载的时候发起Ajax请求,NodeJS能响应大量的并发请求。
4.Web开发;聊天室,博客系统,考试系统等
编写一个函数随机获取三位数,输出个十百位
代码实现
static void C() {
int i = (int)(Math.random()*900)+100;
int a = i/100;
int b = i/10%10;
int c = i%100%10;
System.out.println("随机获取的三位数 : "+i);
System.out.println("百位: "+a+" 十位:"+b+" 个位: "+c);
}
测试结果