Java程序设计概述
摘要:1996年Java第一次发布就引起了人们的广大关注。本文简要地介绍一下Java语言的发展历史。
一、Java程序设计平台
Java是一种优秀的程序设计语言。一旦一种语言应用于某个领域,与现存代码的兼容性问题就摆在了人们的面前。这就导致Java在发展之初没有那么完美无瑕,但是,Java的发展是不断追求进步与完善的过程。在第一次发布时,Java的问世引起了业界的极大关注,举个真实的栗子,当时关注Java的人士不仅限于计算机出版界,还有诸如《纽约时报》《华盛顿邮报》《商业周刊》这样的主流媒体。
Java是个一完整的平台,有一个庞大的库,其中包含了很多的代码和一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾手机等服务的执行环境。
作为一名程序设计人员,很希望能有一种语言,它的语法易于理解、可操作性强,Java满足这些要求的。Java有着功能齐全的出色语言,和高质量的执行环境,还提供了庞大的库。这些正是它的魅力所在。
二、探索Java的神奇所在
1.简单性
Java剔除了C++中许多很少使用、难以理解、易混淆的特性。相当于,Java是C++语法的一个“纯净”版本。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等。当然,Java并没有完全剥离掉与C++语法上的共同性。比如,switch语句的语法在Java中就没有改变。
另外,Java的简单性还体现在,Java的目标之一是支持开发能够在小型机器上独立运行软件。基本的解释器以及类支持大约仅为40KB;再加上基础标准类库和对线程的支持(基本上是一个自己包含的微内核)大约需要增加175KB。
在当时,这已经是了不起的飞跃了。而今,由于不断的扩展,库类已经相当庞大了。现在有一个独立的具有较小库类的Java微型版(Java Micro Edition),这个版本适用于嵌入式设备。
2.面向对象
面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。
3.分布式
Java有一个丰富的例程序,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开访问网络上的对象,其操作性就像访问本地文件那么简单。
(补充两个名词解释:1.Sandboxie:即沙箱或沙盘,是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此y运行时所产生的变化可以随后删除它。其为独立的虚拟环境,可以用测试不受信任的应用程序或上网行为。2.Visual Basic:是由微软公司开发的结构化模版化的、面向对象的,包含开发环境的事件驱动为机制的可视化程序设计语言。)
4.健壮性
Java编译器能够检测出许多其他语言中仅在运行时才能够检测出来的问题。Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
5.安全性
Java适用于网络/分布式环境。从一开始,Java就设计能够防范各种攻击:
1)运行时推栈溢出。
2)破坏自己的进程空间之外的内存。
3)未经授权读写文件。
最初,Java开发包(Java Development Kit,JDK)的第一版本问世不久,就被发现存在bug,也多次被黑客攻击。为修复bug,sun以及之后的Oracle公司度过了很艰难的时期。Java浏览器插件不再信任远程代码,除非代码有数字签名而且用户同意执行这段代码。
6.体系结构中立
编译器生成一个体系结构中立的目标文件格式,这是一种编译过程的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。
7.可移植性
与C和C++不同,Java规范中没有“依赖具体实现”的地方。其基本数据类型的大小以及有关运算都做了明确的说明。Java库能够很好的支持平台独立性。你可以处理文件、正侧表达式、XML、日期和时间、数据库、网络链接、线程等,而不用操心底层操作系统。
8.解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且轻量级的过程,使得开发环境更加便捷。
9.高性能
Java更高性能的体现,字节码可以(在运行时刻)动态地翻译称对应运行这个应用的特定CPU的机器码。
10.多线程
多线程可以更好的交互相应和实时行动。
例如,在并发程序设计这块。Java在问世之初,当时,多核处理器还很神秘,而WEB编程才刚刚起步,处理器要花很长时间等待服务器响应,需要并发程序设计来确保用户界面不会被“冻住”。Java在这方面表现出色,在当时就能很好的处理此事。
11.动态性
Java比C或C++更具动态性。它能够适应不断发展的环境。库中可以自有的添加心方法和实例变量,而对客户端不会有影响。
三、Java applet与Internet
在网页中运行的Java程序称为applet。有使用applet,需要启动Java的Web浏览器执行字节码。在Adobe的Flash技术变得流行时,Java遭到了严重的安全问题,浏览器和Java浏览器插件变得限制越来越多。如今,要在浏览器中使用applet,是有一定的难度的。
四、Java发展历史
1.Java语言的前身:Oak(橡树)
2.Java语言的版本:
-JavaSE:(java2 Stardard Edition)标准版,定位客户端,主要用于桌面程序的开发
-JavaME:(java2 Micro Edition)微型版,主要用于嵌入式系统开发。(现在,不怎么用了!)
-JavaEE:(Java2 Enterprise Edition)企业版,定位在服务端,主要用于分布式系统,一些大型的电子商务系统的开发。
2017-05-27 14:11:27
Java程序设计概述的更多相关文章
- Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库 如果想要有奇特的绘 ...
- 基础知识(1)- Java程序设计概述
1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安全性 1.2.6 体系 ...
- 第一章 Java程序设计概述
1.1 Java程序设计平台 Java是一门设计优秀的语言,更是一个完整的平台.Java平台包括了一个庞大可重用的类库以及提供了安全性,跨系统,自动垃圾收集等优秀特性的执行环境. 这也使其成为自发布以 ...
- java核心技术学习笔记之一程序设计概述
Java 核心技术之一程序设计概述 一. Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- Java程序设计环境概述
本文主要Java程序设计环境的要点,以及相关注意事项. 一.安装Java开发包 Oracle公司为Linux.Mac OS X.Solaris和Windows提供了Java开发工具包(JDK)的最新. ...
- 《Java程序设计》 课程教学
<Java程序设计> 课程教学 给学生 考核方式 100分构成 翻转课堂考核12次(5*12 = 60):每次考试20-30道题目,考试成绩规格化成5分(比如总分20分就除以4) 注意:不 ...
- 2016-2017-2 《Java程序设计》教学进程
2016-2017-2 <Java程序设计>教学进程 目录 考核方式 课前准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...
- 2015-2016-2 《Java程序设计》教学进程
2015-2016-2 <Java程序设计>教学进程 目录 考核方式 寒假准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...
随机推荐
- GitHub--创建新的分支(转)
如何在 GitHub 的项目中创建一个分支呢? 其实很简单啦,直接点击 Branch,然后在弹出的文本框中添加自己的 Branch Name 然后点击蓝色的Create branch就可以了,这样一来 ...
- 利用UML语言建模--以图书馆管理系统为例
一.基本信息 标题:利用UML语言建模--以图书馆管理系统为例 时间:2016 出版源:内蒙古科技与经济 领域分类:UML:RFID:图书馆:模型: 二.研究背景 问题定义:建立图书馆管理系统 难点: ...
- winSCP无法连接虚拟机Linux解决
刚在虚拟机上装上Linux(Centos7)后使用winSCP建立文件共享发现连接超时,经过几个小时的查找发现Linux中没有eth0文件,这说明其网卡名不是eth0,在网上查过一些解决办法有的通过修 ...
- Jmeter安装与实例
安装步骤: 安装环境:Windows7 安装包:JDK安装包:Jmeter安装包: 环境变量配置:变量名JAVA_HOME 值:jdk的安装路径 变量名CLASSPATH值:.;%JAV ...
- Laravel在进行表单验证时,错误信息未返回
马上要毕业了,找了现在的这家公司,压力不大,自己也比较喜欢,唯一的遗憾就是手机号莫得换了(找不到换的借口). 进入正题: 之前自己的博客(http://lxiaoke.cn)是用ThinkPHP开发的 ...
- SQL注入之重新认识
i春秋作家:anyedt 原文来自:https://bbs.ichunqiu.com/thread-41701-1-1.html 引言 作为长期占据 OWASP Top 10 首位的注入,认识它掌握它 ...
- Android Service用法知识点的讲解
Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...
- Data - 关于大数据
历史与趋势 大数据的前世今生:诞生.发展.未来? 如何利用数据赚钱?大数据价值变现的10种商业模式及利弊分析 10大行业大数据应用痛点及解决策略 大数据凉了?不,流式计算浪潮才刚刚开始 概念与定义 关 ...
- 爬虫--反爬--css反爬---大众点评爬虫
大众点评爬虫分析,,大众点评 的爬虫价格利用css的矢量图偏移,进行加密 只要拦截了css 解析以后再写即可 # -*- coding: utf- -*- """ Cre ...
- 测试工具之Match Tracer(正则表达式匹配工具)
这个工具完全界面化,非常好用,如果对自己写的正则表达式不够确定,可以使用这个软件来试水一下 从下面网址可以下载: http://www.regexlab.com/zh/mtracer/download ...