知识重在积累,经验在于总结。来来回回这是第三遍学习马士兵-J2SE视频了,经典之作,值得反复学习和思考。
从网上找了些文章结合自己的想法梳理一下知识,总结出这篇博文,希望大家多多指点噢~~~~
一、Java简介
1995年5月23日Java诞生。 它的三个版本 Java SE (Standard Edition)标准版,JavaEE(Enterprise Edition) 企业级,Java ME(MicroEditon)微缩版分别应用于基础知识的学习(java语言核心类);企业级开发(应用的类更全面,更高级);消费类电子产品的软件开发(手机,智能卡等)。作为赤裸裸的一位菜鸟小编,请允许我从J2SE说起。
J2SE就是Java2的标准版,主要用于桌面应用软件的编程。大家都知道Java是一种纯面向对象的语言,这样就使得编程变得很容易。跨平台,主要是依赖于JVM做了各个底层系统的桥梁。使用与平台无关的字节码(.class)与系统打交道从而实现了跨平台。
二、J2SE分析
通过Java简介,我们对java 语言有了基础的了解。为什么说java 是一种跨平台性非常强的语言呢?这个主要基于她的第一核心机制:Java 虚拟机(Java Virtual Machine)
- java 虚拟机可以理解成为一个一字节码为机器指令的CPU;
- 对于不同的运行平台,有不同的虚拟机;
- java虚拟机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
在不同的平台上有相应平台的虚拟机(相当于Java程序是运行在Java准备的虚拟环境中),这样就保证了Java程序的跨平台性.....
第二核心机制:垃圾收集(Garbage Collection)
分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null即可。对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象,通过这种方式确定哪些对象是“可达的”,哪些对象是“不可达的”,当GC确定一些对象为“不可达”时,GC就有责任回收这些内存空间
GC在JVM中通常是由一个或一组进程来实现的,它本身也和用户程序一样占用heap空间,运行时也占用CPU,当进程运行时,应用程序停止运行。
因此,当GC运行时间较长时,用户能够感到Java程序的停顿,另一方面,如果GC运行时间太短,则可能对象回收率太低,这意味着还有很多应该回收的对象没有被回收,这即要求我们在设计GC时要均衡效率。
J2SE入门多次学习思考后,小编绘制一张图,编织知识网,发现各知识点之间的联系

内存分析
贯穿马士兵视频Demo最多的也就是内存分析了,每一个小例子,都会运用内存去理解代码,"明白内存,任何代码也就不用担心了。"
![]()

J2SE基础
java、C#、.Net、VB任何编程语言都是相通,但你明白其中核心点后,无论哪种编程语言都无障碍,这里只是提纲挈领一下:

面向对象
OO思想,一切万物皆对象。面向对象编程,而不是面向过程编程,
J2SE之面向对象——再看你一眼 ,这里只不过将这些面向对象知识运用到java中了,可以跟随着小编看着下边这张四维导图一同来回忆:

PS:小编郑重强调Java API 文档,相当于字典的作用。非常重要哦!
其他内容
一张图胜过千言万语,这部分的知识请静静地看下图,默默滴思考:

- 数据结构中最常见的数组,这部分的知识大家是否还有印象,最常见的排序算法等。
- GUI 对Javaz中一些图形,控件类进行学习,AWT(Abstract Window Toolkit)包括很多类和接口,用于Java Application 的GUI (图形用户界面)编程。至于如何进行布局管理,可查询API文档。
- 异常处理,和C#中的极为相似。自我感觉这里的异常类稍微多些,需要参照API文档学习。
- 多线程,线程是一个内部的顺序控制流,也就是CPU要处理一件事,这件事有他的先后顺序,完成这件事也就是线程结束,简单理解就是CPU同时处理多件事!就是为了保证数据的完整性,在特定时间内我们只能允许特定的线程访问此数据。
- I/0流 ,用于Java中对于数据的输入、输出操作。
- 网络技术,网络现在已经融入到每个人的生活中,首先需要了解网络通信协议分层,分层为我们提供了最简便的接口。IP协议。
三、总结
java学习,这仅仅是是个入门,希望在今后的学习过程中,有更加深入的理解。欢迎大家抛砖指正。