首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2020 java实习生面试题总结「建议收藏」

(Runnable runnable)构造方法来返回线程实例。...get就可以获取到Callable任务返回的Object了,再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了 3.谈谈你对线程池的了解?...mybatis的一级缓存是SQLSession级别的缓存,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据,不同的SqlSession之间缓存数据区域(HashMap...这意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。List中可以包含的最大元素数量是4294967295。 应用场景:1.最新消息排行榜。...集合最大的优势在于可以进行交集并集差集操作。Set可包含的最大元素数量是4294967295。 应用场景:1.利用交集求共同好友。2.利用唯一性,可以统计访问网站的所有独立IP。

74030

一篇文章带你玩转PostGIS空间数据库

这两张表中的内容相当于元数据) 第一张表spatial_ref_sys —— 定义了数据库已知的所有空间参照系统,稍后将对其进行更详细的说明。...1.空间索引 空间索引是PostGIS的最大价值之一。在前面的示例中,构建空间连接需要对整个表进行相互比较。...这样做的代价很高:连接两个各包含10000条记录的表(每个表都没有索引)将需要进行100000000次比较;如果使用空间索引,则比较次数可能低至20000次 创建索引、删除索引就不多BB了。...比较数据 比较坐标需要基于他的SRID(严谨的说应该是空间参考系统),如果不是同一个参考系统,比较没有意义,会返回错误,比如如下实例。...ST_IsValid(geometry)函数可以用于检测几何图形的有效性。 可以修复无效的图形,坏消息是:没有100%确定的方法来修复无效的几何图形。

