37岁程序员被裁,java单例模式懒汉和饿汉代码

蚂蚁金服4面Java高级开发岗(拿offer):看看阿里都问些什么?

蚂蚁金服一面(技术面)

JVM 内存分哪几个区,每个区的作用是什么?JVM有哪些回收算法,对应的收集器有哪些?

GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。

hashmap源码问题

HashMap、HashMap如何保证线程安全、ConcurrentHashMap

HashMap底层结构 put操作讲一下

GC 的两种判定方法 ?CMS 收集器与 G1 收集器的特点。

java线程同步都有哪几种方式,在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?

cas的原理,变量要用哪个关键字修饰,volatile实现的原理。

你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?

MYSQL 数据库服务器性能分析的方法命令有哪些?

什么是通用 SQL 函数?

手撕代码:按层次遍历二叉树?

Java 配置的方式配置 Spring

spring中用到了什么, 简述 AOP 和 IOC 概念,aop是怎么实现的?

第一轮非常重要,第一面能通过,后续被录用的可能性就比较高了,建议系统性的学习面试题目

蚂蚁金服二面(技术面)

自我介绍&项目

项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理

分布式锁原理

CAS 算法,CAS 与 synchronized 的使用情景

简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

分别解决什么问题?

dubbo有哪些模块,底层通信的原理?Dubbo 集群的负载均衡有哪些策略?

如果让你实现一个https,你会怎么实现?

常用的负载均衡,该怎么用,你能说下吗?

常见的分布式事务方案有哪些?

Dubbo 的核心功能?如何从0到1设计一个类似Dubbo的RPC框架?

蚂蚁金服三面(技术面)

再谈谈一致hash算法(redis)?

数据库索引,B+树的特性和建树过程。

mysql相关的行锁,表锁;乐观锁,悲观锁

分布式锁的方案,redis和zookeeper哪个个好,如果是集群部署,高并发情况下哪个性能更好。

activeMQ 发送消息的方式有哪些?activeMQ 如何调优

设计模式与重构,谈谈你对重构的理解

Collections.sort底层排序方式

说说 Redis 哈希槽的概念?Redis 集群如何选择数据库?

spring cloud的服务注册与发现是怎么设计的?

蚂蚁金服四面(技术面)

自己参与的项目,技术难度高的有哪些?

线上有实际的性能优化经验?

从SQL、JVM、架构、数据库四个方面讲讲优化思路,以及如何优先排序?

redis的持久化方式,redis3.0原生集群和redis读写分离+哨兵机制区别

如果让你实现一个mq,怎么样保证消息不丢失

你熟悉哪些中间件,谈谈你对他们的理解,以及对应的使用场景区别?

最后,你有什么想问我的?

余额宝屋面(HR面)

你个人的最大的缺点是什么?

在工作中和生活中遇见最大的挑战是什么?是如何克服的?

未来有什么规划?

平时有哪些兴趣爱好

最后

按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。

学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。

道路是曲折的,前途是光明的!”

而已。

道路是曲折的,前途是光明的!”

[外链图片转存中…(img-EFEC36um-1627007827292)]

[外链图片转存中…(img-T11QP2R9-1627007827294)]

更多Java核心笔记、真实面经、学习笔记等知识干货可以点击这里免费领取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单例模式是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在单例模式中,懒汉饿汉是两种常见的实现方式。 1. 懒汉模式: 懒汉模式是指在需要使用实例时才创建对象。以下是懒汉模式的代码示例: ```java public class Singleton { private static Singleton instance; private Singleton() { // 私有构造函数 } public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } ``` 在懒汉模式中,通过一个静态变量`instance`来保存实例,初始值为null。在`getInstance()`方法中,首先检查`instance`是否为null,如果为null,则创建一个新的实例并赋值给`instance`,然后返回该实例。由于懒汉模式是线程安全的,因此在`getInstance()`方法上加了`synchronized`关键字,确保在多线程环境下只有一个线程可以创建实例。 2. 饿汉模式: 饿汉模式是指在类加载时就创建对象,无论是否使用该实例。以下是饿汉模式的代码示例: ```java public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 私有构造函数 } public static Singleton getInstance() { return instance; } } ``` 在饿汉模式中,通过一个静态变量`instance`来保存实例,并在定义时就进行初始化。在`getInstance()`方法中,直接返回`instance`即可。由于饿汉模式在类加载时就创建了实例,因此不存在线程安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值