- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 设计模式面试题
单例模式饿汉式在类初始化时直接创建实例对象,不管你是否需要这个对象都会创建普通写法构造器私有化自行创建,并且用静态变量保存向外提供这个实例强调这是一个单例,我们可以用final修饰public class Singleton1{ public static final Singleton1 INSTANCE = new Singleton1(); private Singleton1(){ }}枚举enum枚举类,标识该类型的对象是有限的几个我们可以限定为一个,就成了
2021-06-30 15:07:26
147
原创 Java基础面试题
面向对象什么是面向对象?对比面向过程,是两种不同的处理问题的角度,面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象),及各自需要做什么,面向过程比较直接高效,面向对象更容易复用,扩展和维护封装封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项内部细节对外部调用透明,外部调用无需修改或者关心内部实现private String name;public void setName(String name){ this.name = "xq" + name;
2021-06-29 10:06:24
186
1
原创 210626 双周赛
1909.删除一个元素使数组严格递增题目描述给你一个下标从 0 开始的整数数组 nums ,如果 恰好 删除 一个 元素后,数组 严格递增 ,那么请你返回 true ,否则返回 false 。如果数组本身已经是严格递增的,请你也返回 true 。数组 nums 是 严格递增 的定义为:对于任意下标的 1 <= i < nums.length 都满足 nums[i - 1] < nums[i] 。示例 1:输入:nums = [1,2,10,5,7]输出:true解释:从 n
2021-06-28 22:23:11
175
原创 Redis面试题
RDB和AOF机制RDB:Redis DataBase在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储.优点整个Redis数据库将只包含一个文件dump.rdb,方便持久化容灾行好,方便备份性能最大化,fork子进程来完成写操作,让主进程继续处理命令,所以是IO最大化,使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能缺点数据安全性低,RDB是间隔一段时
2021-06-28 14:54:46
205
1
原创 Mysql面试题汇总
事务是什么?事务的特性?事务是由一组SQL语句组成的逻辑单元,是满足ACID特性的一组操作,可以通过Commit提交一个事务,也可以使用Rollback进行回滚,事务具有以下四个属性A – 原子性(Atomicity) 事务是一个原子操作单元,其对数据的修改,要么全部执行,要么全部不执行.C – 一致性(Consistent) 事务开始和完成前,数据都必须保持一致状态(这里的一致性是指系统从一个正确的状态,迁移到另一个正确的状态)I – 隔离性(Isolation) 数据库系统提供一定的隔离
2021-06-26 22:26:56
158
原创 SSM框架面试题总结
Spring如何实现一个IOC容器配置文件配置包扫描路径递归包扫描获取.class文件反射,确定需要交给IOC管理的类对需要注入的类进行依赖注入配置文件中指定需要扫描的包路径定义一些注解,分别表示访问控制器,业务控制层,数据持久层,依赖注入注解,获取配置文件注解从配置文件中获取需要扫描的包路径,获取到当前路径下的文件信息及文件夹信息,我们将当前路径下所有的以.class结尾的文件添加到一个Set集合中进行存储遍历这个Set集合,获取在类上有指定注解的类,并将其交给IOC容器,定义一个
2021-06-26 18:03:22
3248
原创 Java多线程面试题总结
线程的生命周期,线程有哪些状态线程通常有五种状态,创建,就绪,运行,阻塞和死亡状态阻塞的情况又分为三种(1) 等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把该线程放入"等待池"中.进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才被唤醒,wait是object类的方法(2) 同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入"锁池"中.(3)其他阻塞:运行的线程执行sleep或jo
2021-06-26 10:01:17
770
原创 JVM面试题总结
什么是字节码?采用字节码的好处是什么?java中的编译器和解释器:java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器.这台虚拟的机器在任何平台上都提供给编译程序一个共同的接口.编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行.在Java中,这种供虚拟机理解的代码叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机.每一种平台的解释器是不同的,但是实现的虚拟机是相同的.Java源程序经过编
2021-06-25 20:32:46
230
1
原创 244周赛(2021-06-06)
1886. 判断矩阵经轮转后是否一致题目给你两个大小为 n x n 的二进制矩阵 mat 和 target 。现 以 90 度顺时针轮转 矩阵 mat 中的元素 若干次 ,如果能够使 mat 与 target 一致,返回 true ;否则,返回 false 。解1暴力求解将矩阵旋转四次看能否满足条件即可时间复杂度 o(n^2)旋转操作需要双重for循环class Solution { public boolean findRotation(int[][] mat, in
2021-06-17 22:39:58
117
1
转载 JVM-第九章:方法区
前言这次所讲述的是运行时数据区的最后一个部分从线程共享与否的角度来看ThreadLocal:如何保证多个线程在并发环境下的安全性?典型应用就是数据库连接管理,以及会话管理栈、堆、方法区的交互关系下面就涉及了对象的访问定位Person:存放在元空间,也可以说方法区person:存放在Java栈的局部变量表中new Person():存放在Java堆中方法区的理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集
2021-05-06 22:19:35
159
转载 JVM-第八章:堆
堆的核心概述内存细分设置堆内存大小与OOM年轻代与老年代图解对象分配过程Minor GC Major GC Full GC堆空间分代思想内存分配策略为对象分配内存:TLAB小结堆空间的参数设置堆是分配对象的唯一选择吗...
2021-05-05 20:38:11
123
转载 JVM-第七章:本地方法栈
Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方面是相同的)如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackoverflowError 异常。如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟机将会抛出一个outofMemoryError异常。本
2021-05-04 21:18:18
86
转载 JVM-第五章:虚拟机栈
虚拟机栈概述背景内存中的堆与栈基本内容面试题:开发中遇到的异常有哪些栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构局部变量表关于Slot的理解静态变量和局部变量的对比操作数栈代码追踪...
2021-05-04 21:10:23
164
转载 JVM-第四章:程序计数器
PC Register介绍oracle官网->download->java->jdk->specifications作用举例说明两个常见问题使用PC寄存器存储字节码指令地址有什么用呢?
2021-05-02 22:09:33
122
转载 JVM-第二章:类加载子系统
内存结构概述完整图如下如果自己手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎类加载子系统类加载子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是
2021-05-02 21:54:22
116
1
原创 Git-第四,五章:Git团队协作机制,GitHub操作
第四章 Git团队协作机制4.1 团队内协作4.2 跨团队协作第五章 GitHub操作5.1 创建远程仓库5.2 远程仓库操作命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地
2021-04-30 15:57:30
155
1
原创 Git-第四章:Git分支操作
4.1 什么是分支?在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)4.2 分支的好处同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。4.3 分支的操作命.
2021-04-30 14:55:50
246
原创 Git-第二章:Git常用命令
第二章 Git常用命令命令名称作用git config --global user.name用户名 设置用户签名git config --global user.email邮箱 设置用户签名git init初始化本地库git status查看本地库状态git add 文件名添加到暂存区git commit -m “日志信息” 文件名提交到本地库git reflog查看历史记录git reset --hard 版本号版本穿梭
2021-04-30 11:45:10
103
原创 Git-第一章:Git概述
第一章 Git概述Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具1.1 何为版本控制版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。1.2
2021-04-30 11:02:29
332
1
原创 在线教育项目功能展示
项目启动启动Nacos启动Nginx启动SpringBoot各个微服务模块打开前端项目,选择在终端中打开,输入指令npm run dev后台管理系统登录页面与首页教师管理模块教师列表添加教师编辑教师课程分类模块添加课程分类读取excel里的课程分类数据,添加到数据库中(easyexcel)课程分类列表显示使用树形结构显示课程分类列表课程管理模块课程列表功能添加课程课程发布流程:填写课程信息添加课程大纲.
2021-04-29 19:15:21
515
原创 Linux面试题(待补全)
问题一分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯)http://192.168.200.10/index1.htmlhttp://192.168.200.10/index2.htmlhttp://192.168.200.20/index1.htmlhttp://192.168.200.30/index1.htmlhttp://192.168.200.40/index1.htmlhttp://192.168.200.30/order.htmlh
2021-04-25 11:28:21
141
原创 Redis的复制(Master/Stave)
是什么行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主能干嘛读写分离容灾恢复怎么玩配从库不配主库从库配置:slaveof 主库IP 主库端口每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件Info replication修改配置文件细节操作拷贝多个redis.conf文件开启daemonize yesPid文件名字指定端口Log文件
2021-04-24 19:33:16
108
原创 Redis的发布订阅
是什么进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接受消息订阅/发布消息图下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:命令序号命令描述1PSUBSCRIBE pattern [pattern…]订阅一个或多个符合给定模式的频道2P
2021-04-24 16:41:30
67
原创 Redis的事务
是什么可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞.redis事务能干吗一个队列中,一次性,顺序性,排他性地执行一系列命令怎么玩常用命令序号命令描述1discard取消事务,放弃执行事务块内地所有命令2exec执行所有事务块内的命令3multi标记一个事务块的开始4unwatch取消WATCH 命令对所有key的监视5watch key [key…]
2021-04-24 16:24:11
71
原创 Redis的持久化
RDB(Redis DataBase)是什么?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件里,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效.RDB的缺点是最后一次
2021-04-22 21:56:14
79
原创 Redis配置文件
解析配置文件 redis.conf它在哪地址cd /opt/redis-3.0.4拷贝出来单独备份Units单位# Redis configuration file example# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:## 1k => 1000 bytes# 1kb =>
2021-04-22 15:10:41
143
原创 Redis数据类型
Redis的五大数据类型String(字符串)String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个valueString类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512MHash(哈希,类似java里的map)Redis hash是一个键值对集合Redis hash是一个string类型的fiel
2021-04-21 21:46:28
80
原创 Redis入门
一、入门概述1.是什么Redis: REmote DIctionary Server(远程字典服务器)是一个完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器Redis与其他key-value缓存产品有以下三个特点Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用Redis不仅仅支持简单的key-
2021-04-21 16:37:08
64
原创 Linux可视化管理(webmin和bt运维工具)
webmin基本介绍Webmin是功能强大的基于Web的Unix/linux系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的的管理操作.除了个版本的linux以外还可用于:AIX,HPUX,Solaris,Unixware,Irix和FreeBSD等系统安装webmin && 配置bt(宝塔)基本介绍bt宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等多项服务器管理功能安装和
2021-04-21 11:59:55
994
原创 linux系统(备份与恢复)
基本介绍实体机无法做快照,如果系统出现异常或者数据损坏,后果严重,要重做系统,还会造成数据丢失,所以我们可以使用备份和恢复技术linux的备份和恢复很简单,有两种方式把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可使用dump和restore命令安装dump和restore如果linux上没有 dump 和 restore 指令,需要先按照yum -y install dumpyum -y install restore使用dump完成备份基本介绍du
2021-04-21 10:36:55
184
原创 Linux高级篇(定制自己的Linux系统)
基本介绍通过裁剪现有的Linux系统(CentOS7.6),创建属于自己的 min Linux小系统,可以加深我们对linux的理解基本原理启动流程介绍:制作Linux小系统之前,再了解一下Linux的启动流程首先Linux要通过自检,检查硬件设备有没有故障如果有多块启动盘的话,需要在BIOS中选择启动磁盘启动MBR中的bootloader引导程序加载内核文件执行所有进程的父进程,老祖宗systemd欢迎界面在Linux的启动流程中,加载内核文件时的关键文件:1)kernel文件
2021-04-20 19:42:25
304
原创 Linux高级篇(日志管理)
基本介绍(1)日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息,系统的启动信息,系统的安全信息,邮件相关信息,各种服务相关信息等(2)日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时,攻击者留下的痕迹(3)日志是用来记录重大事件的工具系统常用日志/var/log/ 目录就是系统日志文件的保存位置日志管理服务 rsyslogdCentOS7.6日志服务是 rsyslogd , CentOS6.x日志服务是sy
2021-04-20 15:56:32
146
原创 Linux-javaEE定制篇(搭建JavaEE环境)
概述如果需要在Linux下进行JavaEE的开发,我们需要安装如下软件安装JDK安装步骤tomcat安装idea安装mysql5.7安装新建文件夹/opt/mysql,并cd进去运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。运行tar -xvf mysql
2021-04-19 15:24:35
227
原创 Linux实操篇(RPM和YUM)
rpm包的管理介绍rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认地行业标准了.rpm包地简单查询指令查询已安装的rpm列表 rpm -qa|grep xxrpm包名基
2021-04-19 14:27:10
121
原创 Linux实操篇(进程管理)
基本介绍在Linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid,进程号)=> windows => linux每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但屏幕上无法看到此进程。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。显示系统执行的进程基本介绍ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况,可以不加任何参数ps详解ps -
2021-04-19 11:16:25
342
原创 Linux实操篇(Linux分区,挂载)
Linux分区原理介绍Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分Linux采用了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的储存空间在一个目录下获得。硬盘说明Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘对于IDE硬盘,驱动器标识符位"hdx~",其中"hd"表明分区所在
2021-04-17 20:16:30
122
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人