1116中信笔试
- [int, Integer的区别,相等如何判断结果](#int, Integer的区别,相等如何判断结果)
- Java的异常处理
- 数据库的事务操作
- Redis的基本数据类型
- 问了HashMap底层实现
- TCP协议
- MySQL的隔离级别
- 创建线程的几种方式
- [双亲委派机制 ,它的优点](#双亲委派机制 ,它的优点)
- [linux命令(查看线程) java和数据库](#linux命令(查看线程) java和数据库)
- hashmap安全吗?不安全的话哪个map安全?
- String是基本数据类型吗
- ==和equals的区别
- &&和&的区别
- 技术问了ArrayList和LinkedList的区别
- Cookie和Session的区别
- [StringBuffer StringBuilder的区别](#StringBuffer StringBuilder的区别)
- .where和having的区别
- 没有处理过线上内存泄漏
- 面向对象是什么,以及三大特征
- 如何声明一个不被继承的类
- 哈希和equals的区别
- 抽象类和接口的区别
- 常见的异常,如何捕捉异常
- 数据库事务,特点,应用场景
- maven如何使用
- sql的聚合函数,如何查连续登陆三天的的用户
int, Integer的区别,相等如何判断结果
nt是Java中的一种基本数据类型,用于表示整数。而Integer是int的封装类,它可以为null。int类型的数据直接存储在内存中的栈中,而Integer类型的数据则存储在堆中的对象中。
- 在比较两个基本类型的值时,可以使用"=="和"!="运算符。
- 在比较两个包装类型的值时,不能使用"=="和"!="运算符,而是应该使用equals()方法来比较它们的值是否相等
Java是一种面向对象编程语言,面向对象是一种思想,它要求数据都应该是对象,我们可以使用包装类提供的各种方法,对数据进行操作,如数值转换、比较等。
Java的异常处理
数据库的事务操作
Redis的基本数据类型
问了HashMap底层实现
HashMap 通过 key 的 hashcode 经过扰动函数处理过后得到 hash 值,然后通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。
当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。
TCP协议
传输控制协议 (TCP)是面向连接的、可靠的流协议
# 七层模型,http和https的区别
MySQL的隔离级别
创建线程的几种方式
双亲委派机制 ,它的优点
linux命令(查看线程) java和数据库
hashmap安全吗?不安全的话哪个map安全?
HashTable是线程安全的,HashMap是线程非安全的.在多线程的情况下, HashMap会出现死循环的情况.
String是基本数据类型吗
而 String 类型属于引用类型,它表示一系列字符组成的字符串
==和equals的区别
类重写了 equals()方法:一般我们都重写 equals()方法来比较两个对象中的属性是否相等;若它们的属性相等,则返回 true(即,认为这两个对象相等)。
String 类中使用 final 关键字修饰字符数组来保存字符串
![在这里插入图片描述](https://img-blog.csdnimg.cn/0e68a36f168047248b2ceb01d1e1e963.png
&&和&的区别
&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。
技术问了ArrayList和LinkedList的区别
ArrayList 和 LinkedList 是 List 接口的两种不同实现,并且两者都不是线程安全的。
ArrayList 是基于动态数组实现的,LinkedList 是基于双向链表实现的。这是最本质的区别。
LinkedList 在插入、添加、删除元素的时候有没有比 ArrayList 更快,
ArrayList随机访问一个元素的时间复杂度为 O(1),
Cookie和Session的区别
StringBuffer StringBuilder的区别
AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,
StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。
.where和having的区别
三者的执行顺序为where>group by>having。
having可以和count、sum、avg、max、min等聚合函数一起使用,而where则不能,否则会报错。
没有处理过线上内存泄漏
面向对象是什么,以及三大特征
面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。
封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。
多态:表示一个对象具有多种的状态,具体表现为父类的引用指向子类的实例。
如果子类重写了父类的方法,真正执行的是子类覆盖的方法,如果子类没有覆盖父类的方法,执行的是父类的方法。
如何声明一个不被继承的类
如果一个类被 final 修饰,那么这个类就不可以被继承。如果一个类中的所有方法都没有重写的需要,当前类可以没有子类,那么就可以使用 final 修饰类。
哈希和equals的区别
hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。
通过一种算法得到一个对象的hash码,这个hash码是用来确定该对象在哈希表中具体的存储区域的
般在重写equals()方法的时候,是要对两个对象进行比较的。如果两个对象相等的话,hashCode值必须相等,equals()方法判断两个对象也是相等的。