【0】README
1)本文部分文字描述转自 “core java volume 1” 旨在review “review_core_basic_java(1)java程序设计概述” 的相关知识;
【1】 java 程序设计平台

【2】 java 白皮书的关键术语
0)intro:java的设计者编写了颇有影响力的白皮书,用来解释设计的初衷以及完成的情况,并发布了一个摘要;该摘要归纳为11个关键术语(terms);
term1)简单性;
term2)面向对象: java 与 C++ 的主要不同点在于多继承;(干货——java与 C++的不同点)
term3)网络技能(Network-Savvy): java有一个扩展的例程库,用于处理像HTTP 和 FTP 之类的TCP/IP 协议;
term4)健壮性: java 和 C++ 最大的不同在于 java采用的指针模型可以消除重写内存和损坏数据的可能性;这个特性非常有用, 它使得java 编译器能够检测许多在其他语言中仅在运行时刻才能够检测出来的问题;java是绝对安全的, 其原因是永远不会存取一个坏的指针,造成内存分配错误,也不必防范内存泄露;(干货——java 和 C++ 最大的不同)
term5)安全性:java 适用于网络/分布式环境,使用 java 可以构建防病毒、防篡改的系统;
一开始, java就设计成 能够防范各种攻击, 其中包括:
term5.1)运行时堆栈溢出; 如,蠕虫等病毒常用的攻击手段;
term5.2)在自己的处理空间之外破坏内存;
term5.3)未经授权读写文件;
Attention) 自java1.1 以来,java就有了 数字签名类 的概念,通过数字签名类,可以确定类的作者;如果信任这个类的作者,这类就可以在你的机器上拥有更多的权限;
term6)体系结构中立: java编译器通过生成与特定的计算机体系结构无关的 字节码指令来实现这一特性;(编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有 java 运行时系统, 就可以在许多处理器上运行)
即时编译: 虚拟机有一个选项,可以将使用最频繁的 字节码序列 翻译成 机器码,这个过程被称为 即时翻译;(干货——引入了即时编译)
term7)可移植性: 在java 中, 数据类型具有固定的大小, 这消除了代码移植时令人头痛的问题, 二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰, 而字符串采用的是 标准的 Unicode 格式存储的(例如, java中的int 永远为32位整数, 而在C/C++中, int 可能是16位整数、32位整数,也可以是编译器提供商指定的其他大小);
term8)解释性:java 解释器可以在任何移植了解释器的机器上执行 java 字节码;(现在,使用 即时编译器 将字节码 翻译成 机器码)
term9)高性能: 在运行时, 字节码可以快速地翻译成运行这个应用程序的特定CPU 的机器码;
term10)多线程:多线程可以带来更好的交互响应和实时行为;(多线程编译的简单性 是 java 成为颇具魅力的服务器段开发语言的主要原因之一)
term11)动态性:java 能够适应不断发展的环境,库中可以自由地添加新方法和实例变量, 而对客户端没有影响;
【3】 java applet 与 internet1
1)想法简单:用户从internet 下载java 字节码, 并在自己的机器上运行;
2)java applet:在网页中运行的 java 程序被称为 applet;
3)用户下载一个applet 就如同在网页中嵌入一副图片; 关键一点是:图片是活动的, 它可以对用户命令做出响应,改变外观,在运行它的计算机 与 提供它的计算机之间传递数据;而静态网页将无法实现这种直接的操作;

【4】 java 发展简史

1)java的历史要追溯到1991年: 由 Patrick Naughton 和 James Gosling(计算机全能奇才)设计一种计算机语言,主要用于像有线电视转换盒之类的消费设备。由于这些消费设备的处理能力和内存都很有限, 所以语言必须非常小且能够生成非常紧凑的代码;另外, 由于不同的厂商会选择不同的中央处理器(CPU), 因此这种语言的关键是 不能与任何特定的体系结构捆绑在一起,这个项目的名字被命名为 “Green”;

