您的位置:首页 > 编程语言 > Java开发

编程从Java开始

2016-03-18 12:23 417 查看
---------## 第一节 浅谈Java ##
不知不觉也已经学了三年的计算机,不过博主目前是一个大三的工科狗,主修计算机,3年里接触的高级语言不少,现在回过头来看,确实Java是相对来说最好懂最好上手的一门编程语言,甚至可以这么说,可以完全没有基础的去学好这门编程语言,只要肯练肯写,虽然博主知道这个道理,但是博主很懒,所以到目前为止还是一个IT小白。鉴于考研和找工作的压力,博主终于忍不住了,开始了自己的博客之旅,博主虽然接触了这么多的编程语言但是最是比较拿得出手的还是Java,所以博主打算把自己学习Java的过程分阶段写下来供大家参考,我遇到的问题后学者们说不定也会遇到,只是为了让新学者们少走一点弯路,博主目前也处于学习的阶段,可以和大家一起学习。闲话不多说直接开搞。
## 什么是JAVA ##
  Java到底是什么呢,它是一种可以撰写跨平台应用程序的面向对象的程序设计语言。由大名鼎鼎的SUN(全称是Stanford University Network,1982年成立,不过目前已经被Orancle(也就是甲骨文公司)收购),Java的设计者,James Gosling(詹姆斯·高斯林),他在早期做一个叫Green的项目,这个项目的目的是为家用电子消费产品开发一个分布式代码系统,通过网络对家用电器进行控制。SUN公司的工程师开始准备采用C++(另一种高级编程语言),可是现实是C++实现起来过于复杂,而且安全性又极低,所以最后还是放弃了,他们决定开发一种新的语言Oak(这也就是Java的前身,1991年出现),Oka是一种用于网络的,精巧而安全的语言,SUN公司曾以此投标过一个交互式的电视节目项目,但是被SGI公司打败。于是当时的Oka几乎是无家可归,恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,触发了Java进 军Internet。
  Java语言发展到今天经历了一系列的过程,Java在1995年5月23日推出了JDK1.0版本,这个版本标志着Java正式进军Internet的开始,在1998年对之前的JDK进行了升级并推出了JDK1.2的开发包,改版本加入了大量的轻量组件包,从此之后Java被正式命名为Java2。
  Java语言发展到了今天经历了3个发展方向。
  1 J2SE:Java2 Platform Standard Edition。包含构成Java语言核心的类,如数据库连接,接口定义,输入/输出和网络编程。
  2.J2ME:Java 2 Platform Micro Edition。包含J2SE中一部分类,用于消费类电子产品的软甲开发,如传呼机,智能卡,手机,PDA和机顶盒。
  3.J2EE:Java 2 Platform Enterprise Edition.Enterprise(企业版)包含J2SE中的所有类,并且还包含用于开发企业级应用的类,如EJB,Servlet,JSP,XML和事务控制,也是现在Java应用的主要方向。
  不过这三项技术在2005年Java十周年大会之后再这3们技术又重新更名:
  J2SE更名为JAVA SE
  J2ME更名为JAVA ME
  J2EE更名为JAVA EE.
  ## JAVA语言的特点 ##
  介绍完了技术,现在就要开始介绍Java的语言特点
  1.简洁有效
  Java语言是一种相当简洁的“面向对象”程序设计语言,它省略了C++语言中难以理解,容易混淆的特性,如头指针,指针,结构,单元,运算符重载和虚拟基类等,更加严谨,简洁。
  2.可移植性
  对于一个程序员而言,写出来的程序如果不需要修改就能够同时在windows,MacOS,UNIX等平台上运行,简直就是美梦成真,而JAVA语言让这个原本遥不可及的事情变成了现实。使用JAVA语言编写的程序,只要做较少的修改,甚至有时候根本不需要修改即可在不同的平台上运行。
  3.面向对象,这一点我已经提到了三遍,重要的事情就是要说三遍,可以这么说,“面向对象”是软件工程学的一次革命,大大提升了人类软件开发能力,是一个伟大的进步,是软件发展的一个重要的里程碑。
  在过去的30年里,“面向对象”有了长足的发展,充分体现了自身的价值,到现在已经形成了一个包含“面向对象的的系统分析”,“面向对象的系统设计”和“面向对象的程序设计”的完整体系。所以作为一种现代编程语言,是不能够偏离“面向对象”这一方面的,Java语言也不例外。
  4.解释型
  Java语言是一种解释型语言,相对于C/C++语言来说,用Java语言写出来的程序效率低,执行速度慢。但它可以通过在不同平台上运行Java解释器,对Java代码进行解释,来实现“一次编写,到处运行”的目标。为了大刀目标,牺牲效率还是值得的,而且,现在的计算机技术日新月异,运行速度也越来越快,用户不会感到太慢。
  5.适合分布式运算
  Java语言具有强大的、易于使用的联网能力,非常适合开发分布式计算的程序。Java应用于程序可以像访问本地文件系统那样通过URL访问远程对象。
  使用Java语言编写Socket通信程序比使用任何其他语言都要简单。而且它还十分适用于公共网管接口(CGI)脚本开发,另外还可以使用Java小应用程序(Applet),Java服务器界面(JavaServerPage,JSP),Servlet等手段来构造更加丰富的网页。
  6.拥有较好的性能
  由于Java是一种解释型语言,所以它的执行效率相对就会慢一些,但由于Java语言采用了下面两种手段,使其拥有较好的性能。
  Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称字节码)再解释。
  提供了一种“准实时”(Just-in-Time)编辑器,当需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样的速度就会更快。
  7.健壮,防患于未然的特征
  Java语言咱伪编译时,做了许多早期潜在问题的检查,并且运行时又做了一些相应的检查,可以说是一种最严格的“编译器”。
  它的这种“防患于未然”的手段将许多程序中的错误都扼杀在“摇篮”之中,经常有许多在其语言中必然通过运行才会暴露出来的问题,在编译时就被发现了。
  另外,在Java语言中还具备了许多保证程序稳定,健壮,的特性,有效的减少以了错误,也使Java应用程序更加健壮。
  8.具有多线程的处理能力
  线程是一种轻量级进程,是现代程序设计中必不可少的一种特性。多线程处理能力使程序具有更好的交互性和实用性。
  Java在多线程处理方面的性能超群,具有让设计者惊喜的强大能力,而且在Java语言中进行多线程处理也很简单。
  9.具有较高的安全性
  Java语言在设计时在安全方面考虑的非常细致,设计者们做了很多的研究,是的Java语言成为目前最安全的一种程序设计语言。
  尽管SUN公司曾经许诺过:“通过Java可以轻松构建出防病毒和黑客的系统”但是就在JDK(Java Development Kit)1.0发布后不久,美国Princeton(普林斯顿)大学的一组安全专家发现了Java1.0安全特性中的第一例错误。从此,Java安全方面的问题开始被关注。不过至今所发现的安全隐患很微不足道,而且Java开发组还宣称,他们对系统安全方面的Bugs非常重视,会对这些发现的Bugs立即进行修复。另外,由于Sun公司开放了Java解释器的细节,所以有助于通过各界的力量共同发现,防范和制止这些安全隐患。
  10. 是一种动态语言
  Java是一种动态语言,这表达咱以下两个方面:
  在Java语言中,可以简单直观的查询运行中的信息
  可以将新代码加入到一个正在运行的程序中去。
  11.是一种中性结构
  Java编译器生成的是一种中性的对象格式文件,也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系无关的“中性”的字节码。
  这种中性结构其实不是Java首创的,在Java出现之前UCSD Panscal系统就已经在一种商业产品中做到了这一点,另外,在UCSD Pascal之前也有这种方式的先例,例如在Niklaus Wirth实现的Pascal语言中就采用了这种结构降低一些性能,以换取更好的可移植性和通用性的方法。
  Java的这种字节码经过了许多精心的设计,使其能够很好的兼容于当今大多数流行的计算机系统,在任何机器上都易于解释,易与动态翻译成机器代码。
  ## Java程序的运行机制和Java虚拟机 ##
  讲了这么多Java的特点,我想各位看客现在更加关心的是ava的运行机制,不要着急,博主和你们慢慢道来。
  计算机高级语言的类型主要有编译型和解释型两种,Java是两种类型的集合,在Java中处理代码的过程如下所示
  XXXX,java----编译----XXXX.class----翻译----输出
  我们可以看到在Java中源文件名称的后缀是*.java,之后通过编译使*.java的文件生成一个*.class的文件,在计算机上执行*.class,但是此时执行*.class的计算机并不是一个物理上可以看到的计算机,而是Java自己设计的一个计算机-----JVM,Java也是通过JVM进行可移植性的操作。在Java中所有的程序都是在JVM(Java Virtual Machine)上运行的。JVM是在一台计算机上由软件或是硬件模拟的计算机。Java虚拟机(JVM)=读取并处理经过编译的与平台无关的字节码*.class文件。Java解释器负责将Java虚拟机的代码在特定的平台上运行。JVM的基本原理
                                                                                        -----JVM for DOS
                                                                                        -----JVN for Winx
