JAVASE-01-java入门

Table of Contents

一:Java入门

1:java诞生

2;Java语言是什么?

2.1:Java是一种编程语言;

2.2:Java是一种软件开发平台;

2.3:Java 是一种软件运行平台;

2.4:Java  是一种软件部署环境

3:Java能干嘛;

4:Java有什么;


一:Java入门

1:java诞生

在 1990 年,Sun 公司成立了一个由 James Gosling 领导的软件设计团队,他们合作的项
目称为“绿色计划”。他们认为计算机技术发展的一个趋势是数字家电之间的通讯。James 开始
负责为设备和用户之间的交流创建一种能够实现网络交互的语言。随着大量的时间和金钱投入到
“绿色计划”,他们创建了一种语言。这种语言一开始被叫做“Oak”,这个名字得自于 Gosling
想名字时看到了窗外的一棵橡树,后来被改为了“Java”。

Java 的快速发展得利于 Internet 和 Web 的出现,到了 2000 年,Java 已经成为世界上
最流行的电脑语言。绿色小组当初设计 Java 是为了面向数字家庭,支持各种家电设备。他们没
有想到的是,Java 支持的计算模式,实际上就是互联网的模式 。

Java的重要历史事件

目前主流的 JDK 是 Sun 公司发布的 JDK,除了 Sun 之外,还有很多公司和组织都开发了自
己的 JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU 组织开发的JDK等等。
印度尼西亚有一个重要的盛产咖啡的岛屿,中文名叫爪哇,开发人员为这种新的语言起名为
Java,其寓意是为世人端上一杯香浓的热咖啡。现在就让我们来一起品尝吧。

2;Java语言是什么?

Java 的内容很丰富,实现的功能也很多,我们从以下几个角度来描述它。
一种计算机编程语言
一种软件开发平台
一种软件运行平台
一种软件部署环境
句法与 C++相似,语义与 Small Talk 相似
用来开发 applets,又用来开发 applications

2.1:Java是一种编程语言;

语言
我们说的普通话、英语都是语言,语言是一种交流的工具,语言具有创造性和结构性,并且
代表一定的意义。比如我说下课了,大家都明白什么意思,证明这个语句的意思表达清楚了,正
规的语言在交流上是不能有歧义的。

计算机编程
计算机编程就是:把程序员的要求和设想,按照能够让计算机看得懂的规则和约定,编写出
来的过程,就是编程。编程的结果就是一些计算机能够看懂并能够执行和处理的东西, 我们把
它叫做软件或者程序。事实上,程序就是我们对计算机发出的命令集(指令集)。

Java  是一种计算机编程语言
首先,Java 是一种语言,也就是 Java 是用来交流的,那么用来谁和谁交流呢?很明显
就是程序员和计算机交流,换句话说把我们的要求和设想用 Java 语言表达出来,那么计算机能
看懂,就能够按照我们要求运行,而这个过程就是我们所说的使用 Java 编程,所以我们讲
Java 是一种计算机编程语言。为了让计算机看懂,Java 会有一系列的规则和约定,这些就是
Java 的语法。

2.2:Java是一种软件开发平台;

什么是软件开发
可以简单地理解为:编程的结果是软件或者程序,而编程的过程就是软件开发。软件开发的
基本步骤包括:需求分析、概要设计、详细设计、编码、测试、维护等阶段。

需求分析:这里指的需求不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首
先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据…… 为了清楚地知道
这些需求,你经常要和客户、项目经理以及项目伙伴调查研究,这就是需求分析。

编码:开发代码,完成设计的具体实现。

测试:利用测试工具按照测试方案和业务流程对产品进行功能和性能测试,对测试方案可能
出现的问题进行分析和评估,并修改代码

维护:根据用户需求的变化或硬件环境的变化,对应用程序进行部分或全部的修改。

具体表现为以下流程图:

Java  是一种开发平台
Java 不单纯是一个编程的语言,它自身提供了一系列开发 Java 所需要的环境和工具,
来进行编译、解释、文档生成、打包等,比如:javac.exe、javadoc.exe 等等,这些我们
后面会讲到,所以我们讲 Java 是一个开发平台。

2.3:Java 是一种软件运行平台;

什么是软件的运行平台
如同人类需要阳光、空气、水和食物才能正常存活一样,软件最终要能够运行,也需要一系
列的外部环境,来为软件的运行提供支持,而提供这些支持的就是运行平台

Java  是一种软件运行平台
Java 本身提供 Java 软件所需要的运行环境,Java 应用可运行在安装了 JRE(Java
Runtime Environment)的机器上,所以我们说 Java 是一个运行平台。

