1.自定义类:
2.堆、栈、方法区
https://blog.csdn.net/Mr_FuWen/article/details/76472751
3.this
https://www.cnblogs.com/xdp-gacl/p/3636071.html
https://www.cnblogs.com/hasse/p/5023392.html
this 可以区分变量等,它调用的是离它最近的那个声明里的参数。
this() 就是调用自己的无参构造方法,和super()一个道理。this就是指本对象自身。
4.测试类
https://blog.csdn.net/qq_32106647/article/details/79146654
Java程序是由Java虚拟机执行的,那么运行Java程序的时候,Java虚拟机就得知道,从哪一行代码开始执行。所以运行Java程序的命令: java Main.class。就是告诉了Java虚拟机,Main.class就是主类。那么Java虚拟机知道了这个主类,接着就会找这个类里面的 main 方法,然后从 main方法开始执行程序。这个就是主类存在的作用。
明白了主类的作用,理解测试类也就容易多了。我们写程序的时候,免不了要对一部分代码进行测试。对于测试,我只想运行一部分代码,也就是我希望虚拟机从我指定的地方开始运行就可以了。这样的话,一般懒的做法,就是在你需要写测试代码的地方,写一个main方法,然后运行的时候让虚拟机从这里开始。但是呢,这个偷懒的做法很不好。因为你测试完了,就得删除这段测试代码,否则久而久之,代码就很乱,很难看,别人看到你的代码,还会在心里鄙视你。
所以测试类的作用就是优雅的让你写测试代码。主类里的main方法是程序的入口,测试类里的测试方法,也可以看做程序的入口(虽然并不是真正的入口)。主类里面只能写一个main方法,也就是只能有一个入口,不然Java虚拟机怎么知道从哪个门进啊。测试类的一个好处就是,这个类里的每个测试方法都可以看做main方法,可以单独开始运行。具体运行哪个方法呢,可以由你指定。
总结下,主类相当于程序在完整运行时的入口。测试类是方便你在需要测试某一部分代码的时候,可以自定义,程序从哪里开始运行。