1、Java程序概述
1、什么是Java?
Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
2、Java白皮书的关键术语
1)、简单性
相对于C++来说,Java去除了C++中许多很少使用、难以理解、容易混淆的特性,比如指针运算、结构、联合、虚基类等,但是并没有清除C++中所有不适当的特性,比如switch。
简单的另一个点就是“小”,Java的目标之一是支持开发能够在小型机器上面独立运行的软件。
2)、面向对象
面向对象是一种程序设计技术,它将重点放在数据(即对象)和对象的接口上。在本质上来说,Java的面向对象的能力与C++是一样的,其不同点在于多重继承,在Java中取而代之的是更简单的接口概念。
3)、分布式
Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。
Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
4)、健壮性
Java的设计目标之一在于使得Java编写的程序具有多方面的可靠性。Java非常强调进行早起的问题检测、后期动态的检测,以及消除容易出错的情况......
Java与C/C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
5)、安全性
Java要适用于网络/分布式环境。为了实现这个目标,安全性颇受重视。使用Java可以构建防病毒、防篡改的系统。
6)、体系结构中立
编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。
Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态的转换成本地机器代码。
7)、可移植性
与C和C++不同,Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算的行为都有明确的说明。
作为系统组成部分的类库,定义了可移植的接口。
除了与用户界面有关的部分外,所有其他Java库确实可以很好的支持平台独立性,你可以处理文件、正则表达式、XML、日期和时间、数据库、网络连接、线程等,而不用操心底层操作系统。
8)、解释型
Java解释器可以在任何移植了解释器的机器上直接执行Java字节码。由于连接是一个增量式且轻量级的过程,所以,开发过程也变得更加快捷,更具有探索性。
你可以做一些常识,然后就能立即看到结果,在Java发展的前20年里,开发环境并没有把重点放到这种体验上。直到Java9才提供了jshell工具支持快捷而且具有探索性的编程。
JShell是Java 9新增的一个交互式的编程环境工具。它允许你无需使用类或者方法包装来执行 Java 语句。它与 Python 的解释器类似,可以直接输入表达式并查看其执行结果。
如以下为一个简单的jshell脚本使用:
| 欢迎使用 JShell -- 版本 11.0.6
| 要大致了解该版本, 请键入: /help intro
jshell>
jshell> String helloworld = "hello world"; //输入这一行之后回车可以查看执行结果。
helloworld ==> "hello world"
jshell>
9)、高性能
尽管对解释后的字节码性能已经比较满意,但在某些场合下还需要更高的性能。字节码可以在运行时动态转换成对应运行这个应用的特定CPU的机器码。
10)、多线程
多线程可以带来更快的交互响应和实时行为。
11)、动态性
从很多方面来看,Java与C或C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由地添加新方法和实例变量,而对客户端却没有任何影响。在Java中找出运行时类型信息十分简单。
3、Java发展简史
Java之父:James Gosling。
1991年:起源,开始叫Oak,后改名为Java。
1996年:第一个Java版本,Java 1.1。
1998年:Java 1.2 又称Java 2,分为标准版J2SE,企业版J2EE,微型版J2ME。
2014年:Java 8 发布,包含了一种函数式的编程方式,可以很容易的表述并发执行的计算。
2017年:Java 9 发布,提供了一些吸引人的特性。
从2018年开始,每6个月Java都会发布一个新的版本,用来支持更快的引入新特性。某些版本如Java11设计为长期支持的版本。
4、关于Java的常见误解
1)、Java是HTML的扩展。
Java是一种程序设计语言,HTML是一种描述网页结构的方式。除了用于在网页上放置Java applet的HTML扩展之外,两者没有任何共同之处。
2)、使用XML,所以不需要Java。
Java是一种程序设计语言,XML是一种描述数据的方式。可以使用任何一种程序设计语言处理XML数据,而JavaAPI对XML处理提供了很好的值,
此外,许多重要的XML工具都采用Java编写。
3)、Java是一种非常容易学习的程序设计语言。
像Java这种功能强大的语言都不太容易学习,Java基础语法很少,但是Java类库中包含数千个类和接口以及数万个函数,如果想要利用Java解决实际问题,还是需要了解不少内容的。
4)、Java将成为适用于所有平台的通用性编程语言。
从理论上讲,这个完全有可能,但在实际中,某些领域其他语言有更出色的表现。
如OC和Swift在iOS设备上有着无可取代的地位,浏览器中的处理几乎完全由JavaScript掌控,Windows程序通常用C++或C#编写。Java在服务器端编程和跨平台客户端领域则很有优势。
5)、Java只不过是另外一种程序设计语言。
Java是一种很好的程序设计语言,而一种程序设计语言的成功更多地取决于其支撑系统的能力,而不是语法的
6)、Java是专用的,应该避免使用。
最初创建时,Sun公司为发布者和最终用户提供了免费许可,虚拟机和类库的源代码可以免费获得,但仅限于查看,而不能修改和发布。
在2007年发生了戏剧性的变化,Oracle公司致力于保持Java开源,但有一点美中不足--专利,任何人都可以得到专利许可,允许其使用和修改Java,不过仅限于桌面和服务器平台,
如果想在嵌入式系统中使用Java,就需要另外一个不同的许可,很可能需要付费。
7)、Java是解释性的,因此对于关键的应用程序速度太慢了。
早期的Java是解释型的,现在Java虚拟机使用了即使编译器,因此采用Java编写的“热点”代码运行速度与C++相差无几,有些情况下甚至更快。
8)、所有的Java程序都是在网页中运行的。
所有的Java applet都在Web浏览器中运行。但大多数Java程序是运行在Web浏览器之外的独立应用程序。实际上,很多Java程序都在Web服务器上运行并生成用于网页的代码。
9)、Java程序存在重大安全风险。
对于早期的Java,有过关于Java安全系统失效的报告,曾经因此过公众关注。
客观的来说,针对Windows可执行文件存在更大量的病毒攻击,并造成了巨大的损害,不过奇怪的是却很少有人批评被攻击平台的弱性。
尽管距离Java诞生已经20年之久,与其他常用的执行平台相比,Java还是安全的多。
10)、JavaScript是Java的简易版。
JavaScript是一种可以在网页中使用的脚本语言,除了和Java名字有些相像,并无任何关系。
1、Java程序概述的更多相关文章
- 一、Java语言概述与开发环境、第一个java程序
目录: 1.1 Java特点 1.2 Java程序运行机制 1.3 安装JDl和配置环境变量 1.4 第一个JAVA程序 1.5 第一个JAVA程序的含义 前言 Java语言历时近二十年,已发展成为人 ...
- 1、Java语言概述与开发环境——编译和运行第一个程序HelloWorld.java
编写一个Java程序到运行的步骤概述: 1.将Java代码编写到扩展名为.Java的文件中 2.通过Javac命令对该Java文件进行编译 3.通过Java命令对生成的class文件进行运行 一.编写 ...
- Java程序性能优化之性能概述
性能的基本概念 一).什么叫程序的性能? 程序运行所需的内存和时间. 二).性能的表现形式: 1).执行速度: 程序的反应是否迅速,响应时间是否足够短. 2).启动时间:程序从运行到可以处理正常业务所 ...
- 1、Java语言概述与开发环境——Java程序运行机制
Java语言是一种特殊的高级语言,它既有解释型语言的特性,也具有编译型语言的特征,因为Java要经过先编译后解释两个步骤. 一.高级语言的运行机制 计算机高级语言按程序的执行方式可以分为编译型和解释型 ...
- Java 程序优化 (读书笔记)
--From : JAVA程序性能优化 (葛一鸣,清华大学出版社,2012/10第一版) 1. java性能调优概述 1.1 性能概述 程序性能: 执行速度,内存分配,启动时间, 负载承受能力. 性能 ...
- Java Annotation概述
@(Java)[Annotation|Java] Java Annotation概述 用途 编译器的相关信息,如用于检测错误和一些警告 编译时和部署时的处理,如一些软件用于自动生成代码之类的 运行时处 ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 【JAVA多线程概述】
一.多线程概述 一个进程中至少有一个线程,每一个线程都有自己运行的内容,这个内容可以称为线程要执行的任务. 不能没一个问题都使用多线程,能使用单线程解决的问题就不要使用多线程解决. 使用多线程的弊端: ...
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 《Java程序性能优化》学习笔记 设计优化
豆瓣读书:http://book.douban.com/subject/19969386/ 第一章 Java性能调优概述 1.性能的参考指标 执行时间: CPU时间: 内存分配: 磁盘吞吐量: 网络吞 ...
随机推荐
- 第一次写,python爬虫图片,操作excel。
第一次写博客,其实老早就注册博客园了,有写博客的想法,就是没有行动,总是学了忘,忘了丢,最后啥都没有,电脑里零零散散,东找找,西看看,今天认识到写博客的重要性. 最近闲着看了潭州教育的在线直播课程,颇 ...
- C# DataGrid嵌套DataGrid动态隐藏显示行
前端代码: <Window x:Class="DataGridPractice.MainWindow" xmlns="http://schemas.microsof ...
- vi 快捷键/ctags
vi 配置 syntax enableset nu set relativenumberset hlsearch set autoindentset shiftwidth=4set tabstop=4 ...
- C#和.NET Framework 简介
C#是一种通用的类型安全且面向对象编程的语言.这种语言的目标是提高程序员的生产力,为此需要在简单性.可表达性和性能之间实现平衡.C#语言的首席架构师从第一个版本开始就是Anders Hejlsberg ...
- Vue 收集表单数据-输入input,单选radio,多选checkbox,下拉框select ,以及v-model的3个修饰符(lazy,number,trim)
From案例分析: 1.Html 部分: <form @submit.prevent="" style=" border: 1px solid rgb(109, 2 ...
- rust crm 镜像源管理
一.下载crm cargo install crm https://github.com/wtklbm/crm 二.命令 # 在终端执行 # # NOTE: # - [args] 表示 args 是一 ...
- NIO 缓冲区 ByteBuffer 之黏包和半包
一.低效率方式 /** * 黏包.半包 */ private static void buffExample2() { /* 网络上传输多条数据给服务器,数据之间使用 \n 分隔. 但由于某种原因(多 ...
- 2022-3-28内部群每日三题-清辉PMP
1.由于一直重复执行相同的任务,一个敏捷团队的士气低落.敏捷管理专业人士(主题专家 SME)应采取哪一项行动? A.增加团队的资源数量,协助主题专家完成任务. B.让团队成员执行其活动的价值流分析. ...
- UnityAndroid 获取根目录文件
1. 在Unity打包时获取SD权限 2. Android根目录为 "/storage/emulated/0"; 代码: if (Directory.Exists("/s ...
- Window下载并安装WinSCP客户端
winSCP官方网站:https://winscp.net/eng/docs/lang:chs. 环境 操作系统:Window 10 企业版LTSC;内存:8GB;操作类型:64位. 步骤 1. 打开 ...