Java从零单排Round2----Java概述

news/2024/11/9 5:02:20/
Java概述

He gave man speech, and speechcreated thought, Which is the  measure of the Universe measure of the Universe measure of the Universe measure of the Universe”—Prometheus Unbound, Shelley  Human beings ... are very much at the mercy ofthe particular language which has  become the medium of expression for their society.It is quite an illusion to imagine  that one adjusts to reality essentially withoutthe use of language and that language  is merely an incidental means of solving specificproblems of communication and  reflection.  The fact of the matter is thatthe “real world” is to a large extent  unconsciously built up on the language habits ofthe group.  The Status of Linguistics as a Science, 1929, Edward Sapir 

1.Java的发展简史

1.1Java是Sun公司开发的一种面向对象的编程语言,自1995年Java面试以来,Java已经逐渐成为最流行的编程语言之一 20138月编程语言排行榜: 趋势图

1.2 在20世纪90年代初,Sun公司的工程师James Gosling等人想开发一种基于智能家用电器上运行的语言,用来解决电视机、微波炉、电话等家电之间的通信控制等问题,并将这种语言命名为Oak,但由于有线电视业界认为Oak给予用户太多的控制权,Oak几乎没有任何市场,面临夭折的危险。然而,塞翁失马,焉知非福!随着互联网和浏览器(Browser)技术的发展壮大,用改进后的Oak语言编写的一些小程序(如动画、游戏等)风靡互联       网,Oak起死回生。当时由于Oak这个商标已被注册,于是采用了Oak工程师们经常喝的一种产自印尼爪哇岛的咖啡为名,即Java。1995年5月Sun公司正式发布了Java语言,1996年1月,Java的第一个开发工具包JDK 1.0发布。1998年12月,JDK 1.2发布,这是Java发展历程中一个革命性的版本,它将Java分成了3个版本:J2SE、J2EE和J2ME。       其中:

  • Java 2标准版(Java 2 Standard Edition,J2SE)是整个Java技术的核心和基础,为用户提供了开发与运行Java应用程序的编译器、基础类库及Java虚拟机等。
  • Java 2企业版(Java 2 Enterprise Edition,J2EE)是Java语言中最活跃的体系之一,它提供了一套完整的企业级应用开发解决方案。J2EE不仅仅是指一种标准平台(Platform),更多的表达着一种软件架构和设计思想。
  • Java 2微型版(Java 2 Micro Edition,J2ME)是用于移动设备、嵌入式设备上Java应用程序的开发,包括虚拟机和一系列技术规范。

从JDK 1.2开始到JDK 1.5,人们习惯上都把它称为Java 2。直到2005年6月,在JavaOne大会上Sun公司发布了Java SE 6,Java的各种版本更名取消了其中的数字“2”:J2SE更名为Java SE(Java Platform Standard Edition),J2EE更名为Java EE(Java Platform Enterprise Edition),J2ME更名为Java ME(Java Platform Micro Edition)。

2.Java特点

1.     Java是目前使用最为广泛的网络编程语言之一。它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点。 2.     简单 Java 语言简单是指这门语言既易学有好用。不要将简单误解为这门语言很干瘪。你可能很赞同这样的观点 英语要比阿了伯语言容易学。但这并不意味着英语就不能表达丰富的内容和深刻的思想,许多文学若贝尔奖的作品都是英文写的。如果你学习过C++语言,你会感觉 Java很眼熟,因为 Java中许多基本语句的语法和 C++一样,像常用的循环语句,控制语句等和C++几乎一样,但不要误解为Java 是C++的增强版,Java 和C++是两种完全不同的语言,他们各有各的优势,将会长期并存下去,Java语言和 C++语言已成为软件开发者应当掌握的语言。如果从语言的简单性方面看,Java要比 C++简单,C++中许多容易混淆的概念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方式实现,例如,Java不再有指针的概念。 3.     面向对象基于对象的编程更符合人的思维模式,使人们更容易编写程序。在实际生活中,我们每时每刻都与对象在打交道。我们用的钢笔,骑的自行车,乘的公共汽车等。而我们经常见到的卡车,公共汽车,轿车等都会涉及以下几个重要的物理量可乘载的人数,运行速度,发动机的功率,耗油量,自重,轮子数目等。另外,还有几个重要的功能加速功能,减速功能,刹车,转弯功能等。我们也可以把这些功能称作是他们具有的方法,而物理量是它们的状态描述。仅仅用物理量或功能不能很好的描述它们。在现实生活中,我们用这些共有的属性和功能给出一个概念机动车类。一个具体的轿车就是机动车类的一个实例 对象 .Java 语言与其它面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义。 4.     与平台无关与平台无关是Java 语言最大的优势。其它语言编写的程序面临的一个主要问题是  操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。Java的虚拟机成功地解决了这个问题,Java编写的程序可以在任何安装了 Java虚拟机 JVM  的计算机上正确的运行,Sun公司实现了自己的目标  “一次写成,处处运行”。 5.     解释型 我们知道C,C++等语言,都是只能对特定的CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CUP有关。例如,在C语言中,我们都碰到过类似下面的问题int 型变量的值是10 ,那么下面代码的输出结果是什么呢printf(“%d,%d”,x,x=x+1)如果上述语句的计算顺序是从左到右,结果是10,11 但是,有些机器会从右到左计算,那么结果就是11,11.Java不像C++,它不针对特定的CPU芯片进行编译,而是把程序编译为称做字节码的一个“中间代码”。字节码是很接近机器码的文件,可以在提供了Java 虚拟机 JVM  的任何系统上被解释执行。Java被设计成为解释执行的程序,即翻译一句,执行一句,不产生整个的机器代码程序。翻译过程如果不出现错误,就一直进行到完毕,否则将在错误处停止执行。同一个程序,如果是解释执行的,那么它的运行速度通常比编译为可执行的机器代码的运行速度慢一些。但是,对Java来说,二者的差别不太大,Java的字节码经过仔细设计,很容易便能使用JIT 即时编译方式  编译技术将字节码直接转化成高性能的本地机器码,Sun公司在 Java 2发行版中提供了这样一个字节码编译器——JIT(Just InTime),它是Java虚拟机的一部分。Java运行系统在提供JIT的同时仍具有平台独立性,因而“高效且跨平台”对Java来说不再矛盾。如果把 Java 的程序比做“汉语”的话,字节码就相当于“世界语”,世界语不和具体的“国家”关,只要这个“国家”提供了“翻译”,就可以再快速地把世界语翻译成本地语言。 6.     多线程 Java 的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为,目前的计算机的处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速地切换,由于处理器速度非常快,远远超过了人接收信息的速度,所以给人的感觉好象多个任务在同时执行。C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。 7.     安全 当你准备从网络上下载一个程序时,你最大的担心是程序中含有恶意的代码,比如试图读取或删除本地机上的一些重要文件,甚至该程序是一个病毒程序等。当你使用支持Java的浏览器时,你可以放心地运行Java的小应用程序 Java Applet  ,不必担心病毒的感染和恶意的企图,Java小应用程序将限制在 Java运行环境中,不允许它访问计算机的其它部分。 8.     动态 Java 程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得Java 可以在分布环境中动态地维护程序及类库,而不像C++那样,每当其类库升级之后,相应的程序都必须重新修改,编译。



