作为Java程序员需要掌握哪些知识

知识点一:
1、 数据库的锁有哪几种?
锁的类型有三种:
1)共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
2)排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
3)更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。
2、数据库的事务隔离级别有几种?
事务隔离级别有四种
1)读未提交
2)不可重复读
3)可重复读
4)串行化
———————————— 扩充———————————
事物的基本要素
1、原子性:事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。
2、一致性:事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。
3、隔离性:同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。
4、持久性:事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。
————————————————————————————————————————
3、 悲欢锁和乐观锁,分别用在什么场景?
悲观锁(Pessimistic Lock):
每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。

乐观锁(Optimistic Lock):
每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改,则不进行数据更新,如果数据没有被其他线程修改,则进行数据更新。由于数据没有进行加锁,期间该数据可以被其他线程进行读写操作。
适用场景:

悲观锁:比较适合写入操作比较频繁的场景,如果出现大量的读取操作,每次读取的时候都会进行加锁,这样会增加大量的锁的开销,降低了系统的吞吐量。

乐观锁:比较适合读取操作比较频繁的场景,如果出现大量的写入操作,数据发生冲突的可能性就会增大,为了保证数据的一致性,应用层需要不断的重新获取数据,这样会增加大量的查询操作,降低了系统的吞吐量。

——————————————————————————————————————
知识点二
1、cookie和session的区别
1)cookie数据存放在客户端的浏览器上,session数据存放在服务器上
2)cookie不是很安全
3)session会在一定时间内保存在服务器上。访问增多时会比较占用服务器的性能
PS:小小建议
将登陆等重要信息存放在session中
其他信息如果需要保留可以放在cookie中
2、HTTPS和HTTP的区别是什么?
1)https协议需要一定的费用
2)HTTP是超文本传输协议,信息是明文传输,而HTTPS则具有安全性的加密传输
3)HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
4)HTTP的连接很简单,是无状态的。HTTPS是由SSL和HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP安全

          ————————————————未完待续,下章见————————————————-
                                                                                                                     ps:如有雷同,请联系我

猜你喜欢

转载自blog.csdn.net/Ccccyxji/article/details/82830191