面试小问题总结
王旭辉.
一个想学习的咸鱼
展开
-
mybatis的源码流程图
今天我主要来对Mybatis的底层源码进行分析,主要是以下4行代码: InputStream is=Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(is);SqlSession session = sqlSessionFactory.openSession();UserMapper ma.原创 2020-08-05 21:28:12 · 437 阅读 · 0 评论 -
每周小知识——行级锁 表级锁 乐观锁 悲观锁
MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别。表级锁:表级别的锁定是MySQL各存储引擎中最大颗粒度的锁定机制。该锁定机制最大的特点是实现逻辑非常简单,带来的系统负面影响最小。所以获取锁和释放锁的速度很快。由于表级锁一次会将整个表锁定,所以可以很好的避免困扰我们的死锁问题。当然,锁定颗粒度大所带来最大的负面..原创 2020-07-21 22:51:43 · 311 阅读 · 0 评论 -
封装和面向对象
封装:在面向对象的设计方法中,封装是指将一些抽象式的函数接口的实现细节部分包装起来的方法,在降低代码内部的耦合性的同时保护该类的代码和数据被外界随机访问。我们可以对成员变量进行更精确的控制,对类的内部结构可以进行自由的修改。面向对象:①面向对象是一种编程思想,在面向对象这种编程思想出现以前,主流的是以c为首的面向过程的语言,它更多的是按照计算机处理事务的思想来编写代码,被称为函数,这种编程思想对我们人类来说太复杂,不符合我们人类的思考方式,因此面向对象的编程思想孕育而生。②万物皆为对象,只要原创 2020-07-15 00:43:55 · 132 阅读 · 0 评论 -
每周小知识——Statement和PreparedStatement的区别
Statement和PreparedStatement的区别:1.PreparedStatement对象对SQL语句做了预处理,能防止SQL注入的问题,而Statement对象直接使用用户输入的SQL语句,可能会发生SQL注入的问题,在安全性上前者更好.2.如果带有不同参数的同一SQL语句被多次执行的时候,PreparedStatement对象比Statement对象更有效。3.PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性和可维护原创 2020-07-15 00:37:46 · 514 阅读 · 0 评论 -
简略了解SQL查询语句关键字的执行顺序
SQL查询语句的关键字执行顺序(从左到右优先级越低)from where group by having select order byFROM:将数据插入内存WHERE :用where过滤器对数据进行过滤,将满足条件的留下GROUP BY : 会将刚刚的结果的临时表进行切分成若干个临时表HAVING:对结果进行过滤,形成一张新表。ORDER BY:对数据进行排序select:查询...原创 2020-07-15 00:35:00 · 283 阅读 · 0 评论 -
抽象类能创建对象吗?
什么是抽象类呢?在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类是不能创建对象的原因:1.子类更具体,父类更抽象,直接创建父类对象本身没有意义。2.如果创建的是父类对象再调用方法的时候,调用的父类中的方法,而非子类的方法,它违背了多态的这种思想和设计3.因为父类引用指向子类对象时,调用的方法是子类重写的方法,一般父类中的描述不够具体,并不是说抽象类的构造方法没有意.原创 2020-07-15 00:27:20 · 8145 阅读 · 0 评论