Java面试真题精讲
文章平均质量分 87
师范大学通信大怨总
偏远地区普通双非师范大学通信工程专业本科大怨总!秋招春招屡屡碰壁,多重Debuff叠加,为了防止毕业即失业,努力自救中!!
展开
-
浅谈师范普本工科专业的秋招历程
又或者我面试的银行岗位,面试官是留洋回来的,面试的几位同学除了我一个人是师范类院校的本科剩下的也基本是武大、重邮、西电、南京大学、电子科大、墨尔本大学、悉尼大学的本科生甚至研究生,他们的专业知识储备非常深,而且口语也很是流利,面试官叫我们自我介绍都是英文自我介绍,有的还是全程英文交流,他们一口流利的英文让我感到人和人的差别之大,深感无奈,索性沉默下来,把自己当作一名过客,笑看各位神仙竞争。,大家不要光等学校发出来的,要自己多去了解,牛客上,还有一些招聘软件上是有很多岗位信息的,及时投递,原创 2023-12-25 20:05:40 · 2699 阅读 · 0 评论 -
SSM 高级面试题
Spring Boot 特点有哪些?参考答案 Spring Boot 的特点: (1)快速开发 Spring 应用的框架 (2)内嵌 Tomcat 和 Jetty 容器,不需要单独安装容器,jar 包直接发布一个 Web 应用 (3)简化 Maven 配置,继承父工程这种方式,一站式引入需要的各种依赖 (4)基于注解的零配置思想 (5)和各种流行框架 Spring MVC、Mybatis、Spring Cloud 无缝整合原创 2024-01-11 10:15:00 · 911 阅读 · 0 评论 -
SSM 高级知识点
AOP (Aspect Orient Programming), 直译过来就是面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。 "横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。原创 2024-01-11 08:15:00 · 1185 阅读 · 0 评论 -
SSM 基础面试题
参考答案1、MyBatis 是一个半自动 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 SQL,可以严格控制 SQL 执行性能,灵活度高。2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。原创 2024-01-10 12:00:00 · 519 阅读 · 0 评论 -
SSM 基础知识点
Maven 是基于项目对象模型 (POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 是跨平台的项目管理工具。主要服务于基于 Java 平台的项目构建,依赖管理和项目信息管理。Maven 主要有两个功能:项目构建,依赖管理。原创 2024-01-10 08:15:00 · 1084 阅读 · 0 评论 -
SQL 高级面试题
参考答案数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。参考答案在 MySQL 中,为了提高数据库的性能,MySQL 采用了 WAL(Write-Ahead Logging)机制,即客户端在修改数据的过程后,并不会立马对硬盘中的数据进行更新。参考答案数据库只做两件事情:存储数据、检索数据。原创 2024-01-09 12:00:00 · 584 阅读 · 0 评论 -
SQL / MySQL 高级知识点
数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。 在数据库系统上执行并发操作时,事务是作为最小的控制单元来使用的,特别适用于多用户同时操作的数据库系统。例如,订票系统、银行、电商以及证券交易系统等。 数据库只做两件事情:存储数据、检索数据。而索引。原创 2024-01-09 12:00:00 · 1016 阅读 · 0 评论 -
SQL 基础面试题
事务和隔离级别详解及实际应用事务是对数据库中一系列操作进行统一的回滚或者提交的操作,主要用来保证数据的完整性和一致性。原创 2024-01-08 12:00:00 · 1071 阅读 · 1 评论 -
SQL 基础知识点
不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立时,空间就固定了, 不管是否插入值(NULL 也包含在内),都是占用 100 个字符的空间的,如果是 varchar 这样的变长字段, null 不占用空间。在 MySQL 中,执行 from 后的表关联查询是从左往右执行的(Oracle 相反),第一张表会涉及到全表扫描,所以将小表放在前面,先扫小表,扫描快效率较高,在扫描后面的大表,或许只扫描大表的前 100 行就符合返回条件并 return 了。原创 2024-01-08 12:00:00 · 1060 阅读 · 1 评论 -
多线程高级面试题
参考答案ThreadLocal 叫做本地线程变量,意思是说,ThreadLocal 中填充的的是当前线程的变量,该变量对其他线程而言是封闭且隔离的,ThreadLocal 为变量在每个线程中创建了一个副本,这样每个线程都可以访问自己内部的副本变量。参考答案悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。原创 2024-01-07 09:15:00 · 1597 阅读 · 0 评论 -
多线程高级知识点
ThreadLocal叫做本地线程变量,意思是说,ThreadLocal中填充的的是当前线程的变量,该变量对其他线程而言是封闭且隔离的,ThreadLocal为变量在每个线程中创建了一个副本,这样每个线程都可以访问自己内部的副本变量。原创 2024-01-07 11:00:00 · 879 阅读 · 0 评论 -
多线程基础面试题
线程是处理器任务调度和执行的基本单位,进程是操作系统资源分配的基本单位。进程是程序的一次执行过程,是系统运行的基本单位。线程是一个比进程更小的执行单位,一个进程可以包含多个线程。参考答案并发:指应用能够交替执行不同的任务。并行:指应用能够同时执行不同的任务。两者区别:并发是交替执行,并行是同时执行。原创 2024-01-06 12:00:00 · 367 阅读 · 0 评论 -
多线程基础知识点
任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态,等待下一个属于它的时间片的到来。多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放,而该资源又被其他线程锁定,从而导致每一个线程都得等其它线程释放其锁定的资源,造成了所有线程都无法正常结束。一个正在执行中的程序就是一个进程,系统会为这个进程发配独立的【内存资源】。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。原创 2024-01-06 12:00:00 · 958 阅读 · 0 评论 -
Java IO 流面试题
参考答案序列化就是一种用来处理对象流的机制,将对象的内容进行流化。可以对流化后的对象进行读写操作,可以将流化后的对象传输于网络之间。序列化是为了解决在对象流读写操作时所引发的问题。原创 2024-01-05 12:00:00 · 425 阅读 · 0 评论 -
Java IO知识点
流(Stream),是一个抽象的概念,是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通道。当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中 “流” 动一样。原创 2024-01-05 12:00:00 · 827 阅读 · 0 评论 -
计算机网络面试题(常考)
第二次握手:服务端在收到客户端发来的报文后,会随机生成一个服务端的起始序列号 y,然后给客户端回复一段报文,其中包括标志位 SYN=1,ACK=1,序列号 seq=y,确认号 ack=x+1。第三次握手:客户端收到服务端发来的报文后,会再向服务端发送报文,其中包含标志位 ACK=1,序列号 seq=x+1,确认号 ack=y+1。第四次挥手:客户端收到服务端发送的释放连接请求,向服务端发送确认报文,包含标志位 ACK=1,序列号 seq=u+1,确认号 ack=w+1。POST 请求一般是去提交数据。原创 2024-01-04 13:10:32 · 503 阅读 · 0 评论 -
计算机网络知识点
此时服务端的状态为 LISTEN 第二次握手:服务端在收到客户端发来的报文后,会随机生成一个服务端的起始序列号 y,然后给客户端回复一段报文,其中包括标志位 SYN=1,ACK=1,序列号 seq=y,确认号 ack=x+1。因为 URL 继承了所有 URI 的内容,所以它比 URI 更加详细,但是 URI 是它的父级。超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于 TCP/IP 协议传输数据,互联网上应用最为广泛的一种网络协议,所有的 WWW 文件都必须遵守这个标准。原创 2024-01-04 13:09:00 · 1695 阅读 · 0 评论 -
异常、反射、注解知识点
除了 JDK 定义好的异常类外,在开发过程中根据业务的异常情况自定义异常类。自定义异常步骤:继承某 Exception 类构造方法(可选)/*** 自定义异常类* 用户不存在异常信息类*/super();可以做到在不修改目标对象的功能前提下,对目标功能扩展。 2. 缺点:因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类。同时,一旦接口增加方法,目标对象与代理对象都要维护。如何解决静态代理中的缺点呢?答案是可以使用动态代理方式。原创 2024-01-03 15:37:49 · 1036 阅读 · 0 评论 -
往年面试精选题目(前50道)
先将本地修改的代码缓存起来,git stash,然后是git pull,然后还原暂存的内容git stash pop,git status查看哪些文件冲突了,就vim打开冲突的文件,把文件里面的冲突标识符删掉,然后再git add,git commit即可。2、StringBuilder和StringBuffer类型的字符串是可变的,不同的是StringBuffer类型的是线程安全的,而StringBuilder不是线程安全的。通过反射,代码可以在运行时获取类的信息,创建实例,调用方法和访问字段。原创 2023-12-25 20:18:23 · 1097 阅读 · 0 评论 -
集合高级面试题
参考答案对于 HashMap 来说,完整的表述应该是:**当链表长度为 8 时会链表转树,长度为 6 时会树转链表。** 这里可以看到中间存在一个差值,这么设计是为了防止链表和树之间频繁的转换。假如只把转化的长度限制为 8 的话,那么一个 HashMap 如果不停的插入或删除数据,并且链表长度恰巧在 8 左右徘徊,这时就会不停的树转链表,链表转树,效率很低。为什么链表长度为 8 时会实现链表转树呢?原创 2023-12-30 17:10:26 · 409 阅读 · 0 评论 -
集合高级知识点
HashMap 文档有这么一段描述。大体意思是,哈希桶上的链表节点数量呈现泊松分布。什么是泊松分布?泊松分布就是描述某段时间内,事件具体的发生概率。柏松分布可以通过平均数估算出某个事件的出现概率。公式如下,此处对泊松分布不做详解,有兴趣的同学自行百度。HashMap 默认负载因子为 0.75,所以每个桶的平均节点数量 0.5,代入柏松公式得到下面数据。原创 2024-01-02 19:44:48 · 973 阅读 · 0 评论 -
集合基础面试题
Set 里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象 ,即假设 Set 集合中有了一个 A 对象,现在我要向 Set 集合再存入一个 B 对象,但 B 对象与 A 对象 equals 相等,则 B 对象存储不进去,所以,Set 集合的 add 方法有一个 boolean 的返回值,当集合中没有某个元素,此时 add 方法可成功加入该元素时,则返回 true,当集合含有与某个元素 equals 相等的元素时,此时 add 方法无法加入该元素,返回结果为 false。原创 2024-01-02 19:30:00 · 311 阅读 · 0 评论 -
集合基础知识点
Collection 的作用就是规定了一个集合有哪些基本的操作。int size() 获取元素个数boolean isEmpty() 是否个数为零boolean contains(Object element) 是否包含指定元素boolean add(E element) 添加元素,成功时返回 trueboolean remove(Object element) 删除元素,成功时返回 trueIterator iterator() 获取迭代器。原创 2023-12-30 17:06:32 · 1102 阅读 · 0 评论 -
面向对象面试题
参考答案不同:1. 抽象类中可以定义构造器,接口中不可以。2. 抽象类可以有抽象方法和具体方法,接口中只可以有抽象方法。3. 抽象类中的成员可以是 private、默认、protected、public,接口中的成员全都是 public 的 (1.9 后可以有私有方法)4. 抽象类中可以定义成员变量,接口中定义的成员变量实际上都是常量。5. 有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法6. 抽象类中可以包含静态方法,接口中不能有静态方法(从 1.8 开始可以有)。原创 2024-01-01 19:00:00 · 980 阅读 · 0 评论 -
面向对象知识点
this. 属性名:大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用 this 前缀。super. 方法名:如果子类重写了父类的某一个方法,即子类和父类有相同的方法定义,但是有不同的方法体,此时,我们可以通过 super 来调用父类里面的这个方法。深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,两个引用对象指向两个对象,但对象内容相同。原创 2024-01-01 19:00:00 · 985 阅读 · 0 评论