牛客网面试题知识点记录-02

news2025/1/23 4:58:43

1.collection接口
在这里插入图片描述

2.在构造方法中调用方法A,若方法A被子类重写,则会先调用子类的方法A。举例如下题:
在这里插入图片描述
此时会输出null,调用顺序为:子类初始化,但是子类实现了Base,会先执行Base的构造方法,构造方法调用callName,callName被子类实现,先调用子类callName,子类callName中的变量baseName还没有被初始化(未赋值),故输出null。

3.java体系结构包含:java编程语言、java类文件格式、java API、JVM

4.匿名内部类不可以定义构造器:构造器需要与类名一致,匿名内部类没有类名,则没有构造器。

5.try中包含有return语句后,那么finally在return之前执行

6.引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用JVM来实现

7.ThreadLocal主要的作用是Thread的副本,限制数据共享,保证线程安全。其没有继承Thread和Runable类。

8.获取cookie的方式包括如下几种:getHeader(),getCookies()

9.static静态方法的补充:静态方法只在类加载时进入一次

10.java中不允许多继承,java中解决hash冲突的一般有:开放定址法、链地址法

11.Web容器会将http请求转换为HttpServletRequest对象

12.存在子类继承父类A,子类默认会调用父类的无参构造方法,也可以通过super调用父类的其他构造方法

13.LinkedBlockingQueue、ConcurrentQueue、PriorityQueue;前两个都不允许存储null值,都符合的FIFO(先进先出)原则,且都是安全队列。PriorityQueue是不安全的队列,且不允许存储null值,不遵循先进先出原则。

14.详细讲述一下servlet请求的过程
(1)web客户端想Servlet容器发起请求
(2)Servlet容器处理web客户端请求,创建一个HttpServletRequest对象,封装请求信息
(3)Servlet容器创建HttpServletResponse对象
(4)Servlet容器调用service方法,根据方法的类型来判断调用doget还是dopost,将HttpServletRequest和HttpServletResponse
(5)HttpServlet调用HttpServletRequest的相关方法,获取到HTTP请求信息
(6)HttpServlet调用HttpServletResponse的相关方法,生成响应数据
(7)Servlet容器将HttpServlet生成的响应数据发送给web客户端

15.题目讲解String
public static void main(String[] args) {
String a = new String(“myString”);
String b = “myString”;
String c = “my” + “String”;
String d = c;
System.out.print(a == b); //false
System.out.print(a == c); //false
System.out.print(b == c); //true
System.out.print(b == d); //true
}
原因在于:通过new出来的string对象分部在堆中,而b、c、d是常量,机制包含常量优化机制,对于c和d会优先去找常量池中是否存在对应数据,由于b已经存在于常量池,故c、d会指引到b的地址。还需要注意的是假设存在,String e = “helll”+a,则e存在堆中。

16.题目讲解<? extends ?>。
在这里插入图片描述
这里附上改题目下的讲解内容,因为篇幅的原因,自己就不多加总结了,只对上述的F选项进行讲解,List< object>表示的一个点,按照道理说应该是对的,仔细看F的描述是any list reference 所以这里的list表示的应该也是点,故点与点之间不可以相互赋值。
在这里插入图片描述

17.Math.ceil向上取整,Math.floor向下取整;传入参数为-0.5,前者为-0,后者为-1。

18.@SuppressWarnings(“deprecation”)的功能:屏蔽不赞同使用的类和方法的警告

19.ResultSet的起始下标地址为1

20.线程中的各个方法作用:start启动,run执行体,join等待线程结束,stop停止线程。

21.题目讲解静态块和静态域:

public class B
{
    public static B t1 = new B();
    public static B t2 = new B();
    {
        System.out.println("构造块");
    }
    static
    {
        System.out.println("静态块");
    }
    public static void main(String[] args)
    {
        B t = new B();
    }
}

上述代码会输出:构造块 构造块 静态块 构造块。原因在于一个类初始化的顺序是:静态域》静态块》构造块。根据上述,当类B初始化时,会先声明所有静态,所以都附上了默认值,当执行t1的初始化,此时会输出“构造块”,没有执行静态方法原因在于JVM这是第二次执行到静态代码了,所以跳过了静态代码的执行,输出两个“构造块”。接着到main方法中的对象实例化,输出静态代码块“静态块”然后到“构造块”。

22.HttpSessionAttributeListener:可以实现此侦听器接口获取此web应用程序中会话属性列表更改的通知

23.Mock对象通过反射数破坏了Java哪个一个特性,破坏了封装(原因在于mock是一个对象)

