前言
社长,一个爱学习,爱分享的程序猿,始终相信,付出总会有回报的。 知识改变命运,学习成就未来。爱拼才会赢!
程序猿学社的GitHub,已整理成相关技术专刊,欢迎 Star:。 https:// github.com/ITfqyd/cxyxs
社长,4年api搬运工程师,之前做的都是一些框架的搬运工作,做的时间越长,越发感觉自己技术越菜,有同感的社友,可以在下方留言。现侧重于java底层学习和算法结构学习,希望自己能改变这种现状。
为什么大厂面试,更侧重于java原理底层的提问,因为通过底层的提问,他能看出一个人的学习能力,看看这个人的可培养潜力。随着springboot的流行,大部分的开发,起步就是springboot。也不看看springboot为什么简单?他底层是如果实现的。为什么同样出来4年,工资差别都很大?这些问题都值得我们深思(对社长自己说的)。
api工程师,顶天了,最多达到某些公司中级工资上限,很难突破高级这道坎。希望我们大家成就更好的自己。回想起往事,不会后悔。
1 每日一面:
面试官隔壁小王:自我介绍一下
社长:面试官,您好!我叫社长….
面试官隔壁小王:你说说如何实现一个单例?都有几种实现方式
社长: 我知道两种,一种是懒汉式,还有一种饿汉式。
懒汉式:
package com.fyqd.test; public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
![d159c5aafb214ac2d0dca3a38d528aaf.png](https://i-blog.csdnimg.cn/blog_migrate/d08e94fed0612a97089066065e7c79c8.png)
饿汉式:
package com.fyqd.test; /** * Description: * Author: 程序猿学社 * Date: 2020/1/11 23:46 * Modified By: */ public class HungrySingleton { private static HungrySingleton instance = new HungrySingleton(); private HungrySingleton (){} public static HungrySingleton getInstance() { return instance; } }
![d159c5aafb214ac2d0dca3a38d528aaf.png](https://i-blog.csdnimg.cn/blog_migrate/d08e94fed0612a97089066065e7c79c8.png)
面试官隔壁小王:不错,能回答上来二种。实际上还有很多种。你回去后,可以去了解一下。
社长:嗯嗯,我回去了解一下。
![b4c17f5ac13f97989393cac1b30930aa.png](https://i-blog.csdnimg.cn/blog_migrate/5ef6e2aa252662d0ce43c7a80fc2374e.png)
![d159c5aafb214ac2d0dca3a38d528aaf.png](https://i-blog.csdnimg.cn/blog_migrate/d08e94fed0612a97089066065e7c79c8.png)
2 什么是单例?
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式