虽然上了这么多年学,但是却没写多少代码,实在惭愧!
现在为了找工作,拼了!
在对比了Java和C++,以及各种其他开发语言,如Python、C#、golang等,最终还是选择Java,毕竟工作机会多啊
昨天下午在看突击面试100题时,实验室的Java大佬来围观我,我问了一个问题,结果大佬就给我讲了一下午的Java,从equals和==的区别,从看Spring重写equals方法的源码开始,一直讲到JVM,虚拟机的加载,虚拟机如何翻译字节码文件,class存储在哪里,类创建在堆上,常量创建在常量池里,每次new就在堆里划分一块区域给对象,又讲到Object的equals方法,讲到了重载,比如+号的重载和编译时的优化,讲到继承,Java是单继承,C++是多继承,等等。
今天,咱就正式开始学习了,三个月,干!
1.面向对象思想
面向过程的思想类似执行者,我该怎么去办好一件事,第一步、第二步怎么怎么样,面向对象编程就像一个组织者,我要办好一件事,第一个模块我找谁办,第二个模块我找谁办,就像生成一个随机数,就会调用Random类。
比如要开发一个项目,以三层架构模式来开发,只需选择市面主流框架,如SpringMVC、Spring、MyBatis
封装、继承、多态、重写、重载、接口
封装:把对象的属性和操作结合为独立整体,并隐藏内部细节
public:表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
private:表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用
protected:对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private
static:用来修饰成员变量和成员方法,接近全局的意思,表示静态
如果用来修饰变量,这个变量是这个类的固有属性,每个创建的对象都会有一个
如果用来修饰代码块,则该代码块在类加载时执行这些代码块
2.JDK、JRE、JVM
JDK是Java开发工具包,提供Java开发环境和运行环境
JRE是Java运行环境,包括Java虚拟机和一些基础类库
JVM是Java虚拟机,执行字节码文件(JVM是跨平台的核心,但JVM不跨平台)
3.==与equals