其他-面试2

<span id="wtl-1-1"></span><span id="wtl-2-1"></span><span id="wtl-3-1"></span><span id="wtl-4-1"></span><span id="wtl-5-1"></span> ## 其他-ms - [MyBatis 中 ${}和 #{}](#wtl-1) - [session 和 cookie 有什么区别?](#wtl-2) - [简述 tcp 和 udp的区别?](#wtl-3) - [BIO、NIO、AIO 有什么区别](#wtl-4) - [get 和 post 请求有哪些区别?](#wtl-5) <span id="wtl-ms2-1"></span> ## 概念 - [线程和进程](#wtl-04011) --- --- --- --- --- <span id="wtl-04011">开始-------------------------------------</span> ==线程和进程== - 启动一个程序,就是运行一个进程,进程有自己独立的CPU和内存空间。一个进程默认包含一个主线程,负责调度,也可以启动多个子线程完成耗时任务。多个子线程共享CPU和内存资源。 [--------------------------结束](#wtl-ms2-1) <span id="wtl-5">开始-------------------------------------</span> - GET参数通过URL传递,POST放在Request body中。 - GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。 - GET请求在URL中传送的参数是有长度限制的,而POST么有。 - GET请求只能进行url编码,而POST支持多种编码方式。 - GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 - GET在浏览器回退时是无害的,而POST会再次提交请求。 - GET产生的URL地址可以被Bookmark,而POST不可以。 - GET请求会被浏览器主动cache,而POST不会,除非手动设置。 - 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。 [--------------------------结束](#wtl-5-1) <span id="wtl-3">开始-------------------------------------</span> TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。 Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。 UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。 TCP对系统资源要求较多,UDP对系统资源要求较少。 [--------------------------结束](#wtl-3-1) <span id="wtl-4">开始-------------------------------------</span> - BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。 - NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。 - AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。 [--------------------------结束](#wtl-4-1) <span id="wtl-2">开始-------------------------------------</span> - Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中; - Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。 [--------------------------结束](#wtl-2-1) <span id="wtl-1">开始-------------------------------------</span> - #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号 - $将传入的数据直接显示生成在sql中 - #方式能够很大程度防止sql注入 - $方式无法防止Sql注入。 - $方式一般用于传入数据库对象,例如传入表名. - 一般能用#的就别用$. [--------------------------结束](#wtl-1-1) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1