2.4:Java  是一种软件部署环境

什么是软件部署

简单地讲,部署就是安装,就是把软件放置到相应的地方,并且进行相应的配置(一般称作
部署描述)让软件能够正常运行起来。

3:Java能干嘛;

Java 能做的事情很多,涉及到编程领域的各个方面。
桌面级应用:尤其是需要跨平台的桌面级应用程序
桌面级应用:简单的说就是主要功能都在我们本机上运行的程序,比如 word、excel 等运
行在本机上的应用就属于桌面应用。
企业级应用
企业级应用:简单的说就是大规模的应用,一般使用人数较多,数据量较大, 对系统的稳
定性、安全性、可扩展性和可装配性等都有比较高的要求。举例说明一下:

组件化:企业级应用通常比较复杂,组件化能够更好对业务进行建模,提高系统的扩展性和
维护性,做到组件复用。

分布式:企业组织机构复杂,同一地有多个分部,或者跨省,甚至跨国,COABA, RMI,Web Services 是 JavaEE 中支持的分布式访问技术,还有分布式的连接,如系统需要接入多个
数据源,可以用 JNDI 来透明实现。

事务管理:为了保证数据的安全操作、安全访问,事务是不可缺少的,事实上只要操作数据
库,就离不开事务管理。

消息管理:通过消息来实现异步触发从而降低系统耦合性,提高系统吞吐量。一个电子商务
网站也可以使用消息来进行异步发邮件,但在企业级应用当中,根据实际需求还可以演变成更多
复杂的应用,JEE 提供 JMS 实现消息管理

安全性:企业级应用的数据都更为敏感(比如公司的销售数据、财务数据),需要为此提供
严格的安全性保护,企业级组织的复杂性、接入访问的多样性增加了安全策略实施的难度,
JAAS 为此提供了一整套的安全策略,方便企业级应用以安全、一致、便捷的方式实现安全机
制。

目前企业级应用是 Java 应用最广泛的一个领域,几乎一枝独秀。包括各种行业应用、企业
信息化、电子政务等,包括办公自动化 OA,人力资源 HR,客户关系管理 CRM, 企业资源计划
ERP、供应链管理 SCM、企业设备管理系统 EAM、产品生命 周期管理 PLM、面向服务体系架构
SOA、商业智能 BI、项目管理 PM、营销管理、流程管理 WorkFlow、财务管理……等等几乎所
有你能想到的应用。

嵌入式设备及消费类电子设备
 包括无线手持设备、智能卡、通信终端、医疗设备、信息家电(如数字机顶盒、 电冰箱)、
汽车导航系统等都是近年以来热门的 Java 应用领域,尤其是手机上的 Java 应用程序和 Java
游戏,更是普及。
 嵌入式装置答题上区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置,例如:
PDA、手机;另外一种则是运算能力相对较佳、并且电力供应上相对比较充足的嵌入式装置,比
如:冷气机、电冰箱、电视机顶盒。
 除了上面提到的,Java 还有很多功能:如进行数学运算、显示图形界面、进行网络操作、
进行数据库操作、进行文件的操作等等。

4:Java有什么;

Java 体系比较庞杂,功能繁多,这也导致很多人在自学 Java 的时候总是感觉无法建立
全面的知识体系,无法从整体上把握 Java 的原因。在这里我们先简单了解一下 Java 的版
本。

Java 分成三种版本,分别是: Java 标准版(JSE)、Java 微缩版(JME)和 Java 企业
版(JEE)。

