Oracle 与 MySQL 主要差异
导航:
【Java笔记+踩坑汇总】Java基础+进阶+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud+黑马旅游+谷粒商城+学成在线+MySQL高级篇+设计模式+面试题汇总+源码_vincewm的博客-CSDN博客
目录
一、基本区别
1.1 基本特性
1.2 Oracle和MySQL如何做技术选型?
1.3 RDBMS和ORDBMS的区别
1.4 默认端口号和用户名
1.5 基本操作
1.5.1 登录方式
1.5.2 修改用户名密码
1.5.3 Oracle解锁账号
1.5.4 Oracle内存优化
1.6 大小写是否敏感
1.6.1 Oracle:双引号下大小写敏感
1.6.2 MySQL:大小写不敏感
二、常用字段类型
2.1 Oracle常用字段类型
2.2 MySQL常用字段类型
三、时间日期
3.1 Oracle
3.2 MySQL
四、创建表空间/数据库
4.1 Oracle创建表空间
4.2 MySQL创建数据库
五、创建临时表
5.1 Oracle创建临时表
5.2 MySQL创建临时表
六、删除表空间/数 ...
2024上半年面经
湖北湖北亚信科技面经线下面试1.自我介绍
2.介绍你的项目(BI 和 伙伴匹配)
3.== 与 equals 区别
4.String 有哪些方法
5.接口和抽象类的区别
6.Spring Boot 常用注解
7.说说 Spring 是什么
8.怎么实现分页
9.常用的 Linux 命令
反问1.公司业务
答:什么都做吧(其实就是外包)
2.对我的建议,说说我的不足
答:接触过少,说不出来,但面试下来感觉还可以
3.薪资
答:3 k / 一个月,上五休二
湖北(微创新)面经 30 mins线上面试1.说说 HashMap 和底层原理?
2.HashMap 是线程安全的吗?怎么实现线程安全的?
3.HashTable 和 ConcurrentHashMap 的区别?
4.HashMap 的扩容机制
5.谈谈 Spring 和其优势
6.讲讲 Spring AOP 实现原理
7.Spring Boot 自动装配原理
8.说说 Spring Boot 常用注解
9.说说索引,会多少说多少
10.聚簇索引和非聚簇索引是什么?有什么区别
11.什么是回表?什么时候会发 ...
Docker笔记
Docker笔记Docker初始项目部署问题大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:
依赖关系复杂,容易出现兼容性问题
开发、测试、生产环境有差异
Docker如何解决依赖的兼容问题的?
将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
将每个应用放到一个隔离容器去运行,避免互相干扰
Docker如何解决不同系统环境的问题?
Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包
Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行
Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
Docker应用运行在容器中,使用沙箱机制,相互隔离
总结:Docker是一个快速交付应用、运行应用的技术:
可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
运行时利用沙箱机制形成隔离容器,各个应用互不干扰
启动、移除都可以通过一行命令完成,方便快捷
Docker和容器Do ...
Java二级
Java二级冒泡排序、快速排序,直接插入排序在最坏的情况下,比较次数为n(n-1)/2次。
堆排序在最坏的情况下的比较次数为nlog2n次。
在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是O(log2n)
在任意一个二叉树中,叶子节点数总比度为二的节点数多一个。
算法一般由顺序,选择和循环三种控制结构组合而成。
不属于软件设计原则的是自下而上。
面向对象方法中最基本的概念是对象,它的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性好。
结构化程序设计可使程序结构良好、易读、易理解、易维护。
数据库技术的根本目标是要解决数据共享的问题。
内模式能够给出数据库物理存储结构与物理存取方法。
数据库设计包括概念设计和逻辑设计两个方面的设计内容。
关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。
索引属于内模式。
选择运算是一个一元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为f,则R满足f的选择运算可以写成:бf(R)。
SQL语言又称为 ...
Java 八股文
Java 八股文Java 基础基础概念与常识Java 语言的特点
简单易学
面向对象(封装、继承、多态)
安全性(Java语言提供了多种资源权限访问修饰符、限制程序直接访问操作系统资源)
可靠性(异常处理和自动内存管理机制)
跨平台性(依靠JVM,Java语言可以实现一次编译,处处运行的机制)
Java SE vs Java EE
Java SE:Java编程语言的标准版,包含支持了应用程序开发和运行的核心类库和虚拟机等核心组件,用于构建桌面应用程序和简单的服务器应用程序。
Java EE:Java编程语言的企业版,包含支持了企业级应用程序的开发和部署规范,如Servlet、JSP、JDBC、JPA等,用于构建企业级应用程序和 Web 应用。
JVM vs JDK vs JRE
JVM(Java virtual machine):Java 虚拟机,是运行 Java 字节码的虚拟机,JVM对于不同的操作系统有特定的实现,以保证相同的字节码文件给出相同的结果。
JDK(Java Development Kit):Java开发工具包。是提供开发者使用的Java SDK,能够创建和编译 J ...
OJ 项目笔记
OJ 系统最大的难点在于 判题系统
项目介绍用于在线评测编程题目代码的系统,能够根据用户提交的代码、出题人预先设置的题目输入和输出用例,进行编译
代码、运行代码、判断代码运行结果是否正确。
判题系统作为一个开放API提供给大家,便于开发者开发自己的O)系统。
初步需求
不能让用户随便引入包、随便遍历、暴力破解,需要使用正确的算法。=>安全性
判题过程是异步的=>异步化
提交之后,会生成一个提交记录,有运行的结果以及运行信息(时间限制、内存限制)
OJ 系统常用概念ac表示你的题目通过,结果正确
题目限制:时间限制、内存限制
题目介绍
题目输入
题目输出
题目输入用例
题目输出用例
普通测评:比对用例文件,管理员设置题目的输入和输出用例,比如我输入1,你要输出2才是正确的;交给判题机去执行用户的代码,给用户的代码喂输入用例,比如1,看用户程序的执行结果是否和标准答案的输出一致。
特殊测评(SPJ):管理员设置题目的输入和输出,比如我输入1,用户的答案只要是 > 0 或 < 2 都是正确的;特定程序,不是通过比对用例文件是否一致这种死板程序来检验 ...
2024上半年面经
MySQL 面试题1.什么是内连接、外连接、交叉连接?内连接:取两张表符合连接条件的记录
外连接:除取两张表符合连接条件的记录外,还取某张表或两张表中不满足连接条件记录
交叉连接:取两张表所有记录的一一对应
2.MySQL 的内连接、左连接、右连接有什么区别?内连接:返回两张表符合连接条件的记录
左连接:返回左表的所有记录和右表满足连接条件的记录,如果右表没有满足条件的记录,则以 NULL 填充
右连接:返回右表的所有记录和左表满足连接条件的记录,如果左表没有满足条件的记录,则以 NULL 填充
3.数据库的三大范式三大范式的作用是减少数据冗余,提高数据完整性
第一范式:确保表中每一列是不可分割的
第二范式:在第一范式的基础上,要求数据库表中的每一列和主键直接相关,而不能只与主键的某一部分相关
第三范式:在第二范式的基础上,消除非主键列对主键的传递依赖
4.varchar 与 char 的区别?
varchar 是不定长字符串,char 是定长字符串
varchar:插入数据是多长就按照多长存储,char:插入数据长度小于 char 的固定长度就用空格补齐
varchar 存取速度 ...
RabbitMQ——死信队列介绍和使用
死信和死信队列的概念什么是死信?简单来说就是无法被消费和处理的消息。一般生产者将消息投递到broker或者queue,消费者直接从中取出消息进行消费。但有时因为某些原因导致消息不能被消费,导致消息积压在队列中,这样的消息如果没有后续的处理就会变成死信,那么专门存放死信的队列就是死信队列。
注意:如果一个消息队列设置了过期时间,在队列过期后其中的消息并不会自动转发到死信队列中,而是会被系统丢弃或执行其他的操作。
什么是死信交换机?那么什么是死信交换机呢?死信交换机是指专门将死信路由到死信队列的交换机。
注意:死信交换机和普通交换机无任何区别,只是路由的消息类别不同。同理,死信队列和普通队列也无任何区别,仅仅是一个专门存放死信的队列而已。无论是死信交换机还是队列,它们的创建方法都和普通的交换机和队列一致,无非是名称和routingKey不同。
产生死信的原因根据官方文档,我们发现一般有三种场景会产生死信。
消息超过TTL,即消息过期
消息被nack或reject,且不予重新入队
队列达到最大长度
死信队列实战和应用死信队列的应用并不难,无非就是多定义了一个交换机、routin ...
Redis 面试题
Redis 面试题基础1.什么是 Redis?Redis 一款基于内存的 k/v (键值对)的非关系型数据库(nosql)。
2.Redis 能干什么?
缓存
计数器
排行榜
消息队列
限流器
分布式锁
社交网络(点赞、关注、共同关注列表、推送、下拉刷新)
3.Redis 有哪些数据结构?
字符串(String):缓存功能、计数、共享 Session、限速
哈希(Hash):缓存用户信息、对象
列表(List):消息队列、文章列表
集合(Set):标签、共同关注
有序集合(ZSet):排行榜
HyperLogLog(基数统计)
BitMap:签到
GEO:地理位置信息
4.Redis 为什么快?
基于内存,内存的读取速度是磁盘的上千倍,这是 Redis 读写速度快的根本原因
单线程模型:Redis 的命令执行是单线程的,因此在任何时候只有一个命令在执行,避免线程的切换和锁竞争带来的消耗
IO 多路复用:一个线程可以同时监听多个 IO 操作,当有 IO 事件发生时,会通知线程并处理这个事件,从而实现同时处理多个 IO 操作的能力
高效的数据结构:如 String、List、 ...
RabbitMQ笔记
消息队列1.1 MQ相关概念1.1.1 什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。
1.1.2 为什么要用MQ
流量消峰
比如一个系统1s只能处理一万个下单请求,但在高峰时1s内有2万个下单请求,这时候系统就会崩溃,此时就需要将请求转给MQ,达到消峰的目的。
缺点:请求到达MQ需要排队,导致用户在下单十几秒之后才收到下单成功的操作。性能差。
应用解耦
以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。当转变成基于消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当 ...