xxxx.java----翻译----xxxx.class----执行-----
 
                                                                     ------JVM for UNIX
                                                                     ------Other(MacOSX等别的系统)
        我们可以发现,所有的.*class文件都是在JVM上运行的,即*.class文件只需要认JVM,由JVM再去适应各个操作系统。若果不同的操作系统安装上符合其类型的JVM,那么以后程序无论到哪一个操作系统上都是可以正确运行的。
     博主写到这里基本上已经把Java是一种什么东西以及它有哪些特点都大概的说了一下,肯定某些看官对可移植性还不是很理解,博主在理解这个=可移植性的时候也想了很久,下面给大家就一个例子。
     如果我要做环球旅行,在所有需要的准备中,有一项是语言准备,我得多学几门外语,别的都好办,学外语而且还是几门就太难了,我想到了一个办法,我准备一本书,每一张纸上都写书上一句估计用得到的话,然后请别人帮忙翻译成哥哥国家的语言然后就写在这句话的下面,到了国外,我要说那一句话,拿出这个本子,就翻给别人看,别人看懂哪一个语言的话都可以,不过这是C语言的做法,但是Java不一样,假设还是要去旅行,大家都知道一种语言叫世界语,世界语不属于哪一个具体的国家,是一群语言学家发明的语言,全世界会说这种语言的胸前都有一个胸牌,我会世界语,到了一个国家,就找有胸牌的人,让他来帮忙,我把想说的话翻译成世界语,那个世界语爱好者把我说的话翻译成本地的语言,这样一来,周游世界只要学好世界语,到哪儿都不怕。怎么样,这个例子好理解吧。这就是Java的可移植性。还不理解也没关系,多想总会明白的,毕竟博主也是从一个什么都不懂的小白这样过来的嘛!今天介绍Java就到这里,后续还会继续更新,有什么疑问或者问题博主随时欢迎来询问,这是一个大家一起进步的过程。夜深了,不早了,博主也要休息了,明天还有很重的任务等着呢!晚安。
 
 
                                           2016年3月18日 
                                                                    2:16AM                                                                        
by WhiteJavaCoder                                                                                                                                                             
                                                  
                         
                                           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息