- 博客(52)
- 收藏
- 关注
原创 HashMap和HashTable的区别【大白话Java面试题】
Hashtable计算hash值,直接用key的hashCode(),而HashMap重新计算了key的hash值,Hashtable在求hash值对应的位置索引时,用取模运算,而HashMap在求位置索引时,则用与运算,且这里一般先用hash&0x7FFFFFFF后,再对length取模,&0x7FFFFFFF的目的是为了将负的hash值转化为正值,因为hash值有可能为负数,而&0x7FFFFFFF后,只有符号外改变,而后面的位都不变。可以有多个 key值对应的value为null。
2024-03-31 15:17:42
447
原创 ArrayList和LinkedList的区别【大白话Java面试题】
而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。LinkedList是采用双向链表实现的。另外,ArrayList在进行元素插入的时候,需要移动插入位置之后的所有元素,位置越靠前,需要位移的元素越多,开销越大,相反,插入位置越靠后的话,开销就越小了,如果在最后面进行插入,那就不需要进行位移。因为是数组,所以ArrayList在初始化的时候,有初始大小10,插入新元素的时候,会判断是否需要扩容,扩容的步长是0.5倍原容量,扩容方式是利用数组的复制,因此有一定的开销;
2024-03-31 15:01:46
681
原创 equals()和hashcode()的区别【大白话Java面试题】
3、然而hashCode()和equals()一样都是基本类Object里的方法,而和equals()一样,Object里hashCode()里面只是返回当前对象的地址,如果是这样的话,那么我们相同的一个类,new两个对象,由于他们在内存里的地址不同,则他们的hashCode()不同,所以这显然不是我们想要的,所以我们必须重写我们类的hashCode()方法,即一个类,在hashCode()里面返回唯一的一个hash值。hashcode()相同,equals()不一定相同。
2024-03-31 14:49:30
476
原创 接口和抽象类的区别【大白话Java面试题】
1、接口是行为的抽象,是一种行为的规范,接口是like a 的关系;抽象是对类的抽象,是一种模板设计,抽象类是is a 的关系。2、接口没有构造方法,而抽象类有构造方法,其方法一般给子类使用3、接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。4、抽象体现出了继承关系,继承只能单继承。接口提现出来了实现的关系,实现可以多实现。接口强调特定功能的实现,而抽象类强调所属关系。
2024-03-31 14:24:27
568
原创 重载和重写的区别【大白话Java面试题】
大白话回答重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同,重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即!详细描述。
2024-03-30 21:45:53
375
原创 String,StringBuffer,StringBuilder 的区别【大白话Java面试题】
字符串常量池又称为:字符串池,全局字符串池,英文也叫String Pool。在工作中,String类是我们使用频率非常高的一种对象类型。JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存空间,这就是我们今天要讨论的核心:字符串常量池。字符串常量池由String类私有的维护。JDK7之前字符串常量池是在永久代里边的,但是在JDK7之后,把字符串常量池分进了堆里边。
2024-03-30 21:38:04
423
原创 ==和equals的区别【大白话Java面试题】
= 的作用:基本类型:比较的就是值是否相同引用类型:比较的就是地址值是否相同equals 的作用:引用类型:默认情况下,比较的是地址值。注:不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同java中其实只有 == 比较,没有equals比较,其实底层还是 ==。只不过equals是很多类定义个方法而已,而这个方法把内存地址的比较改成基础数据类型的比较。就算String ,Integer,Long 等都回归到基础数据类型的比较。
2024-03-30 21:21:30
941
原创 JDK,JRE,JVM 区别和联系【大白话Java面试题】
大白话回答:JDK是开发环境一般开发人员需要,包含开发环境(JDK)和运行环境(JRE),JRE是运行环境,普通用户需要。jre文件夹下的bin文件夹就是JVM的东西,lib文件夹是JVM工作所需要的类库,有了JVM就可以跨系统执行详细描述如下。
2024-03-30 20:58:26
893
原创 什么是面向对象【大白话Java面试题】
同样是解决一个问题,面向对象的角度是将问题抽象成对象的形式。通过分类的思维方式,将问题分成几个解决方案的对象。给每个对象赋值属性和方法,对每个对象的细节进行面向过程的思维,执行自己的方法来解决问题。
2024-03-30 20:39:10
206
原创 构建部署_docker-compose常用命令
使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,。Dockerfile可以让用户管理一个单独的应用容器,而则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目)例如一个web服务再加上后端的数据库服务容器等。docker-compost基础概念docker-compose项目是docker官方的开源项目, 负责实现对docker容器集群的快速编排。
2024-03-15 22:33:18
2050
原创 构建部署_Docker常用命令
查看docker命令命令帮助文档:docker 具体命令 --help。查看docker状态:systemctl status docker。重启docker:systemctl restart docker。启动docker:systemctl start docker。停止docker:systemctl stop docker。开机启动:systemctl enable docker。查看docker总体帮助文档:docker --help。查看docker概要信息:docker info。
2024-03-15 19:23:41
634
原创 构建部署_Jenkins介绍与安装
Jenkins是一个可扩展的持续集成引擎。持续集成,就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
2024-03-13 02:58:05
1582
原创 【构建部署_Docker介绍与安装】
Docker 是一个基于go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。docker三大核心概念:镜像 Image、容器 Container、仓库 Repository镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。容器(Container)
2024-03-13 01:20:11
1097
原创 【开发工具学习_Xshell介绍与安装】
Xshell [1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
2024-03-13 00:24:27
482
原创 【Redis学习_常见基础命令】
【exists key[key…]】 判断key是否存在。-【get key】 获取 key 中设置的字符串值。-【keys pattern】 查看key。
2024-03-11 03:49:17
1445
原创 【Redis学习_可视化客户端连接Redis】
介绍Another Redis Desktop Manager 支持哨兵, 集群, ssh通道, ssl认证, stream, subscribe订阅, 树状视图, 命令行, 以及暗黑模式;多种格式化方式, 甚至能够自定义格式化脚本, 满足你的一切需求.下载地址安装(傻瓜安装,下一步,下一步)
2024-03-10 22:10:54
1040
原创 【Redis学习_介绍与安装】
Redis 是一种开源的高性能、非关系型、基于键值对的数据存储系统,也被称为数据结构服务器。Redis 数据库支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,同时 Redis 还提供了事务、 Lua 脚本、持久化、复制、高可用等功能。Redis 的设计目标是在内存中快速存储和检索数据,它通常被用作缓存、消息队列和数据存储等方面。
2024-03-10 20:01:03
461
原创 JDK简介以及安装
DK是整个Java的核心,包括了一个Java运行时环境(JRE)、Java工具以及基本的Java类库。JDK是Sun公司免费提供给软件工程师开发java应用程序一套开发套件,JDK(Java Development Kit)有很多帮助开发人员进行java开发时所用到的工具,包括编译、调试、运行等等命令JDK8好像是大家最常用的版本,这里我用的JDK17,也是一个长期支持版。链接: https://www.oracle.com/java/technologies/downloads/
2024-02-06 13:17:15
494
1
原创 springCloud五大核心组件介绍
一:首先看一张springCloud的图片:二:简单介绍下什么是springCloud?"Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开...
2020-01-07 12:02:08
2800
原创 linux部署Docker及Docker常用命令
【Docker】linux部署Docker及Docker常用命令linux部署Docker、Docker常用命令本次部署Linux版本:CentOS 7.4 64位。 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核版本至少为3.10一、部署Docker1、添加yum源# yum install epel-release ...
2020-01-03 15:18:34
276
1
原创 Kafka消息和offset存储
前言Kafka具有存储功能,默认保存数据时间为7天或者大小1G,也就是说kafka broker上的数据超7天或者1G,就会被清理掉。这些数据存放在broker服务器上,以log文件的形式存在。准备工作topic我添加了一个topic名字为demo1。为了方便观察,它只有一个分区,一个副本。kafka-topics.sh --zookeeper localhost:2181/k...
2019-12-16 16:33:18
517
原创 Kafka常用命令
前言本文所有的操作都是在MacOS系统上使用。如果是在Linux操作系统下进行实验,使用的命令是相同的;如果是在windows操作系统下进行实验,则需要使用对应的bin/windows目录下的bat文件。Broker启动bin/kafka-server-start.sh --daemon config/server.properties启动kafka命令加上–daemon,那...
2019-12-16 16:19:36
309
原创 Kafka知识点整理
一、为什么需要消息系统1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。3.扩展性: ...
2019-12-16 15:55:35
210
原创 SpringBoot整合RabbitMQ消息队列
前言本篇文章主要用于记录个人学习RabbitMQ的过程,记录下来方便日后查看,如有错误的地方,还望指正。本篇文章比较详细地记录本人在学习过程中的每一个步骤,比较适合对RabbitMQ不熟的同学学习,跟着本文操作一遍,就可以大概知道RabbitMQ的基础知识了。准备阶段首先把RabbitMQ环境安装好,下面再详细介绍RabbitMQ各个知识点和如何使用。由于是基于Centos7的...
2019-12-11 11:44:34
187
原创 【消息队列】RabbitMQ知识点
一、消息队列学习MQ是一个互联网架构中常见的解耦利器。什么时候不使用MQ?上游实时关注执行结果什么时候使用MQ?1)数据驱动的任务依赖,多个任务需要轮流执行,轮流订阅上一个任务。2)上游不关心多下游执行结果,上游执行完发送到MQ,多下游订阅MQ。3)异步返回执行时间长死信队列多了一个过期的机制,到期会自动去尝试消费,通过死信交换机做匹配,选择想要的消...
2019-12-11 11:27:19
318
原创 【消息队列】ActiveMQ知识点
1. 什么是ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位2.消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流...
2019-12-10 15:03:35
289
原创 Linux基础知识——Linux常用命令大全
一、查看 ls作用:列出目录内容格式:ls [选项] [目录名]注意:命令格式[]中的内容为非必选项ls命令选项-a 列出目录下的所有文件,包含.开头的隐藏文件-l 列出文件的详细信息-i 查看文件的iNode号(iNode会指向文件块所在的位置)-h 以容易读取的方式显示文件大小-d 仅列出目录本身,而不显示目录中的文件-t 按照时间顺序排序,时间越早越早下面...
2019-12-06 15:08:49
512
原创 Git常用命令大全
1.强制推送(慎用,除非你认为其他冲突等可以丢弃 或者不是很重要)git push -- force2.创建文件等小命令touch a // 创建一个a文件echo 1234 >> a // 把1234这个内容放入a文件cat a // 打开a文件 读取出a文件中的内容mkdir test // 创建test文件夹rm 文件名 // 删除文件pwd // 打印...
2019-12-05 16:38:31
187
原创 IDEA中常见快捷键
1. 自动代码常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday().var+Tab即可。代码标签输入...
2019-12-05 16:07:23
148
原创 IDEA中Maven的使用
一.配置Maven环境1.下载apache-maven文件,选择自己需要的版本,地址:http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip2.解压1所下载文件,本人解压到:D:\server\maven\apache-maven-3.5.03.配置Maven环境变...
2019-12-05 16:00:32
402
原创 IDEA中Git的使用
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长盖茨,组员艾伦场景一:盖茨创建项目并提交到远程Git仓库场景二:艾伦从远程Git仓库上获取项目源码场景三:艾伦修改了部分源码,提交到远程仓库场景四:盖茨从远程仓库获取艾伦的提交场景五:艾伦接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:艾伦把分支提交到远程Git仓库场景七...
2019-12-05 15:54:06
177
原创 Git知识点及常用命令
一、版本控制概要 工作区 暂存区 本地仓库 远程仓库1.1、什么是版本控制版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档 统计工作量 并行开发、提高开发效率 ...
2019-12-05 14:38:28
412
原创 面试必备:Maven核心知识点梳理
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。1、核心功能依赖管理:Maven工程对jar包的管理...
2019-12-04 11:35:17
272
原创 MySQL优化
一. 优化SQL步骤1. 通过 show status和应用特点了解各种 SQL的执行频率通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。如显示当前session:S...
2019-12-03 14:55:43
170
原创 Mysql高级查询
高级查询高级查询的格式:select ... 聚合函数 from 表名where ...group by ...having ...order by ...limit ...order by 给查询结果排序语法格式:... order by 字段名 ASC/DESC;ASC:默认,升序 DESC:降序 举个栗子select name from stu...
2019-12-03 14:41:47
119
原创 Mysql常用函数
MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中将讲解的内容包括:数学函数字符串函数日期和时间函数条件判断函数系统信息函数加密函数格式化函数 MySQL函数是MySQL数...
2019-12-03 13:29:40
163
原创 Mysql面试题
目录1、事务四大特性2、MySQL的事务隔离级别3、索引4、MySQL数据库的四类索引检测索引的效果:5、sql语句分类6、数据库三范式7、脏读&不可重复读&幻读不可重复读&幻读区别:8、 存储引擎MyISAM和InnoDB区别9、CHAR和VARCHAR的区别10、Mysql中有哪几种锁?11、存储过程...
2019-12-03 12:55:03
754
原创 SpringCloud面试题
目录一.微服务的优点缺点?说下开发项目中遇到的坑?二.什么是springcloud?三.spring cloud 和dubbo区别?四.REST 和RPC对比五.你所知道的微服务技术栈?六.负载均衡的意义是什么?七.微服务之间是如何独立通讯的?八.springcloud如何实现服务的注册?九.Eureka和Zookeeper区别十.eureka自我保护机...
2019-12-02 12:48:27
276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人