面试必看
风吹沙2019
这个作者很懒,什么都没留下…
展开
-
Java集合之面试必看
目录Java中的集合List和Set的区别List:集合中的对象线性方式储存,可以有重复对象,允许按照对象在集合中的索引位置检索对象。有序可重复。Set:集合中的对象不按特定方式排序(针对内存地址来说,即非线性),并且没有重复对象。它的有些实现类能对集合中的对象按特定方式排序。Set和hashCode以及equals方法的联系List 和 Map 区别Map:通过键值对进行取值...翻译 2019-01-03 15:11:10 · 111 阅读 · 0 评论 -
Java中集合和数组的区别
区别: 1)数组大小固定,存储数据类型单一(基本类型/引用类型); 2)集合大小可动态扩展,可存储各种类型的数据;联系: 1)数组转集合: Arrays.asList(数组); int[] arr = {1,3,4,6,6}; Arrays.asList(arr); for(int i=0;i<arr.length;i++){...原创 2019-01-03 14:36:35 · 956 阅读 · 1 评论 -
Sychronized和Lock的区别
Sychronized和Lock的区别:首先synchronized是java内置关键字,在jvm层面,Lock是个java类;synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()方法释放锁),否则...原创 2019-01-12 12:29:15 · 642 阅读 · 0 评论 -
Java的对象头和对象组成详解
Java对象保存在内存中时,由以下三部分组成:1,对象头2,实例数据3,对齐填充字节1,Mark WordMark Word记录了对象和锁有关的信息,当这个对象被synchronized关键字当成同步锁时,围绕这个锁的一系列操作都和Mark Word有关。Mark Word在32位JVM中的长度是32bit,在64位JVM中长度是64bit。Mark Word在不同的锁状态下存储...转载 2019-01-07 14:06:16 · 190 阅读 · 0 评论 -
Mysql数据库优化
Mysql数据库优化的方法:1)优化的查询语句绝大多数情况下,使用索引可以提高查询的速度,但如果SQL语句使用不恰当的话,索引将无法发挥它应有的作用。2)使用索引索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(), MIN()和ORDERBY这些命令的时候,性能提高更为明显。3)使用外键锁定表的方法可以维护数据...原创 2019-01-05 17:17:24 · 191 阅读 · 0 评论 -
联合索引最左匹配原则
如果有一个2列的索引(col1,col2),则已经对(col1)、(col1,col2)上建立了索引;如果有一个3列索引(col1,col2,col3),则已经对(col1)、(col1,col2)、(col1,col2,col3)上建立了索引;例如:组合索引(a,b)explain select * from test where a=1 and b=1;explain select ...转载 2019-01-05 17:05:24 · 31953 阅读 · 12 评论 -
聚集索引和非聚集索引的根本区别
根本区别聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致。聚集索引聚集索引表记录的排列顺序和索引的排列顺序一致,所以查询效率快,只要找到第一个索引值记录,其余就连续性的记录在物理也一样连续存放。聚集索引对应的缺点就是修改慢,因为为了保证表中记录的物理和索引顺序一致,在记录插入的时候,会对数据页重新排序。非聚集索引非聚集索引制定了表中记录的逻辑顺序,但是记录的物理...转载 2019-01-05 16:44:02 · 7439 阅读 · 2 评论 -
聚集索引、非聚集索引之概念篇
聚集索引聚集索引是一种特殊索引,使数据按照索引的排序顺序存放表中。实际上重组了表中的标准。当数据按值的范围查询时,聚集索引就显得特别有用。当大量数据修改的时候,不再适合使用聚集索引。1、建立聚集索引的思想大多数表都应该有聚集索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。在聚集索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在...转载 2019-01-05 16:37:27 · 499 阅读 · 0 评论 -
索引的类型
Mysql数据库索引类型一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|...原创 2019-01-05 16:17:53 · 305 阅读 · 0 评论 -
Mysql三种常见引擎的区别
Mysql数据库引擎Mysql常见的三中存储引擎为InnoDB、MyISAM、MEMORY。其区别提现在事物安全、存储限制、空间使用、插入数据的速度和对外键的支持上,具体如下:特性InnoDBMyISAMMEMORY事物安全支持不支持不支持对外建的支持支持不支持不支持存储限制64TB有有空间使用高低低内存使用高低高...转载 2019-01-05 14:42:34 · 8219 阅读 · 0 评论 -
Java中抽象类和接口的区别
Java中抽象类和接口的区别区别抽象类接口默认的方法可以有默认的实现方法接口完全抽象,不能有方法的实现变量抽象类可以使用任意的权限修饰符修饰变量接口所有的变量都是public static final关键字修饰的抽象方法抽象类中的抽象方法可以被public、protected修饰接口的方法默认为public abstract修饰构造器抽象类可...原创 2019-01-05 13:39:26 · 128 阅读 · 0 评论 -
Spring的事物管理
一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:1、获取连接 Connection con = DriverManager.getConnection()2、开启事务con.setAutoCommit(true/false);3、执行CRUD4、提交...原创 2019-01-04 15:50:34 · 153 阅读 · 0 评论 -
Java集合总结
集合体系(未完待续。。。)Collection(List和Set)List:(列表;实现了Iterable接口,有序,可以包含重复元素和null)ArrayList:线程不安全,底层是动态数组。在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以查找时较快。默认大小为10,增容50%。LinkedList:线程不安全,底层双向链表,每个节点都存储着上一...原创 2019-01-04 13:55:54 · 107 阅读 · 0 评论 -
Java集合
原:https://blog.csdn.net/striveb/article/details/82593768#HashMap 和 Hashtable 的区别Java中的集合Java中的集合主要分为value,key-value(Collection,Map)两种,存储值分为List和Set,存储为key-value得失Map。Collection接口中主要有这些方法:boolean a...转载 2019-01-03 16:22:19 · 127 阅读 · 0 评论 -
线程池专题
1、什么是线程池:java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。一个线程池包括以下四个基本组成部分:1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创...原创 2019-01-09 21:08:31 · 179 阅读 · 0 评论