概论——Java
先支持一下小白的入门文章:https://blog.****.net/hu_belif/article/details/79184443
一、先说什么是java?
java是一种面向对象语言,真正的面向对象,任何函数和变量都以类(class)封装起来;
至于什么是对象什么是类,类就是一个对象的模板,对象就是类的一个实例,一个真正存在的;
关于这两个概念的解释任何一本面向对象语言的教材里面都有;
知道了什么是java,那自然就会对java能干什么感兴趣吧。
在说java能做什么之前,先说java作为一个真正面向对象语言的优点:
首先第一个,既然是真正的面向对象,那就要做到彻底的封装,
这是java和c++最大的不同,java所有的源码以及编译后的文件都以类的形式存在,
java没有所谓的类外部定义,所有的函数(方法)以及变量(属性)都必须在类内部定义,
这样就不会出现一个类被切割成这里一块那里一块的情况,这样做使得整个程序的结构异常清晰,明了 。
其次第二个,最让人欢呼雀跃的是完全屏蔽了指针,同时引入了垃圾回收机制;
所谓Java功能强大的原因之一就是这个,垃圾回收机制可以自动回收已经销毁的不在运行状态的内存,
这样就可以合理的分配内存,使用完立刻回收,释放内存空间。作为未来的一名软件工程师,我想我们不应该
也不愿意把大量的时间花在内存的管理上,毕竟我们不是电子工程师,这个优势让Java的强大淋漓尽致的体现出来了,
他完全屏蔽了内存管理,也就是说如果你用Java学程序,学出来的任何一个程序内存上的开销不受你控制,乍一看似乎
你受到了舒服,但实际上你的程序会非常非常的安全,因为你无法调用一个空指针,而不像写C的时候那样,成天因为一个
空指针担惊受怕,Java在最大程度上避免了空指针的调用,安全。
接着是第三点,虚拟机跨平台,这是Java最大的特点,跨平台;上一篇介绍过Java经过一次编译就能处处运行,可谓是上天
入地无所不能。跨平台,那么很明显,java主要应用于除了windows操作系统以外所有的平台
比如移动端,服务器 等都能凸显它的强大特色与优势。
写一个程序,然后再拿到移动端,服务器上去编译,去调试,其他语言可能不行,所以我们就是希望找到一种编译完生成
程序后在PC上调试,然后直接移植到移动端、服务器上去,那么这个时候我们就应该毫不犹豫的选择Java。
注意:
Java虚拟机(Java Virtual Machine)
内存回收机制(Garbage Collection)
这是Java的核心机制,最大的特点。
OK,上面是Java的优点,下面说说缺点:
1,慢。
这是一个误区,Java没有了指针,虽然看上去似乎变慢了,但是在这个时代的硬件性能就能让我们毫不吝啬的把内存管理交
给Java,速度一定不是我们会担心的问题,而且对于企业级应用来说,没有什么比安全稳定更重要的了,也就是说我们在
工作当中可以忍受慢,但不能忍受死机和蓝屏,并且月大型的企业级应用,这种慢的劣势体现的可能越模糊;因此,把内存
管理交给计算机吧,这种代价值得,我们做开发的没必要把一点点的内存当亲爹一般。
2,难看。这又是一个误区,很多人甚至拿出Java Swing的桌面窗体控件画出的界面来说,呵呵,其实Java不是不能画的好看,
而是IDEA就是Java写的IDE,挺漂亮的,难看就是因为swing控件它本身就是unix时代的产物,自己上网百度一下就知道了,
swing控件贴近unix界面,老外看它可是越看越喜欢呀,他们都是吃unix饭长大的嘛,所以Java不是难看,只是一些小小的误会吧。
其它的望各位大神级大咖予以补充。
二、Java的应用
首先就是应用的三大版本JDK:J2EE、J2ME、J2SE。(上一篇中有提到)
这里要特别说明一下J2SE J2EE J2ME中2的意思,其实2就是英文单词to的谐音,就是to的意思;而不是second edition,
当然java 2本身版本号就是1.2,也有点2nd edition的味道 。
其中j2SE是标准版,需要我们都应该懂得,这是基础的语言部分,无论学什么Java技术,这都是必要的基础。
最后说一下JDK的发布技术,其实按我的理解,讲白了就是编译器就是将.java文件转换成.class文件的一种技术 。
JDK包含有五个部分:核心API,集成API,用户界面API,发布技术还有java虚拟机(JVM)。
先说运行环境,运行环境最主要要说的就是java虚拟机(JVM):
前面我们说过java是跨平台的语言,那么如何做到跨平台呢?分为两个时期:
第一个是编译时期:
第二个是运行时期:
然后:
下一篇