2)引入虚拟机:代码短小,紧凑且与平台无关, 这些要求促使开发团队联想起 很早以前的一种模型, 某些 Pascal的实现曾经在早起的 PC 上尝试过这种模型。以Pascal的发明者Niklaus Wirth 为先驱, 率先设计出一种为假想的机器生成中间代码的可移植语言(假想的机器称为虚拟机——java虚拟机即 JVM的命名由来)。这种中间代码可以应用于已经正确安装解释器的机器上。Green 项目工程师也使用了虚拟机;
3)引入Oak 和 java:不过,Sun公司的人都有 UNIX 的应用背景, 因此所开发的语言以 C++为基础,而不是 Pascal, 特别是这种面向对象语言, 而不是面向过程的。Gosling 把这种语言称为“Oak”(这大概因为他非常喜欢其办公室外的橡树)。Sun公司后来发现Oak是一种已有的计算机语言的名字,于是,将其改名为java;
4)Green项目发布第一个产品——*7:92年, Green项目发布了第一个产品——7*,Green项目组成员想把该技术推向市场,于是,Green项目组竞标了一个提供视频点播等新型服务的 有线电视盒的项目, 但没有成功,得到这个项目的公司的领导恰恰是开创 Netscape 公司的 Jim Clark。Netscape 公司后来对java 的成功给予了很大的帮助;
5)First Person公司解散:Green项目组(这时换了一个新名字——First Person 公司)花费了1993年一整年以及1994年上半年来寻找技术买家, 然而一个也没有找到, 1994年,First Person 公司解散;
6)Internet的万维网发展壮大:当这一切在 Sun 公司中继续进行的时候, Internet 的万维网也日渐发展壮大。Web的关键是吧超文本页面转换到屏幕上的浏览器。 1994年大多数人还都在使用 Mosaic, 这是一个1993年出自 伊利诺斯大学超级计算中心的非商业化的Web 浏览器;
7)Gosling决定开发浏览器:Gosling 说在 1994年中期, java 语言的开发者意思到: ”我们能够建立一个最酷的浏览器“。因为, 我们已经拥有在 客户机/服务器 主流模型中所需要的体系结构中立、实时、可靠、安全——这些在工作站环境中并不太重要,所以我们决定开发浏览器;
8)HotJava浏览器问世:实际的浏览器是由 Patrick Naughton 和 Jonathan Payne 开发的, 并演变为 HotJava 浏览器(采用 Java 语言编写), 他们还让 HotJava 浏览器具有执行网页中内嵌代码的能力, 这些在1995年5月23日的 SunWorld 大会上得到展现;
9)java1.0发布:1996年初, Sun 发布了Java的第一个版本; 1998年12月 Java1.2 发布3天后, Sun 公司市场部将其名称改为 更加吸引人的 “Java 2 标准软件开发工具箱1.2 版”;除了标准版外, Sun还推出了两个其他的版本: 一个是用于手机等嵌入式设备的“微型版”;另一个是用于服务器端处理的“企业版”。
10)Java成为服务器端应用的首选平台:标准版的1.3和1.4 对最初的Java2 版本做出了某些改进,扩展了标准类库,提高了系统性能;在此期间, Java applet 采用低调姿态,并淡化了客户端的 应用, 但 Java却成为服务器端应用的首选平台;
11)Java5.0版发布:5.0版 是 自1.1 版以来第一个对 Java语言做出重大改进的版本(这一版本原来被命名为1.5版, 在2004年的 JavaOne会议后,版本数字升至 5.0), 这个版本添加的内容包括:泛型类型(generic type), for each 循环, 自动装箱和元数据;
12)版本6于2006年年末发布:这个版本没有对语言方面再进行改进,但增强了类库;
13)Sun Microsystems 于2009年被Oracle 收购:随着数据中心越来越依赖于商业硬件 而不是 专业服务器,Sun Microsystems 终于沦陷, 于2009年被Oracle 收购;Java的开发停滞了很长一段时间, 直到2011年 Oracle发布了Java的一个新版本 Java7, 其中只做了一些简单的改进,而决定将重要的改进推迟到 Java8, 该版本将在2013年发布;

【5】 关于Java 的常见误解

........................
8)Java是解释型的,因此对于关键的应用程序速度太慢了;
即时编译器:早起的Java 是解释型的, 现在除了想手机这样的微型平台外,Java 虚拟机使用了 即时编译器, 因此采用 Java编写的热点代码 其运行速度与C++ 相差无几;(干货——引入了即时编译器)

9)所有的Java 程序都是在网页中运行的: 所有的Java applet 都是在网页浏览器中运行的, 这恰恰是 applet的定义, 即一种在网页中运行的 Java程序。然而, 大多数Java 程序是运行在 浏览器之外的独立应用程序。实际上, 很多Java 程序都在 Web 服务器上运行并生成用于网页的代码;