7.6K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql基础知识(3)

    MySQL中有哪些重要的日志文件? 错误日志: 记录MySQL服务器运行过程中的错误信息。 查询日志(General Log): 记录数据库执行的所有命令。...(简单又有效的方法)PreparedStatement 采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。...,在后端API层统一校验 下面是在开发过程中可以防范SQL 注入的一些方法: 1.避免使用动态SQL 避免将用户的输入数据直接放入 SQL 语句中,最好使用准备好的语句和参数化查询,这样更安全。...I:range:索引范围扫描,常见于使用>, J:index_merge:表示查询使用了两个以上的索引,最后取交集或者并集,常见and ,or的条件使用了不同的索引,官方排序这个在ref_or_null...这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。 1.2尽可能的使用 varchar 代替 char 变长字段存储空间小,可以节省存储空间。

    8911

    PostgreSQL基础知识整理

    在每个表上的DELETE(删除)具有相同的效果,但是,因为它没有实际扫描的表,它的速度快。...VALUES子句或查询的值都与显式或隐式的列列表从左到右。 如果要添加表中的所有列的值,可能不需要在SQL查询中指定列(次)名称。但要确保表中是在相同的顺序的列值的顺序。...,则返回行; LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行; RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行; FULL JOIN: 只要其中一个表中存在匹配,就返回行...UNION是并集,而INTERSECT是交集。INTERSECT ALL则包含交集后的重复数据。...这个函数在不同的数据库中有不同的名称: Oracle: LTRIM(), RTRIM() SQL Server: LTRIM(), RTRIM() MySQL: TRIM(), LTRIM(), RTRIM

    3.6K10

    详解SQL集合运算

    为什么使用集合运算: 1.在集合运算中比联接查询和EXISTS/NOT EXISTS更方便。 在阅读下面的章节时,我们可以先把环境准备好,以下的SQL脚本可以帮助大家创建数据库,创建表,插入数据。...后面会提供一种用于T-SQL实现的替代方案; (2)假设Query1返回 m 行,Query2返回 n 行,如果行R在Query1中出现了x次,在Query2中出现了y次,则行R应该在INTERSECT...3.EXCEPT ALL集合运算 (1)ANSI SQL支持带有ALL选项的EXCEPT集合运算,但SQL Server2008现在还没有实现这种运算。...后面会提供一种用于T-SQL实现的替代方案; (2)假设Query1返回 m 行,Query2返回 n 行,如果行R在Query1中出现了x次,在Query2中出现了y次,且x>y,则行R应该在EXCEPT...如定义一个基于该TOP查询的表表达式,然后通过一个使用这个表表达式的外部查询参与集合运算。 七、练习题 1.写一个查询,返回在2008年1月有订单活动,而在2008年2月没有订单活动的客户和雇员。

    2.3K80

    【化解数据结构】详解集合结构,并实现一个集合

    集合有哪些方法 实现一个集合 集合有哪些操作方式 LeetCode 实战 碎碎念 在之前的文章中,我们学习了 3 种线性结构,接下来我们需要学习的集合,我更倾向于把它称作是一个容器,它有着十分强大的方法和效率...false } 在这里先通过 has 方法来判断是否有这个值,有的话采用 delete 删除元素,没有提示未找到 5....,遍历添加到新的集合中,对传入的数组也是如此 最后返回新集合 注意噢,由于我们对 values 封装的时候,没有预留参数,因此我们在转化 otherSet 的时候需要使用 otherSet.values...实现交集操作 交集操作也就是:返回两个集合中的相同元素组成的新集合 实现思路 新建一个需要返回的集合,同时接收一个集合 同样的转化为数组来进行操作 取一个集合来遍历,拿到的元素在另一个集合中用 has...来判断,另一个集合中有没有这个值,有的话说明是公共存在的,添加到新的集合中 你知道这样实现的时间复杂度是多少吗?

    39710

    SQL教程:集合

    SQL刷题专栏 SQL145题系列 集合的定义 集合是由一个和多个元素构成的整体,在SQL中的表就代表着事实集合,而其中的查询就是在集合的基础上生成的结果集。...SQL的集合包括交集(INTERSECT),并集(UNION),差集(EXCEPT)。 交集INTERSECT 可以对两个或多个结果集进行连接,形成“交集”。...返回左边结果集和右边结果集中都有的记录,且结果不重复(这也是集合的主要特性) 交集限制条件 子结果集要具有相同的结构。 子结果集的列数必须相同 子结果集对应的数据类型必须可以兼容。...返回左边结果集合中已经有的记录,而右边结果集中没有的记录。 差集限制条件 子结果集要具有相同的结构。 子结果集的列数必须相同 子结果集对应的数据类型必须可以兼容。...City2 结果如下: 我们看到,因为北京和上海在两个表都存在,差集为了只显示左表中有的,而右表中没有的,就把这两个给过滤掉了。

    9000

    《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    例如,下面请求返回在2007年2月12日下过订单的客户,以及他们的订单。同时也返回在2007年2月12日没有下过订单的客户。...,不能独立地调用它   例如下面的查询会返回每个客户的订单记录中订单ID最大的记录: select custid, orderid, orderdate, empid from sales.Orders...4.2 INTERSECT 交集运算 ?   在T-SQL中,INTERSECT集合运算对两个输入查询的结果取其交集,只返回在两个查询结果集中都出现的行。   ...这里需要说的是,集合运算对行进行比较时,认为两个NULL值相等,所以就返回该行记录。 4.3 EXCEPT 差集运算 ?   在T-SQL中,集合之差使用EXCEPT集合运算实现的。...因此,这个查询的含义是:返回没有出现在员工地址和客户地址交集中的供应商地址。

    2K51

    【化解数据结构】详解集合结构,并实现一个集合

    集合有哪些方法 实现一个集合 集合有哪些操作方式 LeetCode 实战 碎碎念 在之前的文章中,我们学习了 3 种线性结构,接下来我们需要学习的集合,我更倾向于把它称作是一个容器,它有着十分强大的方法和效率...false } 在这里先通过 has 方法来判断是否有这个值,有的话采用 delete 删除元素,没有提示未找到 5....,遍历添加到新的集合中,对传入的数组也是如此 最后返回新集合 注意噢,由于我们对 values 封装的时候,没有预留参数,因此我们在转化 otherSet 的时候需要使用 otherSet.values...实现交集操作 交集操作也就是:返回两个集合中的相同元素组成的新集合 实现思路 新建一个需要返回的集合,同时接收一个集合 同样的转化为数组来进行操作 取一个集合来遍历,拿到的元素在另一个集合中用 has...来判断,另一个集合中有没有这个值,有的话说明是公共存在的,添加到新的集合中 你知道这样实现的时间复杂度是多少吗?

    29730

    数据库常见面试题(附答案)

    2.数据库隔离级别 多个事务读可能会道理以下问题 脏读:事务B读取事务A还没有提交的数据 不可重复读:,一行被检索两次,并且该行中的值在不同的读取之间不同时 幻读:当在事务处理过程中执行两个相同的查询...3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素 10.为什么使用B+Tree 索引查找过程中就要产生磁盘I/O消耗,主要看IO次数,和磁盘存取原理有关。...主键索引 它是一种特殊的唯一索引,不允许有空值。 全文索引 针对较大的数据,生成全文索引很耗时好空间。...2、分布式; 优点 无需经过sql层的解析,读写性能很高 基于键值对,数据没有耦合性,容易扩展 存储数据的格式:nosql的存储格式是key,value形式 缺点 不提供sql支持 22.数据库中join...2.inner join A,B有交集的记录 3.cross join (笛卡尔积) A中的每一条记录和B中的每一条记录生成一条记录 例如A中有4条,B中有4条,cross join 就有16条记录

    3.2K50

    AnalyticDB_分布式分析型数据库

    对于记录量特别⼤的表,从存储空间和insert性能考虑,⼀定要减少主键的字段数。在之前的公司,有用多个列的MD5值来作为主键的。...对于包含聚集列(单块中有多条有效数据)或者内存资源较为充⾜情况下,适合采⽤较⼤的块⼤⼩(超过或等于32760);反之如果没有聚集列,同时查询结果的列个数⼜特别多时,建议设置较⼩的块⼤⼩。...交集:Intersect & Intersect distinct(交集后去重):返回两个查询结果的交集 并集:Union All & Union 差集:Minus :(返回仅存在于左查询结果集而不在右查询结果集的数据行...对于实时更新表,如果需要更新某行记录中的某些字段,您可通过 insert into 语句,并以主键覆盖的方法来实现。...如果表记录数特别大,从存储空间和 INSERT 性能考虑,一定要减少主键的字段数。 ​ 最主要的还是要从业务角度确保生成的主键在该表能代表唯一值。

    1.9K20

    神奇的 SQL 之性能优化 → 让 SQL 飞起来

    ] EXISTS 返回的结果是相同的,但是两者用于子查询时,EXISTS 的速度会更快一些     假设我们要查询有充值记录的顾客信息,SQL 该怎么写?     ...SQL 中有 UNION 、 INTERSECT 、 EXCEPT 三个集合运算符,分表代表这集合运算的 并集、交集、差集     默认情况下,这些运算符会为了排除掉重复数据而进行排序 ?...例如: SELECT MAX(customer_id) FROM tbl_recharge_record;     会通过索引: idx_c_id 进行扫描,找出充值记录中最大的顾客ID     这种方法并不是去掉了排序这一过程...,就能够减轻排序的负担 有效利用索引       WHERE 子句的条件里可以使用索引       HAVING 子句是针对聚合后生成的视图进行筛选的,但是很多时候聚合后的视图都没有继承原表的索引结构...视图是非常方便的工具,我们在日常工作中经常使用     但是,如果没有经过深入思考就定义复杂的视图,可能会带来巨大的性能问题     特别是视图的定义语句中包含以下运算的时候,SQL 会非常低效,执行速度也会变得非常慢

    95720

    提速银行用户画像客群交集计算200+倍

    客户的每个维度的取值都是唯一的,每个客户一条记录即可存储,一亿个客户是一亿条记录。维度没有层次关系,维度的属性一般是几个到几十个。比如:性别的属性是两个,年龄段的属性是十几个。...中有个JOIN可能拖累计算性能,但如果把两个大表行JOIN成一个宽表,那么相同的维度值会出现十倍以上的冗余,查询速度还会更慢。...这种算法称为游标前过滤,可以有效减少数据的读取量。第三步,选择技术路线。只有个别商用数据库的SQL能支持位运算,但又和整个技术体系不相配,强行采用会导致非常繁琐的架构。...兼容 SQL 确实能让用户更容易上手,但受制于理论限制的 SQL 却无法实现大多数高性能算法,眼睁睁地看着硬件资源被浪费,还没有办法改进。SQL 不应是大数据计算的未来。...正在为 SQL 性能优化头疼的同学们,可以和我们一起在乾学院探讨!

    10110

    第36次文章:数据库查询语句

    发生原因:没有有效的连接条件。 如何避免:添加有效的连接条件。 3、分类 (1)按年代分类,分别是1992年和1999年产生的标准。 sql92标准:仅仅支持内连接。...在内连接的中,最后显示出来的属于三张表的交集部分,如果有两张表的关联条件不匹配的时候,那么这条记录就不会显示出来。...【outer】 交叉连接:cross 2、内连接 (1)特点 表的顺序可以调换 内连接的结果=多表的交集 n表连接至少需要n-1个连接条件 (2)分类 等值连接、非等值连接、自连接 (3)示例 在sql92...在其他的条件语法上,与sql92没有区别。 3、外连接 应用场景:用于查询一个表中有,另一表没有的记录。...full join 两边都是主表,左外和右外交换两个表的顺序,可以实现同样的效果。 全外连接=内连接的结果+表1中有但表2中没有的+表2中有但表1中没有的。

    1.7K30

    浅谈mysql分区、分表、分库

    HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。...结果: 每个表的结构都一样; 每个表的数据都不一样,没有交集; 所有表的并集是全量数据; 场景:系统绝对并发量并没有上来,只是单表的数据量太多,影响了SQL效率,加重了CPU负担,以至于成为瓶颈。...结果: 每个表的结构都不一样; 每个表的数据也不一样,一般来说,每个表的字段至少有一列交集,一般是主键,用于关联数据; 所有表的并集是全量数据; 场景:系统绝对并发量并没有上来,表的记录并不多,但是字段多...结果: 每个库的结构都一样; 每个库的数据都不一样,没有交集; 所有库的并集是全量数据; 场景:系统绝对并发量上来了,分表难以根本上解决问题,并且还没有明显的业务归属来垂直分库。...结果: 每个库的结构都不一样; 每个库的数据也不一样,没有交集; 所有库的并集是全量数据; 场景:系统绝对并发量上来了,并且可以抽象出单独的业务模块。 分析:到这一步,基本上就可以服务化了。

    1.4K10

    MySQL性能优化(六):常见优化SQL的技巧

    而在重构SQL时,一般都有一定方法技巧可供参考,本文将介绍如何通过这些技巧方法来重构SQL。...在程序应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。 单表查询效率高于多表复杂查询。 减少冗余记录的查询。...在程序应用层关联,意味着对于某条记录应用只需要查询一次,而在数据库中做关联查询,则可能需要重复地访问一部分数据记录。从这点来看,这样的重构还可能减少网络和内存的消耗。...当查询命中该缓存,MySQL会like返回结果,跳过了解析、优化和执行截断。 这是提高查询性能最有效的方法之一,而且这是被MySQL引擎处理的,通常MySQL默认是不开启查询缓存的,需要手动开启。...可以设置OFF、ON、DEMAND,DEMAND表示只有在查询语句中明确写入sql_cache的语句才放入查询缓存。 query_cache_size 查询缓存使用的总内存空间,单位是字节。

    1.6K50

    聊聊sql优化的15个小技巧

    这时如果想查一下,所有有效的用户下过的订单列表。...每批只查500条记录,最后把查询到的数据汇总到一起返回。 不过这只是一个临时方案,不适合于ids实在太多的场景。...8 高效的分页 有时候,列表页在查询数据时,为了避免一次性返回过多的数据影响接口性能,我们一般会对查询接口做分页处理。...而join使用最多的是left join和inner join。 left join:求两个表的交集外加左表剩下的数据。 inner join:求两个表交集的数据。...说实话,sql语句没有走索引,排除没有建索引之外,最大的可能性是索引失效了。 下面说说索引失效的常见原因: 如果不是上面的这些原因,则需要再进一步排查一下其他原因。

    74230

    史上最强最常用SQL语句大全【超详细注释】

    ; 计算总和 -- 计算orders表中amount列的总和 SELECT SUM(amount) FROM orders; 计算最大值和最小值 -- 计算users表中age列的最大值 SELECT...子查询的结果是单行单列的 -- 查询年龄最大的用户 SELECT * FROM users WHERE age = (SELECT MAX(age) FROM users); -- 查询订单金额最大的订单的用户信息...A: INNER JOIN更明确地表达了连接操作,有时在复杂查询中可以提高可读性和维护性。此外,某些数据库系统对INNER JOIN的优化效果更好。 Q: 什么是左外连接和右外连接的主要区别?...A: 左外连接(LEFT JOIN)返回左表的所有记录和右表的交集部分,右外连接(RIGHT JOIN)返回右表的所有记录和左表的交集部分。 Q: 如何选择合适的子查询方式?...本文详细介绍了常用的SQL语句,通过丰富的案例和详细注释帮助您深入理解每个语句的使用方法。 未来展望 随着数据库技术的不断发展,SQL 语句和数据库操作的方式也在不断演变。

    62120

    聊聊sql优化的15个小技巧

    这时如果想查一下,所有有效的用户下过的订单列表。...每批只查500条记录,最后把查询到的数据汇总到一起返回。 不过这只是一个临时方案,不适合于ids实在太多的场景。...8 高效的分页 有时候,列表页在查询数据时,为了避免一次性返回过多的数据影响接口性能,我们一般会对查询接口做分页处理。...而join使用最多的是left join和inner join。 left join:求两个表的交集外加左表剩下的数据。 inner join:求两个表交集的数据。...说实话,sql语句没有走索引,排除没有建索引之外,最大的可能性是索引失效了。 下面说说索引失效的常见原因: image.png 如果不是上面的这些原因,则需要再进一步排查一下其他原因。

    8.7K52
    领券