面试题小结3

题1:ArrayList 和LinkList的区别?

答:ArrayList 底层是一个数组,那么他的查询速度 比较快,但是在删除插入,修改
速度偏慢,因为数组是一串连续的内存空间,那么删除插入,就牵扯到内存的偏移或移动。

LinkList :底层是一个链表,那么他的查询速度就会比较慢,插入和删除速度就偏快,也就是说,链表没固定顺序,没索引所以就查询慢,我们在插入删除时,知道改变引用方向地址发生改变就可以,没有牵扯到内存移动。

那么两个集合的使用场景:用于查询时 选择ArrayList 用于 删除,插入 选择LinkList
面试题小结3
题2:hashMap 和 hashTable 的区别?

相同点:都是使用key-value 存储数据的

区别:1.hashMap当中 null 是可以作为 key或者value的,而且这个key重复之后是可覆盖的,相反hashTable是不行的;

2.HashMap 是线程不安全的,速度比较快,HashTable 是线程安全的 速度就比较慢 ,那么如果兼容两者 就可以用
concurrentHashMap 即速度快,又线程安全;

概要:把一个map分为了多个
小的hashTable 这样呢 相比之前
不但线程安全了,速度也提高了很多倍;
面试题小结3

题3:在创建一个上传文件的工具类时,用字节流还是字符流?

答:我们在上传文件时不能完全确定内容全部为字符,所以呢,内容包括图片,音乐,图像,就需要用字节流,保证数据的准确性;

面试题小结3
JVM 小结:

Java监视和管理控制台

我们用到的是jdk 里面一个bin目录下的
启动文件,jconsole.exe 直接cmd 输入 jsonsole 运行 到达界面 :进行连接
面试题小结3

面试题小结3

上面只是基础了解,怎么看的,怎么监视的,后面会深入更新;

我们也可以自己模拟一下,看一下内存 的变化,不同内存池的变化:

写一个死循环 ,期间要设置线程休眠5秒,sleep , 直接cmd 执行jconsole 连接我们已经运行的线程,连接 就可以开始监控,可以加入 byte[ ]数组增大内存,看其变化;

Java之父 :詹姆斯.高斯林

Oracle 公司,

经典的java一句话:write
once run anywhere

Java ee 面向页面 java se 企业 java me 移动