review_core_basic_java(1)java程序设计概述相关推荐

  1. Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述

    第1章 Java程序设计概述 1.1 Java程序设计平台  具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求.  可移植性  垃圾收集  提供大型的库   如果想 ...

  2. 《Java核心技术:卷I 基础知识》第1章 Java 程序设计概述 阅读与重点标记

    第 1 章 Java 程序设计概述 1996年 Java 第一次发布就引起了人们的极大兴趣.关注 Java 的人士不仅限于计算机出版界,还有诸如<纽约时报><华盛顿邮报>< ...

  3. 第1章 Java程序设计概述

    第1章 Java程序设计概述 1.1 Java程序设计平台 完美与缺陷 一旦一种语言应用于某个领域,与现存代码的相容性问题就摆在了人们的面前. 由于相容性这个严肃的问题确实存在于现实,所以,或多或少地 ...

  4. Java程序设计概述

    Java程序设计概述 Java程序设计平台 Java的特性 Java applet与Internet Java发展史 关于Java的常见误解 Java程序设计平台 Java是一个完整的平台,含有一个庞 ...

  5. Java核心技术卷1心得笔记1---Java程序设计概述

    第一章 Java程序设计概述 本章主要介绍了Java程序设计平台,Java关键术语,Java applet,Java发展史以及常见几个易误解的概念. 主要了解下Java关键术语,Java applet ...

  6. Java基础:Java程序设计环境

    按应用范围,Java 可分为 3 个体系,即 Java SE.Java EE 和 Java ME.Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE.没有 JRE 的支持,Java ...

  7. java程序设计及应用开发_Java程序设计及应用开发

    前言第1章Java程序设计概述1.1Java程序平台1.2Java的特性1.3Java程序设计环境1.3.1下载.安装和了解JDK1.3.2集成开发环境Eclipse1.4Java应用程序1.4.1J ...

  8. 20155307 2016-2017-2 《Java程序设计》第10周学习总结

    20155307 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程:就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据 ...

  9. java程序设计pdf下载_Java程序设计(迟立颖) PDF扫描版[21MB]

    Java程序设计由浅入深地介绍了Java的基础知识,并结合具体的实例重点阐述了Java面向对象的概念及其程序设计方法,还介绍了图形用户界面(GUI)等知识.全书共分11章,内容包括Java概述.Jav ...

最新文章

  1. 神经网络“天生”就会驾驶虚拟赛车
  2. JPA入门到精通 - JPA入门
  3. boost::is_output_streamable用法的测试程序
  4. 使用API获得SAP CRM Sales Area数据
  5. QQ浏览器如何更改截图路径
  6. Github Clone to local files
  7. DB2中使用Excel文件数据转CSV格式后导入数据库
  8. SpringMVC RedirectView的使用以及源码分析
  9. Java中Link,set 和Map的区别,ArrayList,HashSet和HashMap的区别。
  10. 华为mate20云备份恢复卡住了_注意了!包括华为、荣耀在内的14款老机型开启EMUI11公测了...
  11. 开源网上商城程序(简介国内外开源网店系统)
  12. 游戏里的答题都有哪些类型
  13. ffmpeg读取加密的m3u8文件时无法访问.key文件
  14. Cocos2dx游戏开发系列笔记5:继续润色《忍者飞镖射幽灵》
  15. Spring集成Hibernate5_03-HibernateDaoSupport
  16. 数字电路学习——三极管的使用
  17. linux运行国服英雄联盟排行榜,LOL国服排位十大高手排名:问谁是S2路人王
  18. Ubuntu20.04下FabricV1.1.0 Fabcar运行及相关问题解决
  19. 浅谈物联网安全威胁与挑战
  20. 软考中级软件评测师备考详细资料

热门文章

  1. CF819E:Mister B and Flight to the Moon(构造、归纳法)
  2. 不止代码:洛谷P1064 金明的预算方案+P2014选课(依赖背包)
  3. P7137-[THUPC2021 初赛]切切糕【dp】
  4. CF1322B-Present【双指针】
  5. P5268-[SNOI2017]一个简单的询问【莫队】
  6. P4597-序列sequence【堆】
  7. 洛谷P3371-【模板】单源最短路【SPFA】
  8. 【双指针】Square Pasture G(P7153)
  9. Spark入门(十五)之分组求最小值
  10. Consul集群搭建