先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
上面的原理
补充
二 如何在她(main方法)说出HelloWorld之前打招呼?
如何实现在main()方法执行前输出"Hello,World"
三 Java程序初始化的顺序是怎样的【面试必备!~】
理论铺垫
It is easy to say,show me your code.
定义父类Base!~
定义子类Derived!~
最后的小结
最后的最后
写在前面
====
回首来路,自选择Java,遑论风雨,拧着头向前,有时不懂得问题逐渐搁置,久而久之,基础不牢,地动山摇,最近再回头过来看Java基础知识,以不同的角度再去看,收获良多,特记之。
由于本人水平有限,只是在学小白一枚。知识的理解难免有不当之处,代码可能存在错误的地方,有任何问题欢迎评论区留言指出,感激不尽!
创作不易,烦请三连支持一下!~
Java学习之旅,我们一起学习,共同进步!~
一 你真的搞懂我们的主函数了吗!?
=================
相信极大多数人选择一门编程语言之后最先接触的就是输出HelloWorld吧!?
Java面向对象的浪漫~只有Java程序猿才懂。可是不断学习,不断深入的过程中!
无论在编译器控制台,还是在屏幕上花里胡哨的输出,或者是cmd小黑框里,又或者在网页上输出。
主函数的浪漫,又有谁懂?
复制下面这行代码
粘贴到文本文件里
public class A {
public static void main(String[] args) {
System.out.println(“HelloWorld!~”);
}
}
建立一个:A.java的.java文件(java源文件)
在上面打开cmd
我们在命令行里使用javac命令对刚才的java源文件进行编译
可见文件夹内生成了一个java.class的 .class文件(编译后的文件)二进制字节码文件!~
打开发现是乱码。
我们再用java命令 将java.class 加载到JVM上进行运行
当你向世界说你好时,世界也在面向你!~
上述一套操作流程下来,只是为了熟悉cmd内使用java 和 javac命令
接下来,请复制下面的代码 并 新建一个 B.java文件
public class B {
static public synchronized final void main(String[] args) {
System.out.println(“HelloWorld!”);
for (String string : args) {
System.out.println(string);
}
}
}
这次,我们在使用java命令运行 B.class时
使用java B object oriented programming
HelloWorld!
object
oriented
programming
你从我的世界经过,并留下了一句Hello,我亦在目不转睛的凝视着你~
初识面向对象语言,HelloWorld!浪漫亦不过如此
上面的原理
main是JVM识别的特殊方法名,是程序的入口方法。字符串数组参数args为开发人员在命令行状态下与程序交互提供了一种手段!~
补充
–
1)定义.java文件可以参考我之前的文章,更改文件扩展名
2)此外应该还有朋友注意到了我们的主方法 main()方法 还有其他的定义格式public 与 static 没有先后顺序关系,位置可以更换,也可以加上final修饰符 和 synchronized修饰!~
static public synchronized final void main(String[] args)
二 如何在她(main方法)说出HelloWorld之前打招呼?
================================
如何实现在main()方法执行前输出"Hello,World"
众所周知,在Java语言中,main是程序的入口方法,在程序运行时,最先加载的就是main方法,
但这是否意味着main方法就是程序运行时第一个被执行的模块?
答案必然是否定的。
因为Java的面向对象特性决定了Java中以类为最基本的单位,在类加载完成时才会顺着类内主函数的入口进入main()方法。执行main()方法的内容!~
public class C {
static{
System.out.println(“Hello”);
}
public static void main(String[] args) {
System.out.println(“HelloWorld”);
}
}
代码如上,结果如下!~
三 Java程序初始化的顺序是怎样的【面试必备!~】
==============================
理论铺垫
通过上面的测试,我们发现了Java中类加载的顺序是最优先的
Java程序的初始化一般遵循三个原则(优先级依次递减)
1)静态对象(变量)(静态代码块) 优先于 非静态对象(变量)(初始代码块)
其中,静态 内容只 初始化 一次!而非静态内容可能会初始化多次。
2)父类优先于子类进行初始化
3)按照成员变量的定义顺序进行初始化
其中,同等级的变量 和 代码块(即同为静态或同为非静态),看定义顺序谁先谁后执行
默认值规则是一开是自动补充的,如类内的类变量和成员变量,Int基本类型的默认值都是0;
class A{
int anInt;//这个系统会自动给他补成0;这叫默认值规则
}
class B{
int anInt1=1024;//这叫初始化规则
}
It is easy to say,show me your code.
定义父类Base!~
package com.zdx.daily.java0101.test;
/**
-
@program: daily.study
-
@description: 测试用的父类
-
@author: SmallRedSun
-
@create: 2022-01-01 15:12
**/
public class Base {
static int anStaticInt = StaticIntMethod();
private static int StaticIntMethod() {
System.out.println(“1------>父类静态变量赋初值:类变量”);
return 1;
}
static{
System.out.println(“2------>父类静态代码块夹在静态变量一和三之间”);
}
static int getAnStaticInt=sMethod();
private static int sMethod() {
System.out.println(“3------>父类静态变量赋初值:类变量”);
return 3;
}
int anInt = intMethod();
private int intMethod() {
System.out.println(“4------>父类赋初值规则:属性”);
return 4;
}
那么如何才能正确的掌握Redis呢?
为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题
-
并发编程面试题汇总
-
JVM面试题汇总
-
Netty常被问到的那些面试题汇总
-
Tomcat面试题整理汇总
-
Mysql面试题汇总
-
Spring源码深度解析
-
Mybatis常见面试题汇总
-
Nginx那些面试题汇总
-
Zookeeper面试题汇总
-
RabbitMQ常见面试题汇总
JVM常频面试:
Mysql面试题汇总(一)
Mysql面试题汇总(二)
Redis常见面试题汇总(300+题)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-
Nginx那些面试题汇总
-
Zookeeper面试题汇总
-
RabbitMQ常见面试题汇总
JVM常频面试:
[外链图片转存中…(img-IztN01bP-1713376504170)]
Mysql面试题汇总(一)
[外链图片转存中…(img-Bo0cFMRh-1713376504171)]
Mysql面试题汇总(二)
[外链图片转存中…(img-y0qfgD86-1713376504171)]
Redis常见面试题汇总(300+题)
[外链图片转存中…(img-iEqVA2E3-1713376504172)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-rf4PGFXe-1713376504172)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!