2018面试总结

2018面试总结

一、JAVA基础篇

1、String s = new String("abc");创建了几个对象?

答:两个,一个字符对象,一个字符对象引用对象;

2、打印结果

String s1 = "abcde";
String s2 = "abc";
String s3 = "de";
String s4 =  new String("de");
String s5 = "abc"+"de";
System.out.println(s1==(s2+s3));
System.out.println(s1==(s2+s4));
System.out.println(s1==s5);

答:false、false、true    (字符串常量存储在jvm常量池中。创建字符串时,先看常量池中是否已经存储,存在则直接使用,不创建新对象);

3、以下数据哪些相等 ==

Integer a=100;
Integer b=100;
Integer c=new Integer(100);
Integer d=1000;
Integer e=1000;
Integer f=new Integer(1000)

答:a==b true;

4、Exception 与 RuntimeException

答:

了解Exception类图。RuntimeException 集成 Exception ,公共父类Throwable。常见的RuntimeException;

Exception必须捕获它的checked exception,不然会一直传递下去

RuntimeException 是运行时异常,编译期不强制checked,如果出现RuntimeException,那么一定是程序员的错误。

5、ArrayList、LinkedList和Vector的区别

答:ArrayList与Vector底层使用数组结构,区别在于线程安全方面:Vector线程安全,是同步的;扩容时Vector增长为原来的一倍,而ArrayList是原来的一半;

LinkedList使用链表结构,在插入和删除上较ArrayList快,但在查找较ArrayList慢;

6、HashMap和Hashtable的区别

答:线程安全方面:Hashtable线程安全,是同步的;HashMap运行key和value为空

7、hashCode()与equal()方法,相等问题;

答:hashCode相等,equal不一定相等;equal相等hashCode一定相等;

详细参考:https://blog.csdn.net/ren7753366/article/details/80757906

8、常用线程池;

答:https://blog.csdn.net/ren7753366/article/details/80758394

9、JAVA并发工具包java.util.concurrent理解,最好阅读源码,理解其实现原理;

参考:https://blog.csdn.net/defonds/article/details/44021605/

10、jvm内存模型及垃圾回收

未完待续。。。。。。

二、数据库篇(MYSQL)

1、mysql存储引擎,优缺点,使用场景

答:参考:https://blog.csdn.net/ren7753366/article/details/80761489

2、事务特性

答:

原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。

一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。

隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。

持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。

事务隔离级别

脏读

不可重复读

幻读

读未提交(read-uncommitted

不可重复读(read-committed

可重复读(repeatable-read

串行化(serializable

3、并发问题

1)脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

2)不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

3)幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

4、事务隔离级别

事务隔离级别

脏读

不可重复读

幻读

读未提交(read-uncommitted

不可重复读(read-committed

可重复读(repeatable-read)(默认级别)

串行化(serializable

5、索引类型,主键和唯一索引区别

答:普通索引:

唯一索引:与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一

主键索引:一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引;

组合索引:指多个字段上创建的索引,使用组合索引时遵循最左前缀集合

全文索引:主要用来查找文本中的关键字,而不是直接与索引中的值相比较

6、索引的优缺点

答:

1)虽然索引大大提高了查询速度,同时却会降低更新表的速度,因为更新表时要保存索引文件;

2)占用磁盘空间,一般不严重,除创建了多种组合索引;重复字段组合索引会降低查找速度,因为有查找使用索引的过程;

7、InnoDB行级锁实现

答:InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁

8、未完待续。。。。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值