24.线程安全的有HashTable,SynchronizedMap,ConcurrentHashMap

25.volatile能保证数据的可见性,但不能完全保证数据的原子性synchronized即保证了数据的可见性也保证了原子性

26.TCP交互图:其中read()也相当于received()
在这里插入图片描述
27.String以及Stringbuffer的类型都为final,区别在于前者不可以被修改,后者可以被修改。

28.文件的读取:文本文件或者是二进制文件读取到最后会反馈出EOFException或者有指定的方法返回值数值,例如read()返回-1。

29.可以用在WEB开发中实现会话跟踪实现:session、cookie、地址重写、隐藏域

30.Switch语句可以接受的类型包含:short、byte、char、int

31.Servlet的请求周期包含:初始化(init)、销毁(destory)、处理请求(service)

32.子类A继承类B时,new一个子类A的对象时会调用类B的无参构造方法

33.对象进行传递时,修改对象内的值会导致原对象的数据被修改;但若对对象的引用做出修改改动后的对象和原对象没有关系

34.Object 是引用数据类型,只申明而不创建实例,只会在栈内存中开辟空间,默认为空,空占1 bit

35.在子类构造方法中调用父类的构造方法,super() 必须写在子类构造方法的第一行,否则编译不通过

36.java异常和错误的基类Throwable,包括Exception和Error

37.所有的对象都在堆区上分配内存,方法区,java虚拟机栈线程之间共享的

38.throw抛出异常对象,throws抛出异常类

39.forward和redirect的区别
(1)从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
(2)从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
(3)从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等

40.jre 判断程序是否执行结束的标准是:所有的前台线程执行完毕。后台线程:指为其他线程提供服务的线程,也称为守护线程。JVM的垃圾回收线程就是一个后台线程。 前台线程:是指接受后台线程服务的线程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1347376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang第五卷---包以及常用内置包归纳

包以及常用内置包归纳 包的概念math包time包sync包 Go 语言官方的包文档网站&#xff1a;包文档 包的概念 Go语言是使用包来组织源代码的&#xff0c;包&#xff08;package&#xff09;是多个 Go 源码的集合&#xff0c;是一种高级的代码复用方案。 任何源代码文件必须属于某…

2022–2023学年2021级计算机科学与技术专业数据库原理 (A)卷

一、单项选择题&#xff08;每小题1.5分&#xff0c;共30分&#xff09; 1、构成E—R模型的三个基本要素是&#xff08; B &#xff09;。 A&#xff0e;实体、属性值、关系 B&#xff0e;实体、属性、联系 C&#xff0e;实体、实体集、联系 D&#xff0e;实体、实体…

基于 CefSharp 实现一个文件小工具

I’m not saying you can’t be financially successful I’m saying have a greater purpose in life well beyond the pursuit of financial success Your soul is screaming for you to answer your true calling You can change today if you redefine what success is to …

分布式存储考点梳理 + 高频面试题

欢迎来到分布式存储模环节&#xff0c;本文我将和你一起梳理面试中分布式系统的数据库的高频考点&#xff0c;做到温故知新。 面试中如何考察分布式存储 广义的分布式存储根据不同的应用领域&#xff0c;划分为以下的类别&#xff1a; 分布式协同系统 分布式文件系统 分布式…

