没有前言

1、StringBuffer、String、StringBulider区别

String存储的是一个不可变的字符串常量保存在字符串常量池中如果修改String的值则会创建新的常量对象保存到常量池中

StringBuffer和StringBulider可以动态修改字符串的值并且不需要每次修改都创建对象节省时间以及空间。

StringBuffer是线程安全的StringBulider不是线程安全的会比StringBuffer快一点

 2、可以作为数组的类有哪些(问的是列表但是愣是没懂问的目的是什么)ArrayList和Vector,区别是什么,有什么特性

ArrayList和Vector都是对象类型的List而且底层都是数组实现的,Vector是线程安全的所以速度会慢点已经被淘汰了但是还是经常会被提起,他们的特性就是数组的特性 遍历索引很快但是插入删除这些改动操作会很慢因为要将剩下的移位

所以要插入删除多怎么办引入了LinkedList

LinkedList是双向链表为底层实现所以插入删除操作会快但是索引会很慢 ,要查找下一个元素的地址

3、由此引申出如果要兼顾两者优点需要使用什么列表

当时非常蒙,列表底层实现我记得就这两个后来面试关提醒了HashMap,才反应过来是想问HashMap。又讲了HashMap和HashTable的区别:HashMap不是线程安全的会快一点而且支持空的Key和多个空的Value,而HashTable是线程安全的,不支持空的键值对

 4、HashMap如果key是一个int类型的1会发生什么事情

当时以为问的是key必须是一个不可变的对象所以就忘记int是基本类型不是引用类型的事情了,后面经过提醒回答会进行装箱为Intger类型

5、 Git和SVN的区别

Git是分布式的,而Svn不是分布的,虽然Git也有一个集中版本库,但是每个git客户端都有一个本地的仓库,如果没有网络也可以往本地仓库进行commit操作,进行版本控制。等待有网络的时候再上传到服务端。

SVN只有一个中央版本库,如果中央版本库瘫痪所有成员都无法进行版本更新操作,但是Git中除下远程主要版本库每个成员都有一个版本库,如果主要版本库出现错误则可以现在本地库提交或者成员间互相提交。

SVN是集中版本库,每个成员做了什么其他人均可以知道

Git可以在本地另开分支,只要在这个分支做的操作不合并到主版本库中就不会影响到整个项目

 6、Git创建了一个文件想把他同步到远程服务器上怎么办(这个网上没有太多解释,与两位好友进行讨论之后又加上对一篇博客总结的见解,到时候有幸入职再详细问一下这个原理如果有偏差再修改)

个人觉得是提问的是Git同步指令的顺序怎么是最合理的

当时以为只是推上去,并没有想到会有冲突的事情所以给出的顺序是

pull 更新本地代码 在add commit 提交本地修改 push 同步到远端。

但是这样如果该文件和远端同样有的话就会产生错误,所以要先将本地修改提交到本地仓库 add commit 让本地知道自己这边有改动的地方,然后在pull将远端的代码同步到本地,这期间他会对比远端和本地有无冲突,如果有冲突会将冲突的地方进行标记,那些是自己的改动那些是他的改动

Updated upstream 和=====之间的内容就是pull下来的内容

====和stashed changes之间的内容就是本地修改的内容

。在修改之后确定没有冲突在push同步到远端。

个人觉得,如果改动地方是相同的话那么冲突是无法避免的,那么在有冲突的前提下一定要先add commit进行本地修改备份,这样就算pull下来有冲突了,也可以版本回退到之前的版本让自己知道哪些地方是自己的这样修改冲突也会很好修改。

所以顺序应该是 add commit pull 如果一切顺序再push

参考博客:https://www.cnblogs.com/baby123/p/6588378.html

7、个人的项目经历介绍:这块一定要提前组织好,因为临时说的磨磨唧唧的个人觉得会很影响整体效果。我就是语言组织能力不强的那种。介绍项目的时候很拖沓而且觉得还是有很多废话,也容易经常打绊子,兜兜转转的 。