基础5

基础5 --zlyl

Java

  1. 在java中如何保证多线程的运行安全?
    1) 使用安全类。比如Java.util.concurrent下的类
    2) 使用自动锁synchronized
    3) 使用手动锁Lock
    注意:最好不要把获取锁的过程写到try块中,因为如果在获取锁时发生了异常,异常抛出的同时也会导致锁无法被释放。
    因为Lock是接口所以使用时要结合它的实现类,另外在finall语句块中释放锁的目的是保证获取到锁之后,最终能够被释放。

注意: 最好不要把获取锁的过程写在try语句块中,因为

        Lock lock = new ReentrantLock();
        lock.lock();
        try{
            System.out.println("获得锁");
        }catch (Exception e){
            //TODO: handle exception
        }finally {
            System.out.println("释放锁");
            lock.unlock();
        }
  1. Java中的引用类型?(笔试)
  • 强引用:发生GC的时候不会被回收
  • 软引用:有用但不是必须的对象,在发生内存溢出之前会被回收
  • 弱引用:跟软引用很像,级别更低,有用但不是必须的对象,在下一次GC时会被回收。不管系统内存是否足够,当垃圾回收机制运行时,总会回收该对象所占用的内存。
  • 虚引用:(幽灵引用、幻影引用):类似于没有引用,无法通过虚引用获得对象,用PhantomReference实现虚引用,虚引用的用途是在GC时返回一个通知。

数据库

  1. 什么是事务?
    事务是由一步或者几步数据库操作序列组成的逻辑执行单元。这系列要么全部执行,要么全部放弃执行。
    事务具备4个特性(ACID):
    1)原子性(Atomicity):事务是应用中最小的执行单位,就如原子是自然界的最小颗粒,具有不可再分的特征一样,事务是应用中不可再分的最小逻辑执行体。
    2)一致性(Consistency):事务的执行结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库只包含事务成功提交的结果时,数据库就处于一致性状态。
    3)隔离性(Isolation) :各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务都是隔离的。也就是说,并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能互相影响。
    4)持续性(Durability):也为“持久性”,指事务一旦提交,对数据所做的任何改变都要记录到永久存储器中,通常是保存进物理数据库。

总结:
对好多知识点理解的不深入。
人生如此艰难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值