Android长按图标展示快捷方式

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {new Thread(() -> {// 获取ShortcutManager实例ShortcutManager shortcutManager getSystemService(ShortcutManager.class);// 创建要添加的快捷方式ShortcutInfo.Builder shortcutBuilder new ShortcutInfo.Bui…

OpenCV实战 -- 维生素药片的检测记数

文章目录 检测记数原图经过操作开始进行消除粘连性--形态学变换总结实现方法1. 读取图片&#xff1a;2. 形态学处理&#xff1a;3. 二值化&#xff1a;4. 提取轮廓&#xff1a;5. 轮廓筛选和计数&#xff1a; 分水岭算法&#xff1a;逐行解释在基于距离变换的分水岭算法中&…

dll不能运行是什么意思,分享5种有效的修复方法

在计算机使用过程中&#xff0c;我们可能会遇到各种各样的问题&#xff0c;其中一种常见的问题是“dll不能运行”。这个问题可能会影响到我们的正常使用&#xff0c;甚至导致某些软件无法启动。那么&#xff0c;“dll不能运行是什么意思”呢&#xff1f;dll文件丢失怎么恢复&am…

【数据结构】排序之交换排序(冒泡 | 快排)

交换目录 1. 前言2. 交换排序3. 冒泡排序3.1 分析3.2 代码实现 4. 快速排序4.1 hoare版本4.1.1 分析4.1.2 hoare版本代码 4.2 挖坑法4.2.1 分析4.2.2 挖坑法代码实现 4.3 前后指针版本4.3.1 分析4.3.2 前后指针版本代码实现 1. 前言 在之前的博客中介绍了插入排序&#xff0c;…

2023-12-20 LeetCode每日一题(判别首字母缩略词)

2023-12-20每日一题 一、题目编号 2828. 判别首字母缩略词二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words 和一个字符串 s &#xff0c;请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符…

MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)

文章目录 MySQL 8.0 InnoDB Tablespaces之General Tablespaces&#xff08;通用表空间/一般表空间&#xff09;General tablespaces&#xff08;通用表空间/一般表空间&#xff09;通用表空间的功能通用表空间的限制 创建通用表空间&#xff08;一般表空间&#xff09;创建语法…

vue2使用svg图片

1、安装依赖包&#xff1a; npm install svg-sprite-loader --save-dev 2、新建assets/icons/svg中放置svg图片和index.js文件 svgo.yml文件 index.js import Vue from vue import SvgIcon from /components/SvgIcon// svg component// register globally Vue.component(sv…

基于ssm的4S店预约保养系统开发+vue论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

HTML5和JS实现新年礼花效果

HTML5和JS实现新年礼花效果 2023兔年再见&#xff0c;2024龙年来临了&#xff01; 祝愿读者朋友们在2024年里&#xff0c;身体健康&#xff0c;心灵愉悦&#xff0c;梦想成真。 下面是用HTML5和JS实现新年礼花效果&#xff1a; 源码如下&#xff1a; <!DOCTYPE html>…

MSPM0L1306例程学习-ADC部分(5)

MSPM0L1306例程学习系列 使用的TI的官方例程&#xff0c;即SDK里边包含的例程代码。 可以到TI官网下载并且安装SDK: https://www.ti.com.cn/tool/cn/download/MSPM0-SDK/ MCU使用的是MSPM0L1306, 对于ADC部分&#xff0c;有10个例程&#xff1a; 今天接着讲2个例程&#xff0…

qt中信号槽第五个参数

文章目录 connent函数第五个参数的作用自动连接(Qt::AutoConnection)直接连接(Qt::DirectConnection - 同步)同线程不同线程 队列连接(Qt::QueuedConnection - 异步)同一线程不同线程 锁定队列连接(Qt::BlockingQueuedConnection) connent函数第五个参数的作用 connect(const …

软件开发新手用哪个IDE比较好?软件开发最好的IDE都在这!

目录 IDES 的优点 最佳编程 IDE 列表 Java 开发的流行集成开发环境 JetBrains 的 IntelliJ IDEA NetBeans 适用于 C/ C、C# 编程语言的最佳 IDE Visual Studio 和 Visual Studio 代码 Eclipse PHP 开发的最佳 IDE PHPStorm Sublime Text Atom JavaScript 的顶级 I…

线程数据共享和安全 -ThreadLocal

什么是 ThreadLocal ThreadLocal 的作用&#xff0c;可以实现在同一个线程数据共享, 从而解决多线程数据安全问题. 2. ThreadLocal 可以给当前线程关联一个数据(普通变量、对象、数组)set 方法 [源码!]ThreadLocal 可以像 Map 一样存取数据&#xff0c;key 为当前线程, get 方…

4.25 构建onnx结构模型-Split

前言 构建onnx方式通常有两种&#xff1a; 1、通过代码转换成onnx结构&#xff0c;比如pytorch —> onnx 2、通过onnx 自定义结点&#xff0c;图&#xff0c;生成onnx结构 本文主要是简单学习和使用两种不同onnx结构&#xff0c; 下面以 Slice 结点进行分析 方式 方法一…

DL Homework 13

目录 编程实现优化算法&#xff0c;并3D可视化 1. 函数3D可视化 2.加入优化算法&#xff0c;画出轨迹 3.复现CS231经典动画 4.结合3D动画&#xff0c;用自己的语言&#xff0c;从轨迹、速度等多个角度讲解各个算法优缺点 5.总结 编程实现优化算法&#xff0c;并3D可视化 …

语义分割的应用及发展

语义分割(Semantic Segmentation)是一种计算机视觉领域的任务&#xff0c;旨在将一张图像中的每一个像素都分配一个语义标签&#xff0c;即将图像中的每个物体区域进行精确的分类划分。例如&#xff0c;在一张街景图中&#xff0c;语义分割可以将人、车、路、天空等每个像素分别…