
Java面试
文章平均质量分 72
二木成林
这个作者很懒,什么都没留下…
展开
-
Java面试之Mybatis框架4——Mybatis的分页
概述MyBatis常见的分页有如下几种:使用RowBounds逻辑分页 在SQL语句中使用limit分页 使用自定义拦截器分页 使用PageHelper插件分页使用RowBounds逻辑分页Mybatis可以通过传递RowBounds对象,来进行数据库数据的分页操作,然而遗憾的是,该分页操作是对ResultSet结果集进行分页,也就是人们常说的逻辑分页,而非物理分页。所谓的物理分页是指在SQL语句中使用limit进行分页。先说如何使用RowBounds来完成分页操作:控制器类原创 2021-03-09 22:38:17 · 1006 阅读 · 0 评论 -
Java面试之Mybatis框架1——${}和#{}的区别
${}和#{}的区别#{}是预编译处理。MyBatis在处理#{}时会将sql语句中的#{}替换成?,调用PreparedStatement的set()方法来赋值。能有效防止SQL注入,提高安全性。 ${}是字符串替换。MyBatis在处理#{}时会将sql语句中的${}替换成变量的值,相当于直接拼接sql语句,可能发生SQL注入。从JDBC来看#{}看SQL语句中使用#{}运行项目后,查看打印的SQL信息,SSM如何配置SQL日志打印这里不说明,打印的日志如下:可以看到原创 2021-03-09 15:23:05 · 372 阅读 · 0 评论 -
Java面试之Java集合5——HashMap的底层实现
JDK1.8之前(下面以1.7为例)添加元素到HashMap集合中的put()方法源码如下: public V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(threshold); } if (key == null) return putForNullKey(value); int hash = ha原创 2021-02-08 22:00:43 · 272 阅读 · 2 评论 -
Java面试之Java集合4——HashMap和HashSet的区别以及HashSet是如何检查重复
HashMap和HashSet的区别HashSet底层是基于HashMap实现的。 HashMap HashSet 实现接口 实现了Map接口 实现了Set接口 存储的元素 存储键值对,即双列 仅存储对象,即单列 添加元素的方法 put(key, value) add(obj) hashCode的计算 HashMap使用键(key)来计算hashCode HashSet使用成员对象来计算hashCode值 重复值 .原创 2021-02-07 14:49:49 · 2801 阅读 · 0 评论 -
Java面试之Java集合3——HashMap和HashTable的区别
HashMap和HashTable的区别 HashMap HashTable 线程是否安全 线程不安全 线程安全 效率 因为线程不安全,所以性能相对更高 基本被淘汰,不要使用了 对null key和null value的支持 可以存储null的key和value,但只能有一个null作为键,可以有多个null为键值 不能存储带有null的key和value,否则抛出NullPointerException 初始容量大小和每次扩容大小 .原创 2021-02-05 22:56:20 · 263 阅读 · 2 评论 -
Java面试之Java集合2——ArrayList与LinkedList的区别
ArrayList与LinkedList的区别 ArrayList LinkedList 是否保证线程安全 不保证线程安全 不保证线程安全 底层数据结构 动态Object数组 双向链表(JDK1.7之前为循环链表,之后取消了循环) 优点 查找性能好,适用于查找元素,即支持快速随机访问 对插入或删除操作来说,性能更高 缺点 插入或删除一个元素需要移动大量元素,代价较高 查找元素不方便,要遍历整个链表,即不支持快速随机访问 扩.原创 2021-02-05 21:32:44 · 253 阅读 · 0 评论 -
Java面试之Java集合1——List、Set和Map的区别
List、Set和Map的区别 List Set Map 元素顺序 有序 无序 key无序、value无序 元素是否可重复 可重复 不可重复 key不可重复、value可重复 List注意:List中存储的元素有序,指的是读出的顺序与存入的顺序是一致的,这叫做有序。比如说List添加了元素1,3,2,那么循环遍历List读出的元素顺序也是1,3,2,而不是1,2,3,这才叫List的存储元素有序。public class De.原创 2021-02-03 23:12:48 · 289 阅读 · 1 评论 -
Java面试之Java基础9——==与equals
==与equals的区别 == equals 情况一 如果等号左右两侧是基本数据类型,则比较的是值是否相等。 如果类没有重写equals()方法,那么等价于"=="的情况,即比较两个对象的地址值是否相等。 情况二 如果等号左右两侧是引用数据类型(类对象),则比较的是两个对象的内存地址值是否相等。 如果类重写了equals()方法,那么比较的是两个类对象的内容是否相等。 ==概述:比较两个对象是否相等。class Person { pri.原创 2021-01-31 22:26:01 · 307 阅读 · 0 评论 -
Java面试之Java基础8——在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤
在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤,比如下面的代码:class Father { private String str; // 这个空构造方法有什么作用呢? Father(){ } public String getStr() { return str; } public void setStr(String str) { this.str = str; } void原创 2021-01-31 21:41:10 · 2538 阅读 · 1 评论 -
Java面试之Java基础7——(自动)装箱与(自动)拆箱
目录装箱拆箱自动装箱自动拆箱装箱、拆箱的深入了解装箱概念:即将基本类型转换为对应的包装类型。它们的对应关系如下:装箱的方法:/* 装箱:将基本类型的数据转换成包装类型,下面以Integer类为例: 构造方法: Integer(int value) 构造一个新的Integer对象,将基本类型int类型的值包装成Integer对象 Integer(String s) 构造一个新的Integer原创 2021-01-30 22:58:09 · 383 阅读 · 0 评论 -
Java面试之Java基础6——String、StringBuffer、StringBuilder的区别
String、StringBuffer、StringBuilder的区别 String StringBuilder StringBuffer 底层实现 private final char[] value(注:Java9之后,String类的实现使用byte数组,即private final byte[] value) private char[] value(注:Java9之后,StringBuilder类的实现使用byte数组,即private final byt.原创 2021-01-30 20:19:20 · 352 阅读 · 4 评论 -
Java面试之Java基础5——面向对象的三大特性之封装、继承和多态
面向对象编程有三大特性:封装、继承、多态。封装概念:就是对一个对象的属性或方法私有化,同时提供一些可以被外界访问属性的方法。封装属性class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = a原创 2021-01-29 21:29:12 · 532 阅读 · 0 评论 -
Java面试之Java基础4——重载与重写的区别
重载与重写的概念重载:同样一个方法可以根据输入参数列表的不同,做出不同的处理。普通方法和构造器方法都能够重载。方法重载:/** * 重载方法 */public class Print { public void print(String str) { System.out.println(str); } public void print(Integer i) { System.out.println(i); }原创 2021-01-29 20:19:05 · 531 阅读 · 0 评论 -
Java面试之Java基础3——字符型常量与字符串常量的区别
区别一:字符常量用单引号引起的一个字符,而字符串常量是双引号引起的多个字符。public class Demo { /* 字符常量: 1.数据类型是char,属于基本数据类型 2.使用单引号引用 3.只能是一个字符,如果是多个字符,会报编译错误:Too many characters in character literal 4.可以是中文字符 */ private原创 2021-01-29 14:53:30 · 2284 阅读 · 0 评论 -
Java面试之Java基础2——JVM、JRE和JDK
JVM、JRE和JDK的概念它们三个都是英语词汇的简称,所以知道那么的原来单词对理解它们的含义有帮助,也便于记忆。原创 2021-01-29 12:54:20 · 339 阅读 · 0 评论 -
Java面试之Java基础1——面向对象与面向过程的区别
面向过程与面向对象的概念面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。强调步骤。面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事儿。强调对象。面向过程与面向对象的比较面向过程 面向对象 性能相对来说更高 性能相对来说比面向过程低 但不易维护、不易复用、不易扩展 易维护、易扩展、易复用 因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资源,所以当性能是最重要的考量因素原创 2021-01-29 11:47:05 · 471 阅读 · 0 评论