java面试题中常见名词注解
一.常见名词注解
1.mysql索引,索引数据结构,hash,二叉树,B树,B+树,红黑树,
mysql索引:帮助mysql高效获取数据的数据结构,通俗来说,数据库索引就好比一本书的目录,可以加快数据库查询的速度。
索引数据结构:hash,B+,二叉树。
hash:以键值对存储数据,只要输入key就可以找到相应的Value
二叉树:每个节点最多有两个子树的树结构
B树:每个节点都是按递增排序存放,左小右大,一个子结点可以有多个数据
B+树:改良版的B树,每个就叶子节点,连成一条链表
红黑树:是一种二叉搜索树,红黑树确保没有一条路径是其他路径的两倍,因而接近平衡。
2.进程和线程
进程:程序运行的资源分配的基本单元,一个程序有多个进程,一个进程有多个线程,进程在执行过程中有独立的内存单元
线程:多个线程共享内存资源,线程是进程的一个实体,是cpu调度的基本单元。
3.堆,栈
堆:是一种数据接口,自己控制一段储存空间,叫做堆空间,实在程序运行时申请的动态内存,
栈:又称为堆栈,是操作系统在创建某个进程时或线程,为了这个线程创建的储存区域,在编译时候可以指定需要的栈大小,它是一种运算受限的线性表,先进后出。
4.线程安全,synchronized,lock锁
synchronized:关键字,同步锁,可以修饰静态方法,普通方法,代码块,修饰静态方法时锁住的是类对象,修饰普通方法是锁住的是实例对象,当一个线程获取锁是,其他线程想要访问只能等当前线程释放锁,
lock锁:接口,只能用在代码里,synchronized在代码执行完或出现异常时会自动释放锁,Locl不会自动释放,需要在finally中释放。 synchronized会导致线程拿不到锁一直等待,Lock可以设置获取锁失败的超时时间。 synchronized无法获知是否获取锁成功,Lock则可以通过tryLock判断是否加锁成功
5.redis五种数据结构
string:底层是一个简单的动态字符串。
list:存储先行有序且可重复的元素,底层是双向链表/压缩列表
set:存储不可重复的元素,底层是hash和整数数组
zset:存储有序不可重复的元素,为每个元素添加一个score属性作为排序依据,底层是ziplist和跳表
hash:存储的是键值对,底层是ziplist和hash
6.集合,数组,链表,队列
集合:用于储存无序元素,值不能重复,
数组:数组是内存开辟的一段连续空间,长度固定,元素固定,
链表:是一种线性表,在一个节点上有一个指针指向下一个节点
队列:先进先出。
7.ArrayList和LinkedList
ArrayList:底层是数组实现,数组是一组连续的内存单元,读取快,插入删除慢,
LinkedList:底层基于双向链表,读取慢,插入删除快,链表的每个节点都保存了数据值,和前后节点的指针,占内存。
8.ConcurrentHashMap,HashMap,HashTable
ConcurrentHashMap:底层数据结构也是数组+链表+红黑树,采用锁定头部结点的方式降低锁粒度,在初始化数组时未加锁,但当插入数据就会给槽的头节点上锁,支持多线程
HashMap:数组+链表+红黑树,集合put时,计算key键的哈希值放入元素,若有key值相同的哈希值是就会用链表进行存放,链表长度达到8是就会开辟红黑树进行存放,以此提高查询效率。非线程安全。
HashTable:性能不如hsahmap,但是线程安全,,不允许存入null,内部使用大量的synchronized关键字,所以无论是key还是value为null都会引发异常。
9.String、StringBuffer、Stringbuilder
String:不可变字符序列,效率低,每创建一个string对象,就会分配一个空间,
StringBuffer:可变字符序列,效率高(增删),线程安全,只分配一个空间,改变值而不改变地址。
Stringbulider:可变字符序列,效率最高,线程不安全,只分配一个空间,改变值而不改变地址。
10.==和equals(),hashCode()
==:比较基本数据类型时,比较的是两个数值是否相等; 比较引用类型是,比较的是对象的内存地址是否相等。equals():equals() 没有重写时,Object默认以==来实现,即比较两个对象的内存地址是否相等; 重写以后,按照对象的内容进行比较
hashCode():主要用途是获取哈希码
两个对象相等,他们必须有相同的哈希码,有相同的哈希码;哈希码相同的话,他们不一定相等
11:static,final
static:修饰符,static修饰变量:属于静态变量也叫类变量,直属于类对象而不是实例,可以通过类名访问,它一般会在类加载过程中被初始化。生命周期贯穿整个程序。存储在方法区中。 static修饰方法:即静态方法,一个类中的静态方法不能访问该类的实例变量,只能访问静态变量。同时还存在一个静态初始化块,他在类加载过程中被调用用于对该类中的静态变量进行操作。 static修饰类:即静态内部类,他只能以内部类的形式存在,可通过外部类的类名调用。它是他也只能访问到外部的的静态成员。
final:关键字,final可以修饰类,方法,变量。 final修饰类,该类不可被继承。 final修饰方法,该方法不能被重写。 final修饰变量,如果是基本变量则值不能再改变,如果是引用变量则引用地址不能改变,但值可以改变。可以修饰成员变量,修饰后可重写,不能重新赋值。
12.SpringBoot注解,springBootApplication,EnableAutoConfiguration,Service,responsebody、requestMapping、Bean、Autowired
springBootApplication:springboot的核心注解,用在springboot的主类上,用来开启springboot的各项能力,
EnableAutoConfiguration:允许springboot自动配置注解,开启后,springboot就根据当前类路径包或者类来配置springbean
Service:用来修饰Service层的组件
responsebody:表示该方法返回的结果直接写在HTTPresponsebody中,跳转页面直接返回json数据
requestMapping:用来处理请求地址映射,提供路由信息,负责URL到Controller中的具体函数映射,可用在类或方法上,用在类上表示类中的所有相应请求的方法都是以该地址为父路径。
Bean:相当于XML中的放在方法的上面,而不是类,意思是产生一个beam交给spring管理
Autowired:bytype方法,把配置好的bean拿来用,完成属性,方法的组装,它可以对类对象变量,方法及构造函数进行标注,完成自动装配的工作
13.@Autowired和@Resource
@Autowired:Spring提供的注解,@Autowired只能按照类型装配,默认情况下必须按照依赖对象存在,如果允许null值,可以设置他的required属性为false,如果想使用名称装配可以结合@Qualifier注解使用,
@Resource:JDK提供的注解,默认按照名称装配,名称可以通过name属性进行指定,如过没有指定name属性,当注解写在字段上是,默认取字段名进行名称查找。
14.java基本数据类型和引用数据类型
基本数据类型:byte(8), short(16), int(32), long(64), float(32), double(64), char(16), boolean
这基本数据类型在声明之后就会立刻在栈上被分配内存空间
引用数据类型:类,接口,数组,String等,这些变量在声明时不会被分配内存空间,只是存储了一个内存地址
15.mysql常用命令
获取当前日期和时间:now()
获取当前日期:curdate()
获取当前时间:curtime()
返回date年份,time小时,分钟: year(date),hour(time),minute(time)
返回两个时间相隔天数:datediff(date1,date2)
返回指定多少i行:limit 数字
平均数:AVG
返回字段行数:COUNT
16.重载和重写
重载:重载发生在用一个类中,方法名相同,参数列表,返回类型,权限修饰符不同。
重写:重写发生在子类中,方法名相同,参数列表,返回类型相同,权限修饰符大于父类方法,声明范围小于父类方法。
17.接口,抽象类
接口:不能被实例化,实现接口必须实现抽象方法,有抽象方法,静态和默认方法,没有构造方法,成员变量只能是final类型,必须赋值。
抽象类:不能被实例化,继承抽象类的普通子类必须实现抽象方法,有普通方法和代码块和构造方法,成员变量可以是各种类型。
相关文章:
java面试题中常见名词注解
一.常见名词注解 1.mysql索引,索引数据结构,hash,二叉树,B树,B树,红黑树, mysql索引:帮助mysql高效获取数据的数据结构,通俗来说,数据库索引就好比一本书的…...
SpringAOP从入门到源码分析大全,学好AOP这一篇就够了(二)
文章目录系列文档索引四、Spring AOP的使用入门1、激活AspectJ模块(1)注解激活(2)XML激活2、创建 AspectJ 代理(了解)(1)编程方式创建 AspectJ 代理实例(2)XM…...

