java基础面试题
大步向前1998
人生如逆旅,我亦是行人。
展开
-
面向对象的三大特征
(1)封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。 (2)继承(Inheritance) 继承是指转载 2021-07-25 15:47:30 · 83 阅读 · 0 评论 -
面向对象和面向过程
(1)面向过程:亲力亲为,注重操作步骤,操作步骤不能错,一旦错了,就有可能产生不可想象的后果 举例:番茄炒鸡蛋 a)有可能步骤不对 b)做完了不好吃 (2)面向对象:找参与者,想办法让"别人"干活 外卖App 点餐--》等--》吃--》好评 二者相辅相成:大方向上使用面向对象找参与者,细节处理上使用面向过程 ...原创 2021-07-25 11:12:36 · 58 阅读 · 0 评论 -
乐观锁和悲观锁
乐观锁,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据。乐观锁适用于多读的应用类型,这样可以提高吞吐量。 悲观锁,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。 ...原创 2021-07-25 10:32:09 · 53 阅读 · 0 评论 -
你是如何使用public、private、protected、default这些访问修饰符的
private:本类可见 default(package) :本包可见,即默认形式(本包中的子类非子类均可访问,不同包中的类及子类均不能访问) protected :本包和所有子类都可见(本包中的子类非子类均可访问,不同包中的子类可以访问,不是子类不能访问) public:所有类可见 ...原创 2021-07-25 10:14:04 · 149 阅读 · 0 评论 -
MyBatis中#{}和${}的区别是什么?
1、#{}是预编译处理,${}是字符串替换。 2、MyBatis在处理#{}时,会将SQL中的#{}替换为"?"号,使用PreparedStatement的set方法来赋值;MyBatis在处理${}时,就会把${}替换为变量的值。 3、使用#{}可以有效的防止SQL注入,提高系统安全性。 ...原创 2021-07-25 10:03:40 · 88 阅读 · 0 评论 -
线程安全和非线程安全的集合对象
线程安全的集合对象:Vector、HashTable、StringBuffer 非线程安全的集合对象:ArrayList、LinkedList、HashSet、HashMap、TreeSet、TreeMap、StringBuilder原创 2021-07-25 09:53:26 · 237 阅读 · 0 评论 -
== 和 equlas的区别和联系
== 和 equlas的区别和联系 1)对于"=="比较的值是否相等,如果是基本数据类型比较的是值是否相等,如果是引用数据类型,则比较的是所指向对象的地址。 2)equals()方法不能作用于基本数据类型的变量,equals继承object类,比较的是是否是同一个对象,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向对象的地址; 诸如String、Date等类对equals方法进行了重写的话,比较的所指向对象的内容。 ...原创 2021-07-25 09:44:23 · 146 阅读 · 0 评论