先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
如果要求类在一个虚拟机中只能产生一个对象,不能自由创建该类的对象。避免其他类创建该类的实例,我们首先必须将类的构造器的访问权限设置为 private ,把该类的构造器隐藏起来了。这样就不能用 new 操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量,也必须用static修饰 。
2. 单例模式的两种形式
2.1 懒汉式
示例代码:
public class Singleton1 {
// 提供当前类型的静态变量
private static Singleton1 s;
// 构造方法私有化,这样类就不会被实例化
private Singleton1() {
}
// 对外提供一个公开的、静态的方法,获取Singleton1对象
public static Singleton1 getInstance() {
// 如果s为null,表明还没有创建Singleton1对象
// 否则,表明已经创建了对象
if (s == null) {
// 创建Singleton1对象
s = new Singleton1();
}
return s;
}
public static void main(String[] args) {
// 创建Singleton1对象不能使用构造器,只能通过getInstance()方法获取实例
Singleton1 s1 = Singleton1.getInstance();
Singleton1 s2 = Singleton1.getInstance();
System.out.println(s1 == s2);
}
}
代码执行结果:
true
通过 getInstance() 方法,保证 Singleton1 类只能产生一个对象。因此,代码最后的执行结果是 true,说明 Singleton1 对象实际上是同一个对象。
懒汉式存在线程安全的问题,在下面将会解决线程安全问题。
2.2. 饿汉式
示例代码:
public class Singleton2 {
// 提供当前类型的静态变量
// 类加载的时候只执行一次
private static Singleton2 s = new Singleton2();
// 构造方法私有化
private Singleton2() {
}
// 提供公共的静态的方法,返回当前类的对象
public static Singleton2 getInstance() {
return s;
}
public static void main(String[] args) {
// 创建Singleton2对象不能使用构造器,只能通过getInstance()方法获取实例
Singleton2 s1 = Singleton2.getInstance();
Singleton2 s2 = Singleton2.getInstance();
System.out.println(s1 == s2);
}
}
3. 解决懒汉式线程安全问题
最后
由于细节内容实在太多了,为了不影响文章的观赏性,只截出了一部分知识点大致的介绍一下,每个小节点里面都有更细化的内容!
小编准备了一份Java进阶学习路线图(Xmind)以及来年金三银四必备的一份《Java面试必备指南》
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
么很难做到真正的技术提升。**
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-XYU52JmF-1713177665684)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!