华为OD机试 - 斗地主(C++) | 附带编码思路 【2023】
刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…...

【存储】etcd的存储是如何实现的(3)-blotdb
前两篇分别介绍了etcd的存储模块以及mvcc模块。在存储模块中,提到了etcd kv存储backend是基于boltdb实现的,其在boltdb的基础上封装了读写事务,通过内存缓存批量将事务刷盘,提升整体的写入性能。botldb是etcd的真正的底层存储。本…...
基于MATLAB开发AUTOSAR软件应用层模块-part21.SR interface通信介绍(包括isupdated判断通信)
这篇文章我们介绍最后一种interface,即Sender-Receiver Interface,这种通信方式是autosar架构中最常用的的通信方式,即一个SWC发送数据,另一个SWC接收数据,实现数据交互。下边我们介绍下这篇文章主要介绍的内容: 目录如下: 如何配置SR interface,实现SR 通信介绍含有…...
Kotlin新手教程八(泛型)
一、泛型 1.泛型类的创建与实例化 kotlin中泛型类的创建与实例化与Java中相似: class A<T>(t:T){var valuet }fun main() {var a:A<Int> A<Int>(11) }Kotlin中存在类型推断,所以创建实例可以写成: var aA(11)2.泛型约束…...

性能测试知多少?怎样开展性能测试
看到好多新手,在性能需求模糊的情况下,随便找一个性能测试工具,然后就开始进行性能测试了,在这种情况下得到的性能测试结果很难体现系统真实的能力,或者可能与系统真实的性能相距甚远。 与功能测试相比,性能…...

