TCP和UDP区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
Spring常用注解
-
控制反转
@Component,标注为一个普通的bean @Service,@Repository
-
依赖注入
@Autowired @Qulifier @Resource @Value
-
全局
@Configuration,代替配置文件,相当于beans @ComponentScan,配置扫描包 @Scope,配置bean的生命周期
Spring MVC常用注解
-
@Controller,使用它标记的类就是一个SpringMVC Controller 对象
-
@RequestMapping,处理请求映射地址
-
@PathVariable,用于对应restful风格url中的参数
@RequestMapping(value="/happy/{dayid}") findPet(@PathVariable String dayid)
-
@RequestParam,将请求的参数绑定到方法中的参数上
@RequestParam(value = "name", required = false) String name
-
@ResponseBody,将返回类型直接输入到http response body中
-
@RequestBody,方法参数直接被绑定到http request body中
-
@ModelAttribute和@SessionAttributes,用来传递和保存数据,有很多的坑,不建议使用
SSM优缺点
一、spring的优点:
A、通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。
B、通过Spring的AOP特性,很容易实现事务,日志,权限的控制。
C、提供了对其他优秀开源框架的集成支持。
二、SpringMVC的优点
A、springMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使得我们开发更简洁。
B、与Spring无缝衔接。
C、灵活的数据验证,格式化,数据绑定机制。
三、mybatis的优缺点:
优点:
a、sql写在xml文件中,便于统一管理和优化,解除sql和程序代码的耦合。
b、提供映射标签,支持对象和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建
c、提供xml标签,支持编写动态sql。
缺点:
a、工作量较大,特别是在表的字段多,关联表多的情况下
b、sql语句的编写依赖于数据库,移植性差。
c、不支持级联删除,级联更新,需要自己对表进行删除。
进程和线程
简而言之,进程是操作系统程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高。线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位。同一进程中的多个线程之间可以并发执行。
并行和并发
并行:是指同一时刻多个任务同时在运行,是真意义上的同时运行。
并发:是指多个任务交替使用CPU,从这个时间段上看似乎这些任务在同时运行,但实际上在某一时刻只有一个任务在运行。