标签:试题 异常 run 总结 neu 不能被继承 vertica ddd start
事务的ACID是指什么原子性(Atomic):事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败;
一致性(Consistent):事务结束后系统状态是一致的;持久性(Durable):事务完成后所做的改动都会被持久化,即使发生灾难性的失败。通过日志和同步备份可以在故障发生后重建数据。
抽象类和接口的区别
a.一个类只能继承单个类,但是可以实现多个接口
b.抽象类中可以有构造方法,接口中不能有构造方法
c.抽象类中的所有方法并不一定要是抽象的,你可以选择在抽象类中实现一些基本的方法。而接口要求所有的方法都必须是抽象的
d.抽象类中可以包含静态方法,接口中不可以
e.抽象类中可以有普通成员变量,接口中不可以
访问修饰符public,private,protected,以及不写(默认)时的区别?
修饰符 | 当前类 | 同 包 | 子 类 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
String和StringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。
而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高
Java 中的final关键字有哪些用法?
(1)修饰类:表示该类不能被继承
(2)修饰方法:表示方法不能被重写
(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)
阐述final、finally、finalize的区别
- final:修饰符(关键字)有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词。将变量声明为final,可以保证它们在使用中不被改变,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。被声明为final的方法也同样只能使用,不能在子类中被重写。启动一个线程是调用run()还是start()方法?
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM 调度并执行,这并不意味着线程就会立即运行。run()方法是线程启动后要进行回调(callback)的方法。
简述synchronized 和java.util.concurrent.locks.Lock的异同
Lock是Java 5以后引入的新的API,和关键字synchronized相比
主要相同点:Lock 能完成synchronized所实现的所有功能;
主要不同点:Lock有比synchronized更精确的线程语义和更好的性能,而且不强制性的要求一定要获得锁。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且最好在finally 块中释放(这是释放外部资源的最好的地方)
标签:试题 异常 run 总结 neu 不能被继承 vertica ddd start
原文地址:https://www.cnblogs.com/zengnansheng/p/10522103.html