code-breaking之javacon
JAVACON 题目 此题 来自P神 的code-breaking中的一道Java题,名为javacon,题目知识点为SpEL注入 题目下载地址:https://www.leavesongs.com/media/attachment/2018/11/23/challenge-0.0.1-SNAPSHOT.jar 运行环境 java -jar challenge-0.…...
Android 字符串替换,去除空格等操作
今天在写代码的时候,需要对String进行一些操作,例如变小写,去除所有空格 于是熟练的使用String的replaceAll,却发现没这个方法。 后面才发现Kotlin使用的是自己的String,有自己的方法,用String的replace(…...

因“AI”而“深” 第四届OpenI/O 启智开发者大会高校开源专场25日开启!
中国算力网资源不断开发,开源社区治理及AI开源生态引来众多有才之士参与建设,国家级开放创新应用平台、NLP大模型等高新技术内容逐渐走向科研舞台上聚光灯的中心,新时代的大门缓缓打开。在启智社区,有一群人,他们年纪轻…...

CATCTF wife原型链污染
CATCTF wife原型链污染 原型链污染原理:https://drun1baby.github.io/2022/12/29/JavaScript-%E5%8E%9F%E5%9E%8B%E9%93%BE%E6%B1%A1%E6%9F%93/ 如下代码,prototype是newClass类的一个属性。newClass 实例化的对象 newObj 的 .__proto__ 指向 newClass…...

浅谈Java线程池中的ThreadPoolExecutor工具类
目录 ThreadPoolExecutor的构造函数 关于线程池的一些补充 线程池运行原理分析 概念原理解释 整个流程图如下: 一点补充 创建线程池主要有两种方式: 通过Executor工厂类创建,创建方式比较简单,但是定制能力有限通过ThreadPoo…...

分析过程:服务器被黑安装Linux RootKit木马
前言 疫情还没有结束,放假只能猫家里继续分析和研究最新的攻击技术和样本了,正好前段时间群里有人说服务器被黑,然后扔了个样本在群里,今天咱就拿这个样本开刀, 给大家研究一下这个样本究竟是个啥,顺便也给…...

运动型蓝牙耳机推荐哪款、最新运动蓝牙耳机推荐
提起运动耳机,如今很多运动爱好者和职业教练员们,都会向萌新推荐骨传导运动耳机。骨传导耳机解决了入耳式蓝牙耳机掉落的问题,佩戴相当舒服。骨传导耳机在佩戴过程中解放了双耳,不会因为耳机堵住耳朵,听不到环境音&…...

Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫(2)-Selenium控制浏览…...

gulimall技术栈笔记
文章目录1.项目背景1.1电商模式1.2谷粒商城2.项目架构图3.项目技术&特色4.项目前置要求5.分布式基础概念5.1微服务5.2集群&分布式&节点5.3远程调用5.4负载均衡5.5服务注册/发现&注册中心5.6配置中心5.7服务熔断&服务降级5.7.1服务熔断5.7.2服务降级5.8API网…...
vue3生命周期钩子以及使用方式
按照生命周期的顺序来排列: onBeforeMount() DOM挂载前调用 注册一个钩子,在组件被挂载之前被调用。 当这个钩子被调用时,组件已经完成了其响应式状态的设置,但还没有创建 DOM 节点。它即将首次执行 DOM 渲染过程。 onMount(…...

以假乱真的手写模拟器?
前些时候给大家推荐了一款word插件叫做“不坑盒子”,这款盒子不仅方便了word的操作,还附带了手写模拟器这样的效果只是在使用的时候不仅需要手动下载字体,而且效果也并不是太理想。 今天小编找到了一款软件--手写模拟器,不仅一键生…...

每日一题——L1-069 胎压监测(15)
L1-069 胎压监测 分数 15 小轿车中有一个系统随时监测四个车轮的胎压,如果四轮胎压不是很平衡,则可能对行车造成严重的影响。 让我们把四个车轮 —— 左前轮、右前轮、右后轮、左后轮 —— 顺次编号为 1、2、3、4。本题就请你编写一个监测程序&#…...

17_FreeRTOS事件标志组
目录 事件标志组 事件标志组与队列、信号量的区别 事件标志组相关API函数介绍 实验源码 事件标志组 事件标志位:用一个位,来表示事件是否发生 事件标志组是一组事件标志位的集合,可以简单的理解事件标志组,就是一个整数。 事件标志组的特点: 它的每一个位表示一个事件(…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...