http://www.ppmy.cn/news/234555.html

相关文章

React-Router

React-Router 单页面应用 只有一个html文件 主流的开发模式变成了通过路由进行页面切换 优势: 避免整体页面刷新 用户体验变好 前端负责事情变多了 开发的难度变大 路由的本质 概念来源于后端 : 一个路径表示匹配一个服务器资源 /a.html -> a对应的文件资源 /b.html -&…

01:快速入门爬虫

1.引导 1.Robots协议 Robots协议(爬虫协议)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。该协议是国际互联网界通行的道…

回溯算法part3 | ● 39. 组合总和 ● 40.组合总和II ● 131.分割回文串

文章目录 39. 组合总和思路思路代码困难 40.组合总和II思路官方题解代码困难 131.分割回文串思路思路代码官方题解代码困难 今日收获 39. 组合总和 39.组合总和 思路 回溯的时候不需要从下一个数开始了,从当前数开始即可。 思路代码 func combinationSum(candi…

【SpinalHDL快速入门】SpinalHDL知识卡片

文章目录 新建工程各个工具版本SpinalHDL入门例子Scala 易忘知识点返回值为空的函数ApplyObject入口函数mainclassCase class继承(Inheritance)饱和运算计数器Demodemo1demo2(支持reset信号异步复位,低电平有效)demo3(一个文件,支持异步复位)新建工程各个工具版本 配置…

c语言中字符串比较的库函数是什么

说起比较运算&#xff0c;肯定第一时间想到了C语言中关于比较的相关运算符 “>、<、&#xff01;、>、<、”&#xff0c;那么要比较两个字符串是否相等是不是直接用“”比较就行了。下面就来看看这种方法行不行&#xff1f; 先看一个例子 void main( void ) {cha…

久戴不痛的蓝牙耳机有哪些?公认佩戴最舒适的无线蓝牙耳机推荐

现在的蓝牙耳机有着各种各样的性能&#xff0c;佩戴舒适也成为了人们选择蓝牙耳机的重要性能之一。戴着舒服&#xff0c;久戴不痛的蓝牙耳机有哪些&#xff1f;符合人体工学设计&#xff0c;轻便小巧&#xff0c;佩戴稳固的蓝牙耳机受到了不少人的欢迎。下面&#xff0c;我来给…

啥牌子的蓝牙耳机好?南卡、华为和漫步者蓝牙耳机

蓝牙耳机是人们不可缺的数码用品&#xff0c;出门在外或是玩游戏都离不开&#xff0c;随着国产TWS耳机的崛起&#xff0c;越来越多的人优先选择国产蓝牙耳机品牌&#xff0c;下面找来了当前市面上三款热门真无线蓝牙耳机&#xff0c;分别有南卡小音舱、华为FreeBuds 4E、漫步者…

2022年千元以下有哪些值得购买的蓝牙耳机?平价耳机深度测评,漫步者、南卡、Vivo、oppo、小米、三星、华为哪款最值得买?

许多朋友挑选无线蓝牙耳机的时候&#xff0c;并不知道自己到底需要什么样的无线蓝牙耳机&#xff0c;一心只想着性能最强可以节省时间的&#xff0c;但如若要找一款适合自己的蓝牙耳机&#xff0c;必要的参数对比是不能省的&#xff0c;所以今天我来一期蓝牙耳机测评&#xff0…