MyISAM

已拿offer热乎乎的蚂蚁金服面经分享,建议收藏(Java岗、附答案)

回眸只為那壹抹淺笑 提交于 2020-05-06 09:13:41
前言: 由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。 笔者面的是阿里的Java研发工程师岗,面试流程是3轮技术面+1轮hr面。 1.意外的一面 一面的时候大概是3月12号,面完等了差不多半个月才突然接到二面面试官的电话。一面可能是简历面,所以问题比较简单。 ArrayList和LinkedList区别 ArrayList 是一个可改变大小的数组。当更多的元素加入到ArrayList中时,其大小将会动态地增长。内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组, LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList。 当然,这些对比都是指数据量很大或者操作很频繁的情况下的对比,如果数据和运算量很小,那么对比将失去意义。 什么情况会造成内存泄漏 在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点: 首先,这些对象是可达的,即在有向图中,存在通路可以与其相连; 其次,这些对象是无用的,即程序以后不会再使用这些对象。 如果对象满足这两个条件,这些对象就可以判定为Java中的内存泄漏

Mysql聚簇索引和非聚簇索引原理(数据库)

时光总嘲笑我的痴心妄想 提交于 2020-05-06 03:35:28
本文链接:https://blog.csdn.net/lisuyibmd/article/details/53004848 一、‘页’和操作系统的关系 ①为什么要有内存管理? 我们知道,一个进程完成他的功能,需要访问磁盘加载数据到内存然后等待进入cpu运算,因为数据量大小远远大于内存大小。因此提出虚拟内存概念。虚拟内存就是将程序用到的数据进行划分,暂时用不到的放到磁盘里,用到的放到内存里,操作系统中总是运行着不止一个进程,各个进程有优先级顺序,所以存在进程调度问题,进程的每次调度都会导致内存和磁盘数据置换,段式内存管理页式内存管理都是基于虚拟内存概念的具体内存管理解决方案。 ②什么是页式内存管理? 虚拟内存位于程序和物理内存之间,程序只能看见虚拟内存,再也不能直接访问物理内存。每个程序都有自己独立的进程地址空间,这样就做到了进程隔离。这里的进程地址空间是指虚拟地址。顾名思义,既然是虚拟地址,也就是虚的,不是现实存在的地址空间。既然我们在程序和物理地址空间之间增加了虚拟地址,那么就要解决怎么从虚拟地址映射到物理地址,因为程序最终肯定是运行在物理内存中的,主要有分段和分页两种技术。 分页机制就是把内存地址空间分为若干个很小的固定大小的页,每一页的大小由内存决定,就像Linux中ext文件系统将磁盘分成若干个Block一样,这样做是分别是为了提高内存和磁盘的利用率。

知名互联网公司校招 Java 开发岗面试知识点解析

时光怂恿深爱的人放手 提交于 2020-05-06 03:32:26
天之道,损有余而补不足,是故虚胜实,不足胜有余。 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向。在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点。 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JUC 包) JVM 内存管理 Java 8 知识点 网络协议相关 数据库相关 MVC 框架相关 大数据相关 Linux 命令相关 面试,是大家从学校走向社会的第一步。 互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 +1 轮 HR 面试。但是一些公司确实是没有 HR 面试的,直接就是三轮技术面。 技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。只要你回答的不是特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。 也就是说,一轮技术面试 = 基础知识和业务逻辑面试 + 算法面试。 在本篇文章中,我们主要从技术面试聊起。技术面试包括:业务逻辑和基础知识面试。 首先是业务逻辑面试 ,也就是讲项目。 面试官会对你简历上写的若干个项目其中之一拿出来和你聊聊。在期间,会针对你所做的东西进行深度挖掘。 包括:为什么要这么做?优缺点分析,假如重新让你做一次,你打算怎么做? 等等。这个环节主要考察我们对自己做过的项目(实习项目或者校内项目)是否有一个清晰的认识

mysql 触发器、流程控制、事务等

坚强是说给别人听的谎言 提交于 2020-05-06 03:13:25
视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 1、什么是视图 ​ 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2、为什么要用视图 ​ 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于查询,尽量不要修改视图中的数据 drop view teacher2course; 思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 ​ 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行

mysql之视图、触发器、事务、存储过程、内置函数、流程控制、索引

前提是你 提交于 2020-05-06 03:12:39
今日内容 视图 触发器 事务 存储过程 内置函数 流程控制 索引 视图 1、什么是视图 ​ 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2、为什么要用视图 ​ 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于查询,尽量不要修改视图中的数据 drop view teacher2course; 思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 ​ 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行

MySql数据库操作:创建数据库、删除数据库和数据库存储引擎

