![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Java面试
文章平均质量分 78
未来谁可知
这个作者很懒,什么都没留下…
展开
-
每日十道面试题(十一)
1.请问 ArrayList、HashSet、HashMap 是线程安全的吗?如果不是怎么获取线程安全的集合? 通过以上类的源码进行分析,每个方法都没有加锁,显然都是非线程安全的。在集合中Vector 和HashTable是线程安全的。打开源码会发现其实就是把各自核心方法添加上了synchronized 关键字。Collections工具类提供了相关的 API,可以让上面那3个不安全的集合变为安全的。 Collections.synchronizedCollection(c); Collections.sy原创 2020-05-13 15:34:09 · 215 阅读 · 0 评论 -
每日十道面试题(十)
1.throw 和 throws 的区别? ● throw: throw 语句用在方法体内,表示抛出异常,由方法体内的语句处理。 throw是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行throw一定是抛出了某种异常。 一般自定义异常我们也用throw new 类来抛出 ● throws: throws语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。 throws主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。 ● throws表示出现原创 2020-05-12 08:57:18 · 414 阅读 · 0 评论 -
每日十道面试题(九)
1.索引的作用?和它的优点缺点是什么? 索引就一种特殊的查询表,数据库的搜索可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。一般唯一、不为空、经常被查询的字段适合建索引 ps:Mysql里面有两种数据库引擎,一种是MyISAM,他用的是B树,行级锁。另一种Innodb 他是B+树,支持行锁表锁,而索引的话默认最多16个,因为不是创的越多越好,而原创 2020-05-11 08:11:29 · 536 阅读 · 5 评论 -
每日十道面试题(八)
每天进步一点 1.什么是浅拷贝,什么是深拷贝 浅拷贝你可以看成是引用拷贝,就是多了个引用指向同一个内存地址, 深拷贝就是对象拷贝,你自己复制了一个内存来存放,然后新引用指向新地址 比如你盗版别人视频,如果浅拷贝,你只盗版了一个链接地址,别人哪天视频下架了,你链接过去也看不到 如果深拷贝的话,你下载了别人的视频,然后自己发布,给别人 的地址就是自己的盗版视频地址,跟原作者怎么改动视频无关,但是后续更新你要一次次克隆 @Override protected Object clone() thro原创 2020-05-10 11:52:51 · 1197 阅读 · 2 评论 -
每日十道面试题(七)
每日十道面试题(七) 每天看一看小知识增加一下 1. 谈一谈Springboot的启动类注解 @springbootApplication其实是一个复合注解,它其实里面由==@SpringbootConfiguration+@EnableAutoConfiguration+@ComponentScan==三大打手,第一个其实就是标明主启动类是一个配置类,因为点进去你会发现它就是一个@Configuration的注解,这里先要声明了解一个javaConfig配置的形式@Configuration+@Bean可原创 2020-05-09 12:08:41 · 477 阅读 · 0 评论 -
每日十道面试题(六)
1.访问修饰符public,private,protected,以及不写(默认)时的区别? 修饰符 当前类 同包 子类 其他包 public √ √ √ √ protected √ √ √ x default √ √ x x private √ x x x 类成员不写修饰符默认为default,私有的只能当前类,public所有类,protected可以子类对不是同一包中的没有父子关系的类相当于私有,default默认对不同包不行 2.int和Integer有什么区别? 首先原创 2020-05-08 18:16:46 · 344 阅读 · 0 评论 -
每日十道面试题(五)
每日十道面试题(五) 这两天的面试题都很硬核阿,掌握即增添实力,有期待哪方面的面试题可以下方评论,尽量安排 后期还会规划算法方面的面试题 1.volatile有什么用?讲一下它的特点 它能保证数据可见性,但不保证原子性,这一点在JMM上面有很好的体现,工作内存中数据的共享就需要数据可见,但是不保证原子性,这个需要加锁或者使用原子类,原子引用 2.它在内存上给数据加上两个内存屏障,防止指令重排 2....原创 2020-05-07 12:17:19 · 438 阅读 · 0 评论 -
每日十道面试题(四)
每日十道面试题(四) 1. 讲一下http和https的区别? 主要区别就是https比较安全,毕竟收费,它需要申请一个证书,然后根据你支持的加密算法进行加密传输,而http都是明文传输,不太安全, http默认端口80,https默认为443,两者连接方式不同 http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议...原创 2020-05-06 20:54:43 · 372 阅读 · 0 评论 -
每日十道面试题(三)
每日十道面试题(三) 1. 讲一下spring的ioc的理解? ioc又叫做控制反转,我们不再需要手动的去实例化对象,而是把我们设计好的bean交给ioc容器去控制,依赖注入就是很好的实现了控制反转,不再自己去获取资源**,ioc控制了外部资源的获取包括对象资源和常量数据那些都可以从容器获取**,有点像代理模式,我们把类A交给spring,spring管理所有对象,你怎么创建我并不关心,但是我要用...原创 2020-05-05 16:27:56 · 326 阅读 · 0 评论 -
每日练手10道面试题(二)
每日练手10道面试题(二) 1. 为什么需要pc寄存器,也就是程序计数器 首先它里面是没有垃圾和缓存的,它的主要功能是控制程序流程运转,还有最重要的是指明了下一条字节码指令指向的地方,主要是执行引擎中的解释器中需要通过改变程序计数器的值来决定下一次执行的指令,如果没有的话,线程切换就乱套了 2. pc寄存器为什么被设定为线程私有? 首先理解线程私有,每个线程各有一个计数器,如果没有区分开私有的话,...原创 2020-05-04 17:00:21 · 230 阅读 · 0 评论 -
每日练手10道面试题(一)
每日练手面试题 1.Statement和PreparedStatement有什么区别?哪个性能fan更好? 前者可以防止Sql注入,会给变量加上单引号 每次预编译,会先往缓存里面找有没有之前执行过的,有就重复结果,没有再重新执行,并存入缓存,所以前者效率更快一些 前者可以执行带参数的sql语句 2.说出数据连接池的工作机制是什么? 这个你可以想象成木桶装水原理,连接数量主要由最短的连接数量决定...原创 2020-05-03 19:17:18 · 542 阅读 · 2 评论 -
面试手写生产者和消费者怎么办?我教你三招
首先了解什么算生产者消费者? 生产者生产产品,消费者消费, 有产品可以消费,无则不可以要生产, 生产一个消费一个 第一种就是最经典的synchronized版本 //生产10个消费10个 //这一种只需要在生产和消费方法加上锁就好了,然后生产完即通知消费即可,如果num为0则消费停止然后生产,num=1则反之 public class Test1 { public static void m...原创 2020-03-14 18:02:58 · 165 阅读 · 0 评论