Java  标准版: JSE(Java Standard Edition

JSE 是 Sun 公司针对桌面开发以及低端商务计算解决方案而开发的版本,例如:我们平常
熟悉的 Application 桌面应用程序。这个版本是个基础,它也是我们平常开发和使用最多的
技术,Java 的主要的技术将在这个版本中体现。

Java  企业版:JEE (Java Enterprise Edition )
JEE 是一种利用 Java 平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体
系结构。JEE 技术的基础就是核心 Java 平台或 Java 平台的标准版,JEE 不仅巩固了标准
版中的许多优点,例如“一次编写、处处运行”的特性、方便存取数据库的 JDBC API、CORBA
技 术 以 及 能 够 在 Internet 应 用 中 保 护 数 据 的 安 全 模 式 等 等 , 同 时 还 提 供 了 对
EJB(Enterprise Java Beans)、Java Servlets API、JSP(Java Server Pages) 以
及 XML 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时 间
的体系结构。

JEE 体系结构提供中间层集成框架来满足无需太多费用而又需要高可用性、高可靠性以及
可扩展性的应用的需求。通过提供统一的开发平台,JEE 降低了开发多层应用的费用和复 杂性,
同时提供对现有应用程序集成强有力支持,完全支持 Enterprise Java Beans,有良好的向
导支持打包和部署应用,添加了目录支持,增强了安全机制,提高了性能。

JEE 是对标准版进行功能扩展,提供一系列功能,用来解决进行企业应用开发中所面临的
复杂的问题。具体的我们会放到后面 JEE 的课程去讲。

Java  微缩版:JME(Java Micro Edition )
JME 是对标准版 JSE 进行功能缩减后的版本,于 1999 年 6 月由 Sun Microsystems
第一次推向 Java 团体。它是一项能更好满足 Java 开发人员不同需求的广泛倡议的一部分。
Sun Microsystems 将 JME 定义为“一种以广泛的消费性产品为目标的高度优化的 Java 运
行时环境”,应用范围包括掌上电脑、移动电话、可视电话、数字机顶盒和汽车导航系统及其他
无线设备等。

5:Java的特点;

简单地说,Java 具有如下特点:简单的、面向对象的、平台无关的、多线程的、安全的、
高效的、健壮的、动态的等特点。

简单的
简单是指 Java 既易学又好用。不要将简单误解为这门编程语言很干瘪。你可能很赞同这样
的观点:英语要比阿拉伯语言容易学。但这并不意味着英语就不能表达丰富的内容和深刻的思想,
许多荣获诺贝尔文学奖的作品都是用英文写的。如果你学习过 C++,你会感觉 Java 很眼熟,因
为 Java 中许多基本语句的语法和 C++一样,像常用的循环语句、控制语句等和 C++几乎一样,

但不要误解为Java是C++的增强版,Java和C++是两种完全不同的编程语言,它们各有各的优
势,将会长期并存下去,Java 和 C++已成为软件开发者应当掌握的编程语言。如果从语言的简
单性方面看,Java 要比 C++简单,C++中有许多容易混淆的概念,或者被 Java 弃之不用了,或
者以一种更清楚更容易理解的方式实现,例如,Java 不再有指针的概念。

面向对象的
面向对象是指以对象为基本粒度,其下包含属性和方法。对象的说明用属性表达,而通过使
用方法来操作这个对象。面向对象技术使得应用程序的开发变得简单易用,节省代码。基于对象
的编程更符合人的思维模式,使人们更容易编写程序。Java 是一种面向对象的语言,也继承了
面向对象的诸多好处,如代码扩展、代码复用等。我们将在以后的章节中详细地讨论类、对象等
概念。

平台无关的
与平台无关是 Java 最大的优势。其他语言编写的程序面临的一个主要问题是:操作系统的
变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。而用 Java
写的程序不用修改就可在不同的软硬件平台上运行。这样就能实现同样的程序既可以在
Windows 下运行,到了 Unix 或者 Linux 环境不用修改就直接可以运行了。Java 主要靠
Java 虚拟机(JVM)实现平台无关性。平台无关性就是一次编写,到处运行:Write Once, Run
Anywhere。

多线程的
Java 实现了内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生
多个任务在同时执行的错觉,因为,目前的计算机的处理器在同一时刻只能执行一个线程,但处
理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,
所以给人的感觉好像多个任务在同时执行。C++没有内置的多线程机制,因此必须调用操作系统
的多线程功能来进行多线程程序的设计。

安全的
安全性可以分为四个层面,即编译、类装载、字节码校验、沙箱机制。

高效的
高级语言程序必须转换为机器语言程序才能执行,但不同的计算机系统所使用的机器语言不
同。Java 为了实现“一次编译,随处运行”的目标,Java 的源程序在编译时,并不直接编译成
特定的机器语言程序,而是编译成与系统无关的 字节码,由 Java 虚拟机(JVM )来执行。当
JVM 解释执行 Java 程序时,Java 实时编译器(Just-In-Time,JIT)会将字节码译成目标
平台对应的机器语言的指令代码。
早先的许多尝试解决跨平台的方案对性能要求都很高。其他解释执行的语言系统,如 BASIC、
PERL 都有无法克服的性能缺陷。然而,Java 却可以在非常低档的 CPU 上顺畅运行,这是因为
Java 字节码是经过精心设计的,能够直接使用 JIT 编译技术将字节码转换成高性能的本机代码。
事实上,Java 的运行速度随着 JIT 编译器技术的发展已接近于 C++。

健壮的
Java是健壮的语言。为了更好地理解Java的健壮性,先讨论一下在传统编程环境下程序设
计失败的主要原因:内存管理错误和误操作引起的异常或运行时异常。
在传统的编程环境下,内存管理是一项困难、乏味的工作。例如,在C或C++ 中,必须手工

分配、释放所有的动态内存。如果忘记释放原来分配的内存,或是释放了其他程序正在使用的内
存时,就会出错。在传统的编程环境下,异常情况可能经常由“被零除”、“Null 指针操作”、
“文件未找到”等原因引起,必须用既繁琐又难理解的一大堆指令来进行管理。
对此,Java 通过自行管理内存分配和释放,从根本上消除了有关内存的问题。Java 提供
垃圾收集器,可自动收集闲置对象占用的内存。通过提供面向对象的异常处理机制来解决异常处
理的问题。通过类型检查、Null 指针检测、数组边界检测等方法,在开发早期发现程序错误

动态的
Java 语言具有动态特性。Java 动态特性是其面向对象设计方法的扩展,允许程序动态地
装入运行过程中所需的类,这是 C++进行面向对象程序设计所无法实现的。C++程序设计过程中,
每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将
导致程序崩溃。

6:Java的三大技术特性;

6.1:Java虚拟机

Java 虚拟机 JVM(Java Virtual Machine)在 Java 编程里面具有非常重要的地位,相当于前面学到的 Java 运行环境,虚拟机的基本功能如下:

(1)通过 ClassLoader 寻找和装载 class 文件
(2)解释字节码成为指令并执行,提供 class 文件的运行环境
(3)进行运行期间垃圾回收
(4)提供与硬件交互的平台

Java 虚拟机是在真实机器中用软件模拟实现的一种想象机器。Java 虚拟机代码被存储
在 .class 文件中;每个文件都包含最多一个 public 类。Java 虚拟机规范为不同的硬件平台
提供了一种编译 Java 技术代码的规范,该规范使 Java 软件独立于平台,因为编译是针对作为
虚拟机的“一般机器”而做。这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,

也可用硬件来实现。编译器在获取 Java 应用程序的源代码后,将其生成字节码,它是为 JVM 生
成的一种机器码指令。每个Java解释器,不管它是Java技术开发工具,还是可运行 applets
的 Web 浏览器,都可执行 JVM。

JVM 为下列各项做出了定义:
- 指令集(相当于中央处理器[CPU])
- 寄存器
- 类文件格式
- 栈
- 垃圾收集堆
- 存储区

JVM 的代码格式由紧缩有效的字节码构成。由 JVM 字节码编写的程序必须保持适当的类型
约束。大部分类型检查是在编译时完成。任何从属的 Java 技术解释器必须能够运行任何含有
类文件的程序,这些类文件应符合 Java 虚拟机规范中所指定的类文件格式。

虚拟机是 Java 平台无关的保障

正是因为有虚拟机这个中间层,Java 才能够实现与平台无关。虚拟机就好比是一个 Java
运行的基本平台,所有的 Java 程序都运行在虚拟机上,如下图所示:

6.2:垃圾回收;

什么是垃圾
在程序运行的过程中,存在被分配了的内存块不再被需要的情况,那么这些内存块对程序来
讲就是垃圾。

产生了垃圾,自然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占用的内存资源,
回收回来,加以再利用,从而节省资源,提高系统性能。

垃圾回收
- 不再需要的已分配内存应取消分配(释放内存)
- 在其它语言中,取消分配是程序员的责任
- Java 编程语言提供了一种系统级线程以跟踪内存分配:垃圾收集机制
- 可检查和释放不再需要的内存
- 可自动完成上述工作

许多编程语言都允许在程序运行时动态分配内存,分配内存的过程由于语言句法不同而有所
变化,但总是要将指针返回到内存的起始位置,当分配内存不再需要时(内存指针已溢出范围),
程序或运行环境应释放内存。

在 C,C++ 或其它语言中,程序员负责释放内存。有时,这是一件很困难的事情。因为你
并不总是事先知道内存应在何时被释放。当在系统中没有能够被分配的内存时,可导致程序瘫痪,
这种问题被称作 内存漏洞。

Java 编程语言解除了程序员释放内存的责任。它可提供一种系统级线程以跟踪每一次内存
的分配情况。在 Java 虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的内存。垃
圾收集在 Java 技术程序的生命周期中自动进行,它解除了释放内存的要求,这样能够有效避
免内存漏洞和内存泄露(内存泄露就是程序运行期间,所占用的内存一直往上涨, 很容易造成系
统资源耗尽而降低性能或崩溃) 。

提示
(1)在 Java 里面,垃圾回收是一个自动的系统行为,程序员不需要控制垃圾回收的功能
和行为。比如垃圾回收什么时候开始,什么时候结束,还有到底哪些资源需要回收等。
(2)程序员可以通过设置对象为 null(后面会讲到)来标示某个对象不再被需要了, 这
只是表示这个对象可以被回收了,并不是马上被回收。
(3)有一些跟垃圾回收相关的方法,比如:System.gc() ,调用  gc 方法暗示着 Java
虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权
从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。

6.3:代码安全;

Java 如何保证编写的代码是安全可靠的呢?
第一关:编写的代码首先要被编译成为 class 文件,如果代码写得有问题,编译期间就会
发现,然后提示有编译错误,无法编译通过。
第二关:通过编译关后,在类装载的时候,还会进行类装载检查,把本机上的类和网络资源
类相分离,在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。
第三关:类装载后,在运行前,还会进行字节码校验,以判断你的程序是安全的。
第四关:如果你的程序在网络上运行,还有沙箱(Sand Box)的保护,什么是沙箱呢? 就
是如果你的程序没有获得授权,只能在沙箱限定的范围内运行,是不能够访问本地资源的, 从而
保证安全性。

产品介绍 E-data采用.Net技术开发,是为中小型企业和政府量身打造的业务设计与运行平台。 E-data分为设计端和运行端,设计端可以让用户在熟悉的类EXCEL环境下通过表单模型+流程模型+报表模型的设计,来实现按需定制符合自身业务的信息化管理系统,轻松实现信息化管理。运行端采用B/S架构,可以把设计端设计的业务展现在Web页面上,实现异地办公和管理。真正达到随需设计,轻松应用的目的。 产品典型功能 1.简单灵活的表单制作 1)多种单元格属性 用户完全可以像在制作Excel表单那样进行设计,支持Excel中的颜色填充、单元格合并、单元格宽窄的拖拽等。同时还预制了多种单元格属性,既包括了Excel自身的一些属性(如:文本、百分数、货币等),也包括了E-data自身的一些属性(如:下拉框、检查框、条形码等),用于企业对业务数据的属性定义。 2)丰富的函数库 E-data既涵盖了Excel大部分常用的函数,也包括了E-data自身的一些函数(如:取数函数、数函数等)用于满足企业在建立业务时,建立表与表之间的业务关联。 3)支持主子表数据关联 支持主子表关系,可以支持一主一子,也可以支持一主多子。如:销售订单,其主表就是客户信息,产品明细就是子表。 4)数据有效性验证机制 数据有效性验证机制,是指可以验证所填的数据对于该单元格是否正确的一种机制,便于了解当前填的数据是否符合要求。如:在销售订单中,产品数量一栏,针对于数量必须为正整数,而不能为负数或者小数。当填负数或者小数时,系统会给以提示,目前是以红圈的形式提示。 2.可视易用的流程设计 1)基于.Net WF参照WFMC标准二次封装。 2)涵盖常用的工作流和审批流模式。 3)流程建模简单灵活,在可视化环境下进行。支持流程回退、催办、会签、抢先、并发。 3.灵活多样的统计报表 通过拖拽方式,灵活定义明细表,交叉表,统计汇总表等报表类型,所见即所得。对数值数据进行分类汇总和聚合,支持多级汇总,可以更改汇总函数,添加自定义计算和公式。支持异构数据库统计、多表数据综合统计。支持中国式复杂报表。 4.与Excel兼容 1)与Excel格式兼容,支持E-data系统内数据以Excel形势导出与导入。 2)企业现有用EXCEL管理的卡片\台帐式数据,迅速转化为MIS系统 5.完全B/S应用 产品采用B/S结构,可以实现远程应用,异地办公。系统只需进行服务器端的维护和升级即可,客户端零维护。无须专业IT知识(网络环境\IIS等),只要安装好服务器端程序,部署即可完成。 6.可靠的安全机制 1)数据访问依靠权限控制,可以实现字段级动态与静态权限设置。 2)数据可以实现自动备份,支持自动、手动、定期数据备份。 3)系统日志可以跟踪数据修改历史。 7.强大的表单打印功能 强大的表单打印功能,是指E-data的打印功能与EXCEL一样,支持打印预览、页边距调整、页眉页脚等,支持套打。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苍煜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值