☆樱花仙子☆ 提交于 2020-05-05 19:50:02
声明:本文内容参考书籍《MySql入门很简单》 目录 1 创建数据库 2 删除数据库 3 数据库存储引擎 3.1 InnoDB 3.2 MyISAM 3.3 MEMORY 3.4 存储引擎的选择 首先数据库是指长期存储在计算机内、有组织的和可共享的数据集合。简而言之,数据库就是一个存储数据的地方。只是,其存储方式有特定的规律。这样就可以方便的处理数据。数据库的操作包括创建数据库和删除数据库。这些操作都是数据库管理的基础。 同时MySql中提到了存储引擎的概念。简而言之,存储引擎就是指表的类型。 数据库的存储引擎决定了表在计算机中的存储方式。 1 创建数据库 创建数据库用到的SQL语句为 CREATE DATABSE,语法形式如下: CREATE DATABASE 数据库名; 例如创建一个名为test的数据库 如上,创建数据库之后我们可以用SHOW DATABASES语句来查看当前有哪些数据库。 2 删除数据库 删除数据库通过语句DROP DATABASE实现,其语法形式如下: DROP DATABSASE 数据库名; 3 数据库存储引擎 通过: SHOW ENGINES \g; 可以查看MySql数据库支持的存储引擎。\g和;的含义一样,只不过会让显示更美观。显示如下: 其中,Engine是存储引擎名称,Support表示表明Mysql是否支持此数据存储引擎

SSM框架下的JAVA职称考试模拟系统

混江龙づ霸主 提交于 2020-05-05 19:01:29
今天和一个朋友共同完成了一个职称考试模拟系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架。我这个朋友知识有限,只会这个框架,哈哈,都是为了方便他。和往常一样选用简单又便捷的MYECLIPSE作为开发工具,这是一个 后台项目。这个系统的介绍是这样的:机考模拟系统为考生提供大量仿真试题,题型全面,覆盖各类考点,贴近考试,帮助考生提升应考能力!同时,网校会根据最新的考试大纲,不断更新系统中的模拟试题,让考生紧跟命题趋势,把握命题规律,为考试加分。,一个职称考试模拟系统应包含用户角色有管理员、用户。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。 总结得出该系统所有数据为:管理员(admin)、用户(yonghu)、题库(tiku)、答题记录(datijilu)、章节练习(zhangjielianxi) 管理员表 字段名 | 类型 | 属性 | 描述 id | INT ( 11 ) | PRIMARY KEY | 管理员id username | VARCHAR ( 255 ) | | 账号 password | VARCHAR ( 255 ) | | 密码 用户表 字段名 | 类型 | 属性 | 描述 id | INT ( 11 ) | PRIMARY KEY | 用户id xingming | VARCHAR ( 255 ) | | 姓名

MySQL经典面试题

北城余情 提交于 2020-05-05 16:50:16
1、MySQL的复制原理以及流程 (1)、复制基本原理流程 1 . 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2 . 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3 . 从:sql执行线程——执行relay log中的语句; (2)、MySQL复制的线程有几个及之间的关联 MySQL 的复制是基于如下 3 个线程的交互( 多线程复制里面应该是 4 类线程): 1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到slave; 2. Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay log; 3. Slave 上面的 SQL 线程,该线程负责读取 relay log 并执行; 4. 如果是多线程复制,无论是 5.6 库级别的假多线程还是 MariaDB 或者 5.7 的真正的多线程复制, SQL 线程只做 coordinator,只负责把 relay log 中的 binlog读出来然后交给 worker 线程, woker 线程负责具体 binlog event 的执行; (3)

python操作数据库(Mysql)

余生颓废 提交于 2020-05-05 14:45:56
原文地址:https://www.cnblogs.com/R-bear/p/7022231.html python DB-API介绍 1.python标准数据库接口为 python DB-API,python DB-API为开发人员提供了数据库应用标称接口 2.python数据库接口支持非常多的数据库,可以选择适合你项目的数据库:   MySQL   PostgreSQL   Microsoft SQL Server 2000   Oracle   Sybase 具体查看:https://wiki.python.org/moin/DatabaseInterfaces 不同的数据库,就需要下载不同的DB API模块,例如访问Oracle数据库和MySQL数据库,需要下载Oracle和MySQL数据库模块 DB-API是一个规范,它定义一个系列必须的对象和数据库存取方式,以便各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口. python的DB-API,为大多数数据库实现了接口,使用它连接各种数据库后,就可以使用相同的方式操作各种数据库 通用步骤: 1.引入模块 2.获取与数据库的连接 3.执行SQL语句和存储过程 4.关闭数据库连接 什么是MySQLdb? MySQLdb是用于python连接Mysql数据库的接口,它实现了python数据库API规范V2.0

MySQL系列--3.数据类型和连接查询

放肆的年华 提交于 2020-05-05 13:52:30
1、存储引擎 数据创建,查询,更新和删除操作都是通过数据引擎来进行的。不同的存储引擎存储限制不同,支持不同的索引机制等。 查询数据库支持的存储引擎 MySQL 5.7.2支持的存储引擎有:InnoDB,MRG_MYISAM,MEMORY,BLACKHOLE,MyISAM,CSV,ARCHIVE,PERFORMANCE_SCHEMA,FEDERATED。默认的存储引擎是InnoDB。 SHOW ENGINES; mysql> SHOW ENGINES; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | InnoDB | DEFAULT | Supports transactions