1.计算机操作系统都经历了什么版本?家源
2.面试官说:你来设计一个短链接生成系统吧
3.软件编程
4.JAVAçä½ç¨(javaçä½ç¨ä¸åå±)
计算机操作系统都经历了什么版本?
DOS的版本
DOS在年推出其1.0版,功能还非常基本和薄弱;年推出2.0,码鹅码主要增加了目录操作功能,邀请使文件管理上了一个新台阶(目录和文件的家源概念我们将在讲解DOS内部命令时介绍);年推出3.0,主要支持1.2MB的码鹅码5.英寸高密软盘(1.X和2.X只支持低密盘)和大容量硬盘;推出目前普及率最高的DOS 3.3,主要支持3.5英寸软盘和网络。邀请css预约表单源码至此,家源DOS已经发展的码鹅码相当成熟,尽管后续版本(目前PC-DOS的邀请最新版本为7.0版,MS-DOS公布的家源最新版本为6.)不断推出,但均无重大的码鹅码内核改进,只不过增加了许多实用功能,邀请如检测磁盘,家源清除病毒,码鹅码硬盘增容等。邀请
DOS是Disk Operation System(磁盘操作系统) 的简称,是~年的个人电脑上使用的一种主要的操作系统。由于早期的DOS系统是由为软公司为IBM的个人电脑开发的,称为MS-DOS,因此后来其他公司生产的与MS-DOS兼容的操作系统,也延用了这个称呼,如PC-DOS、DR-DOS等等。
年,MS-DOS 1.0发行,作为IBM PC的操作系统进行捆绑发售,支持k内存及k的5寸软盘。在硬件昂贵,操作系统基本属于送硬件奉送的年代,谁也没能想到,微软公司竟会从这个不起眼的出处开始发迹。
年,支持双面磁盘。
年MS-DOS 2.0随IBM XT发布,扩展了命令,并开始支持5M硬盘。同年发布的2.对2.0版进行了一些bug修正。
年,MS-DOS 3.0增加了对新的IBM AT支持,并开始对部分局域网功能提供支持。
年,MS-DOS 3.2 支持了K 的5寸软盘。
年,MS-DOS 3.3 支持了IBM PS/2设备及1.M的3寸软盘,并支持其他语言的字符集。
年,网页设计源码简单MS-DOS 4.0 增加了DOS Shell 操作环境,并且有一些其他增强功能及更新。
年,MS-DOS 5.0发行,增加了DOS Shell功能,增强了内存管理和宏功能。
年,MS-DOS 6.x 增加了很多GUI程序,如Scandisk、Defrag、Msbackup等,增加了磁盘压缩功能,增强了对Windows 的支持。
年,MS-DOS 7.0 增加了长文件名支持、LBA大硬盘支持。这个版本的DOS并不是独立发售的,而是在Windows 中内嵌的。之后的MS-DOS 7.1全面支持FAT分区、大硬盘、大内存支持等,对四位年份支持解决了千年虫问题。
WINDOWS发展简史
作为世界上最流行的操作系统,Windows可不是从一开始就是这样的。Windows的进化过程经常是不确定和不稳定的。其成功是和处理器速度、内容容量等息息相关的,微软也非常依赖第三方的软件来填补概念和消费者之间的鸿沟。 随着Vista的发售,有必要通过截屏回顾一下年来,Windows操作系统所走过的路。 Windows 1.0 比尔·盖茨于年正式宣布推出Windows系统,但是微软的第一个图形用户界面操作系统Windows 1.0,却直到年月才放出,此时距离苹果推出Mac已经有两年之久了。由于涉及到和苹果的版权问题,此时的Windows系统还不能拥有例如重叠窗口和回收站的功能。Windows 1.0更多的是一个MS-DOS的扩展,而不是一个单独的操作系统,不过已经能够支持有限的多任务和鼠标操作了。
Windows 2.0 盖茨很快和苹果签订了授权协议,以便在Windows中使用Macintosh GUI的某些原素。不过随后,苹果将盖茨送上了法庭,称在新推出的小梁博客 源码分享Windows 2.0中,有处涉嫌抄袭。Windows 2.0提供了图标和层叠窗口的功能。 另外,Windows 2.0还得到了一些关键的程序支持。早期版本的Word和Excel使用Windows作为界面;当时流行的桌面发布程序Aldus PageMaker,一度只在Mac电脑上运行,同样也进驻了Windows 2.0,这对Windows来说是一个关键的事件,因为这极大的扩展了系统的实用性和市场份额。 此主题相关如下:
Windows 3.0 这一版的Windows于年发布,可以说是一次彻头彻尾的改进。新的文件管理系统和增强的图形性能,终于使Windows PC变成了Mac的强劲对手,而这一过程花了六年的时间。操作系统拥有全新的外观,受保护的和增强的操作模式使得内存管理更为有效。Windows 3.0取得了巨大的成功,在两年的时间里销售了超过万的拷贝。开发人员开始编写大量的第三方软件,对于消费者购买来说是不小的刺激。大量的现金改变了微软的方向,使之更专注于操作系统的开发上。
Windows 3. 主要就是Windows 3.0版的更新产品,Windows 3.支持包括TrueType可升级字体、多媒体、对象链接和嵌入等功能。一大堆在系统从3.0之后推出的升级补丁,也都集成进3.版之中。 此主题相关如下:
Windows 3. NT 这是一个非常强大的Windows版本,是在消费版的3.上独立开发而来的,NT是专门为商业和工程师等需要非常成熟操作系统的用户而设计的。和3.版不一样的是,NT是专门为位处理器编写的。不幸的是,当时只有很少的硬件能够支持。开发人员不愿意费尽去让他们的产品兼容NT,因为这非常复杂,而且这一操作系统仅仅占据了很小的市场份额。 此主题相关如下
Windows Windows 真正的将计算处理带到普通人的身边,让很多人从此走进了Windows和电脑的世界。由于捆绑了Internet Explorer,Windows 成为了浏览网页的常用入口。Windows 从此开始使用大家熟悉的开始按钮和任务栏,这种风格一直保持到今天。 Windows 也标志了微软和向下兼容之间永无止境的个人操盘指标源码斗争,从3.开始的许多架构,当然也包括其中的设计失误,都延续到Windows 当中。而且一些部分运行在位模式,另一些则不,这样使得操作系统能够在过去和现在之间摇摆。很多用户都不知道这个问题,他们唯一清楚的就是系统非常的不稳定,而且总是要打升级补丁。 此主题相关如下:
Windows 不仅仅是从Windows 稳定的升级到新的系统,Win 还支持多显示器显示,WebTV和采用新的FAT文件系统带来的更大的文件分割。Win 是一版将Internet Explorer集成进GUI的系统,引发了对微软垄断行为诉讼的热潮。 随后又放出了Windows Second Edition,增加了网络连接共享功能。此主题相关如下:
Windows 这一版Windows推出的时间是年的2月,Win2K是Windows中NT系列的升级,这是第一个通过互联网进行自动升级的Windows版本。
Windows XP 年推出的XP将NT架构,和从//ME上传承而来的用户界面,融合在一起。虽然仍然在安全性方面收到攻击,但是XP已经在很多地方获得了改善,包括文件管理、速度和稳定性。尤其是在GUI方面的明显改善,使得操作系统对于没什么经验的用户来说更为容易上手。 :
Windows Vista 最后就是才推出的Vista,至于Vista会带来怎样的影响,现在还不好说。在XP六年之后推出的Vista,在GUI上游客非常明显的变化,而且还带来了很多的新特性,路走怎么,让时间来说话吧。
Linux操作系统发展简史
原文由 glnju 所发表
在年代,Unix体系的源程序大多是可以任意流传的。互联网的基础协议TCP/IP就是产
生于那个年代。在那个时期,人们在创作各自的"程序作品"中享受着从事科学探索、创新
活动所特有的那种激情和成就感。那时的程序员,如同作家一样,急于"发表"自己的美元投资源码程序
作品,并不专注于保守"机密",以换取钱财。
年,AT&T宣布了Unix的商业化计划,随之出现了各种二进制的商业Unix版本。于
是就兴起了基于二进制机读代码的"版权产业"(Copyright Industry),使软件业成为一种
版权专有式的产业,围绕程序开发的那种创新活动被局限在某些骨干企业的小圈子里,源
码程序视为核心"商业机密"。这种做法,一方面产生了大批的商业软件,极大的推动了软
件业的发展,诞生了一批软件巨人;另一方面,由于封闭式的开发模式,也阻碍了软件业
的进一步深化和提高。由此,人们为商业软件的"BUG"付出了巨大的代价。
年,Richard Stallman面对程序开发的封闭模式,发起了一项国际性的源代码开
放的所谓牛(GUN)计划,力图重返年代基于源码开放从事创作的美好时光。他为保护源
代码开放的程序库不会再度受到商业性的封闭式利用,制定了一项GPL条款,称为Copylef
t版权模式。
年6月,R..Stallman完成了万行源代码开放的"编译器"(GNU gcc),获得了一
项重大突破,做出了极大的贡献。
年月,M.Tiemann以美元开始创业,创造了专注于经营开放源代码"Cygnus
Support"(天鹅座支持公司)源代码开放计划。(注意,Cygnus中隐含着gnu三个字母)。
Cygnus是世界上第一家也是最终获得成功的一家专营源代码程序的商业公司。Cygnus的"编
译器"是最优秀的,它的客户有许多是一流的IT企业,包括世界上最大的微处理器公司。
年月,Linus Torvalds写了个小程序,取名为Linux,放在互联网上。他表达了
一个愿望,希望借此搞出一个操作系统的"内核"来。这完全是一个偶然事件。但是,在互
联网上,Linux刚一"露头",便被广大的牛羚计划的追随者们看中,全部上阵,七手八脚,
把它"加工"成了一个功能完备的操作系统,叫做CNULinux。
年1月,Bob Young创办了RedHat(小红帽),以CNULinux为核心,集成了多个
源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行
版",在市场上出售。这在经营模上是一种创举。Bob Young称:我们从不想拥有自己的"版
权专有"技术,我们卖的是"方便"(给用户提供支持、服务),而不是自己的"专有技术"。
源代码开放程序包括各种品牌发行版的出现,极大的推动了Linux的普及和应用。
年2月,以Eric Raymond为首的一批年轻的"老牛羚骨干分子"终于认识到CNULinux体
系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Sour
ce Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的
Linux产业化运动。在IBM、Interl为首的一大批国际性重型IT企业对Linux产品及其经营模
式的投资并提供全球性技术支持的大力推动下,催生了一个正在兴起的基于源代码开放模
式的Linux产业,也有人称为开放源代码(OpenSource)现象。
年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很
多用于支持 桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能
。
年月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的
变化。这些变化包括:1.更好地支持大型多处理器服务器,特别是采用NUMA设计的服务器
;2。更好地支持嵌入式设备,如手机、网络路由器或者视频录像机等;3.对鼠标和键盘指
令等用户行为反应更加迅速;4.块设备驱动程序做了彻底更新,如与硬盘和CD光驱通信的
软件模块。
这不是一场新的技术革命(程序还是那些程序),这是一次回到正确路上的充满创新
激情的"科学复兴"。
在国际范围内Linux的开发,都超越国界经由互联网进行。通常,按照一定规律,每周
发布一个Linux开发版,供全世界开发者参照。Linux开发版的序号的第二位为奇数,阶段
性发布的序号第二位为偶数。Linux的各个发行版只能均与一定的序号相对应没有序号的发
行版只能入另册。当今Linux的全部开发活动分布在各个国家,在互联网上由近位高手
在日夜进行,总体协调人是LinusTorvalds。带有序列号的Linux发布权掌握在他手中。在
法律上,指称这组代码集的Linux注册商标的版权归Linus本人所有。
Linux体系发行版是由特定序列号的Linux(内核)及属于CNU体系源码开放的功能性支
撑模块和一些运行于Linux上的商用软件所集成。发行版整体集成版权归相应的发行商所有
。Linux发行版的发行商(称为Linux发行商)一般并不拥有其发行版中各软件模块的版权
,发行商关注的应该只是发行版的品牌价值,以含于其中的集成版的质量和相关特色服务
进行市场竞争。严格讲来,Linux发行商并非必须一定是什么独立软件开商。它本质上属于
一种新兴的IT行业。值得注意的是,任何发行版均必须含有一个标明特定序列号的完好的
Linux稳定运行版本。在这里,版本序列号授予权属于Linus本人,代表以Linux为首的国际
性开发团队的创造性智慧的结晶。任何Linux发行商在心中一定要牢牢记住这个站在Linux
内核背后辛勤创作的开发团队。没有他们,就没有Linux。Linus与Linux开发团队永远联系
在一起。经常不断的推出Linux发行版是各国Linux发行商应尽的责任,Linux发行商的经营
活动是Linux在世界范围内的传播的主要途径之一。
Linux 发展的重要里程碑
年,Linus Torvalds 首次接触 MINIX
年,Linus Torvalds 开始在 MINIX 上编写各种驱动程序等操作系统内核组件
年,Linus Torvalds 公开了 Linux 内核
年,Linux 1.0 版发行,Linux 转向 GPL 版权协议
年,Linux 的第一个商业发行版 Slackware 问世
年,美国国家标准技术局的计算机系统实验室确认 Linux 版本 1.2.(由 Ope
n Linux 公司打包)符合 POSIX 标准
年,Linux 的简体中文发行版相继问世
年,Linux2.4版内核发布
年,Linux2.6版内核发布
面试官说:你来设计一个短链接生成系统吧
引言
相信大家在生活中,特别是最近的双十一活动期间,会收到很多短信,而那些短信都有两个特征,第一个是几乎都是垃圾短信,这个特点此处可以忽略不计,第二个特点是链接很短,比如下面这个:
我们知道,短信有些是有字数限制的,直接放一个带满各种参数的链接,不合适,另外一点是,不想暴露参数。好处无非以下:
太长的链接容易被限制长度
短链接看着简洁,长链接看着容易懵
安全,不想暴露参数
可以统一链接转换,当然也可以实现统计点击次数等操作
那背后的原理是什么呢?怎么实现的?让你实现这样的系统,你会怎么设计呢?来自于某鹅场面试官
短链接的原理短链接展示的逻辑这里最重要的知识点是重定向,先复习一下/tzHLFw与/gmccapp/webpage/payPhonemoney/index.html?channel=之间的装换是怎么样的呢?前面路径不变,变化的是后面,也就是tzHLFw与gmccapp/webpage/payPhonemoney/index.html?channel=之间的转换。
实际也很简单,就是数据库里面的一条数据,一个id对应长链接(相当于全局的发号器,全局唯一的ID):
idurl1/gmccapp/webpage/payPhonemoney/index.html?channel=这里用到的,也就是我们之前说过的分布式全局唯一ID,如果我们直接用id作为参数,貌似也可以:/1,访问这个链接时,去数据库查询获得真正的url,再重定向。
单机的唯一ID很简单,用原子类AtomicLong就可以,但是分布式的就不行了,简单点可以用 redis,或者数据库自增,或者可以考虑Zookeeper之类的。
id 转换策略但是直接用递增的数字,有两个坏处:
数字很大的时候,还是很长
递增的数字,不安全,规律性太强了
明显我们平时看到的链接也不是数字的,一般都是大小写字母加上数字。为了缩短链接的长度,我们必须把id转换掉,比如我们的短链接由a-z,A-Z,0-9组成,相当于进制的数字,将id转换成为进制的数字:
publicclassShortUrl{ privatestaticfinalStringBASE="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";publicstaticStringtoBase(longnum){ StringBuilderresult=newStringBuilder();do{ inti=(int)(num%);result.append(BASE.charAt(i));num/=;}while(num>0);returnresult.reverse().toString();}publicstaticlongtoBase(Stringstr){ longresult=0;for(inti=0;i<str.length();i++){ result=result*+BASE.indexOf(str.charAt(i));}returnresult;}publicstaticvoidmain(String[]args){ //tzHLFwSystem.out.println(toBase("tzHLFw"));System.out.println(toBase(L));}}id转 位的key 或者key装换成为id都已经实现了,不过计算还是比较耗时的,不如加个字段存起来,于是数据库变成了:
idkeyurltzHLFw/gmccapp/webpage/payPhonemoney/index.html?channel=但是这样还是很容易被猜出这个id和key的对应关系,要是被遍历访问,那还是很不安全的,如果担心,可以随机将短链接的字符顺序打乱,或者在适当的位置加上一些随机生成的字符,比如第1,4,5位是随机字符,其他位置不变,只要我们计算的时候,将它对应的关系存到数据库,我们就可以通过连接的key找到对应的url。(值得注意的是,key必须是全局唯一的,如果冲突,必须重新生成)
一般短链接都有过期时间,那么我们也必须在数据库里面加上对应的字段,访问的时候,先判断是否过期,过期则不给予重定向。
性能考虑如果有很多短链接暴露出去了,数据库里面数据很多,这个时候可以考虑使用缓存优化,生成的时候顺便把缓存写入,然后读取的时候,走缓存即可,因为一般短链接和长链接的关系不会修改,即使修改,也是很低频的事情。
如果系统的id用完了怎么办?这种概率很小,如果真的发生,可以重用旧的已经失效的id号。
如果被人疯狂请求一些不存在的短链接怎么办?其实这就是缓存穿透,缓存穿透是指,缓存和数据库都没有的数据,被大量请求,比如订单号不可能为-1,但是用户请求了大量订单号为-1的数据,由于数据不存在,缓存就也不会存在该数据,所有的请求都会直接穿透到数据库。如果被恶意用户利用,疯狂请求不存在的数据,就会导致数据库压力过大,甚至垮掉。
针对这种情况,一般可以用布隆过滤器过滤掉不存在的数据请求,但是我们这里id本来就是递增且有序的,其实我们范围大致都是已知的,更加容易判断,超出的肯定不存在,或者请求到的时候,缓存里面放一个空对象也是没有问题的。
作者简介: 秦怀,公众号秦怀杂货店作者,技术之路不在一时,山高水长,纵使缓慢,驰而不息。个人写作方向:Java源码解析,JDBC,Mybatis,Spring,redis,分布式,剑指Offer,LeetCode等,认真写好每一篇文章,不喜欢标题党,不喜欢花里胡哨,大多写系列文章,不能保证我写的都完全正确,但是我保证所写的均经过实践或者查找资料。遗漏或者错误之处,还望指正。
软件编程
硬石技术论坛共享文档--软件编程部分免费下载链接:/s/1obJHRyWyeq5R9_n6n7og
提取码:yjvs编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
JAVAçä½ç¨(javaçä½ç¨ä¸åå±)
javaçä½ç¨æåªäº
javaçä½ç¨å°±æ¯è®©ä¸ååçç®åï¼åçåä¹äººçæç»´ãè¿å°±æ¯å¯¹è±¡äºï¼ç°å®ä¸ä¸åé½å¯ä»¥çå对象ï¼è¿æ ·å°±å¯ä»¥å¨ä»£ç ä¸æ¯è¾ç®åçå®ç°äºã
å ¶å®è¿æä¸ä¸ªä½ç¨ï¼ä¸ç¥éä½ æ没æåç°ï¼æCæ¶é´é¿äºï¼èè¢å°±äº®äºãjavaæ许ä¹æ¯ä¸ºäºè§£å³è¿ä¸ªé®é¢å¦ã
å¦ä¹ JAVAæä»ä¹ä½ç¨ï¼
1.å¯ä»¥åWEBç³»ç»ï¼å¦ç½ç«ï¼ä¸è¿åç½ç«å°±æç¹æ鸡ç¨çå°äºãç¨çæå¤çå°±æ¯ç¨JAVAå管çç³»ç»ï¼å¾å®¹æç»´æ¤ã
2ãå¯ä»¥åC/SéWEB管çç³»ç»ï¼å½ç¶å ¶ä»è¯è¨ä¹è½åå°ã
3ãå¯ä»¥å移å¨è®¾å¤è½¯ä»¶ï¼å¦ææºè½¯ä»¶ï¼MP4软件ççã
4ãå½ç¶ä½ WINDOWSä¸å好äºä¸ä¸ªä¸è¥¿ï¼æ¿å°å ¶ä»å°æ¹ä¹è½ç¨ï¼å¦LINUXï¼NUIXççï¼ä¸éè¦ä¿®æ¹ãè¿æ¯ä»å¯¹äºå ¶ä»è¯è¨æ大çä¼ç¹ã
5ãæ¹ä¾¿æ¾å·¥ä½ï¼ç°å¨éè¦JAVAç人ææ¯.NET人æç7-åå·¦å³ï¼æ´æ¯å ¶ä»è¯è¨çNåã
1.ç®å
Javaè¯è¨æ¯ä¸ç§é¢å对象çè¯è¨ï¼å®éè¿æä¾æåºæ¬çæ¹æ³æ¥å®ææå®çä»»å¡ï¼åªéç解ä¸äºåºæ¬çæ¦å¿µï¼å°±å¯ä»¥ç¨å®ç¼ååºéåäºåç§æ åµçåºç¨ç¨åºãJavaç¥å»äºè¿ç®ç¬¦éè½½ãå¤é继æ¿ç模ç³çæ¦å¿µï¼å¹¶ä¸éè¿å®ç°èªå¨åå¾æ¶é大大ç®åäºç¨åºè®¾è®¡è çå å管çå·¥ä½ãå¦å¤ï¼Javaä¹éåäºå¨å°åæºä¸è¿è¡ï¼å®çåºæ¬è§£éå¨åç±»çæ¯æåªæKBå·¦å³ï¼å ä¸æ åç±»åºå线ç¨çæ¯æä¹åªæKBå·¦å³ã
2.é¢å对象
Javaè¯è¨ç设计éä¸äºå¯¹è±¡åå ¶æ¥å£ï¼å®æä¾äºç®åçç±»æºå¶ä»¥åå¨æçæ¥å£æ¨¡åã对象ä¸å°è£ äºå®çç¶æåé以åç¸åºçæ¹æ³ï¼å®ç°äºæ¨¡åååä¿¡æ¯éè;èç±»åæä¾äºä¸ç±»å¯¹è±¡çååï¼å¹¶ä¸éè¿ç»§æ¿æºå¶ï¼åç±»å¯ä»¥ä½¿ç¨ç¶ç±»ææä¾çæ¹æ³ï¼å®ç°äºä»£ç çå¤ç¨ã
3.åå¸æ§
Javaæ¯é¢åç½ç»çè¯è¨ãéè¿å®æä¾çç±»åºå¯ä»¥å¤çTCP/IPåè®®ï¼ç¨æ·å¯ä»¥éè¿URLå°åå¨ç½ç»ä¸å¾æ¹ä¾¿å°è®¿é®å ¶ä»å¯¹è±¡ã
4.é²æ£æ§
Javaå¨ç¼è¯åè¿è¡ç¨åºæ¶ï¼é½è¦å¯¹å¯è½åºç°çé®é¢è¿è¡æ£æ¥ï¼ä»¥æ¶é¤é误ç产çãå®æä¾èªå¨åå¾æ¶éæ¥è¿è¡å å管çï¼é²æ¢ç¨åºåå¨ç®¡çå åæ¶å®¹æ产ççé误ãå¨ç¼è¯æ¶ï¼éè¿éæçé¢å对象çå¼å¸¸å¤çæºå¶ï¼Javaæ示åºå¯è½åºç°ä½æªè¢«å¤ççå¼å¸¸ï¼å¸®å©ç¨åºåæ£ç¡®å°è¿è¡éæ©ä»¥é²æ¢ç³»ç»çå´©æºãå¦å¤ï¼Javaå¨ç¼è¯æ¶è¿å¯æè·ç±»å声æä¸ç许å¤å¸¸è§é误ï¼é²æ¢å¨æè¿è¡æ¶ä¸å¹é é®é¢çåºç°ã
5.å®å ¨æ§
ç¨äºç½ç»ãåå¸ç¯å¢ä¸çJavaå¿ é¡»é²æ¢ç æ¯çå ¥ä¾µãJavaä¸æ¯ææéï¼ä¸å对å åç访é®é½å¿ é¡»éè¿å¯¹è±¡çå®ä¾åéæ¥å®ç°ï¼è¿æ ·å°±é²æ¢äºç¨åºå使ç¨âç¹æ´ä¼âæ¨é©¬ç欺éªæ段访é®å¯¹è±¡çç§ææåï¼åæ¶ä¹é¿å äºæéæä½ä¸å®¹æ产ççé误ã
6.ä½ç³»ç»æä¸ç«
Java解éå¨çæä¸ä½ç³»ç»ææ å ³çåèç æ令ï¼åªè¦å®è£ äºJavaè¿è¡æ¶ç³»ç»ï¼Javaç¨åºå°±å¯å¨ä»»æå¤çå¨ä¸è¿è¡ãè¿äºåèç æ令对åºäºJavaèææºä¸ç表示ï¼Java解éå¨å¾å°åèç åï¼å¯¹å®è¿è¡è½¬æ¢ï¼ä½¿ä¹è½å¤å¨ä¸åçå¹³å°è¿è¡ã
7.å¯ç§»æ¤æ§
ä¸å¹³å°æ å ³çç¹æ§ä½¿Javaç¨åºå¯ä»¥æ¹ä¾¿å°ç§»æ¤å°ç½ç»ä¸çä¸åæºå¨ãåæ¶ï¼Javaçç±»åºä¸ä¹å®ç°äºä¸ä¸åå¹³å°çæ¥å£ï¼ä½¿è¿äºç±»åºå¯ä»¥ç§»æ¤ãå¦å¤ï¼Javaç¼è¯å¨æ¯ç±Javaè¯è¨å®ç°çï¼Javaè¿è¡æ¶ç³»ç»ç±æ åCè¯è¨å®ç°ï¼è¿ä½¿å¾Javaç³»ç»æ¬èº«ä¹å ·æå¯ç§»æ¤æ§ã
8.解éæ§è¡
Java解éå¨ç´æ¥å¯¹Javaåèç è¿è¡è§£éæ§è¡ãåèç æ¬èº«æºå¸¦äºè®¸å¤ç¼è¯æ¶ä¿¡æ¯ï¼ä½¿å¾è¿æ¥è¿ç¨æ´å ç®åã
9.é«æ§è½
åå ¶ä»è§£éæ§è¡çè¯è¨å¦BASCãTCLä¸åï¼Javaåèç ç设计使ä¹è½å¾å®¹æå°ç´æ¥è½¬æ¢æ对åºäºç¹å®CPUçæºå¨ç ï¼ä»èå¾å°è¾é«çæ§è½ã
.å¤çº¿ç¨
å¤çº¿ç¨æºå¶ä½¿åºç¨ç¨åºè½å¤å¹¶è¡æ§è¡ï¼èä¸åæ¥æºå¶ä¿è¯äºå¯¹å ±äº«æ°æ®çæ£ç¡®æä½ãéè¿ä½¿ç¨å¤çº¿ç¨ï¼ç¨åºè®¾è®¡è å¯ä»¥åå«ç¨ä¸åç线ç¨å®æç¹å®çè¡ä¸ºï¼èä¸éè¦éç¨å ¨å±çäºä»¶å¾ªç¯æºå¶ï¼è¿æ ·å°±å¾å®¹æå®ç°ç½ç»ä¸çå®æ¶äº¤äºè¡ä¸ºã
.å¨ææ§
Javaç设计使å®éåäºä¸ä¸ªä¸æåå±çç¯å¢ãå¨ç±»åºä¸å¯ä»¥èªç±å°å å ¥æ°çæ¹æ³åå®ä¾åéèä¸ä¼å½±åç¨æ·ç¨åºçæ§è¡ã并ä¸Javaéè¿æ¥å£æ¥æ¯æå¤é继æ¿ï¼ä½¿ä¹æ¯ä¸¥æ ¼ç类继æ¿å ·ææ´çµæ´»çæ¹å¼åæ©å±æ§ã
javaçä½ç¨æ¯ä»ä¹Javaæ¯ç±SunMicrosystemså ¬å¸äºå¹´5ææ¨åºçJavaç¨åºè®¾è®¡è¯è¨ï¼ä»¥ä¸ç®ç§°Javaè¯è¨ï¼åJavaå¹³å°çæ»ç§°ãç¨Javaå®ç°çHotJavaæµè§å¨ï¼æ¯æJavaappletï¼æ¾ç¤ºäºJavaçé åï¼è·¨å¹³å°ãå¨æçWebãInternet计ç®ãä»æ¤ï¼Java被广æ³æ¥å并æ¨å¨äºWebçè¿ éåå±ï¼å¸¸ç¨çæµè§å¨ç°å¨åæ¯æJavaappletãå¦ä¸æ¹é¢ï¼Javaææ¯ä¹ä¸ææ´æ°ãJavaå¹³å°ç±Javaèææºï¼JavaVirtualMachineï¼åJavaåºç¨ç¼ç¨æ¥å£ï¼ApplicationProgrammingInterfaceãç®ç§°APIï¼ææãJavaåºç¨ç¼ç¨æ¥å£ä¸ºJavaåºç¨æä¾äºä¸ä¸ªç¬ç«äºæä½ç³»ç»çæ åæ¥å£ï¼å¯å为åºæ¬é¨ååæ©å±é¨åãå¨ç¡¬ä»¶ææä½ç³»ç»å¹³å°ä¸å®è£ ä¸ä¸ªJavaå¹³å°ä¹åï¼Javaåºç¨ç¨åºå°±å¯è¿è¡ãç°å¨Javaå¹³å°å·²ç»åµå ¥äºå ä¹ææçæä½ç³»ç»ãè¿æ ·Javaç¨åºå¯ä»¥åªç¼è¯ä¸æ¬¡ï¼å°±å¯ä»¥å¨åç§ç³»ç»ä¸è¿è¡ãJavaåºç¨ç¼ç¨æ¥å£å·²ç»ä»1.1xçåå±å°1.2çãç®å常ç¨çJavaå¹³å°åºäºJava1.4ï¼æè¿çæ¬ä¸ºJava1.7ãJavaå为ä¸ä¸ªä½ç³»J2SE(Java2StandardEdition)ï¼J2EE(Java2Platform,EnterpriseEdition)ï¼J2ME(Java2MicroEdition)ã[ç¼è¾æ¬æ®µ]Javaè¯è¨ç¹ç¹Javaæ¯ä¸ç§ç®åçï¼é¢å对象çï¼åå¸å¼çï¼è§£éåçï¼å¥å£®å®å ¨çï¼ç»æä¸ç«çï¼å¯ç§»æ¤çï¼æ§è½ä¼å¼ãå¤çº¿ç¨çå¨æè¯è¨ãå½å¹´SUNæ¨åºJavaè¯è¨ä¹åï¼å ¨ä¸ççç®å é½è¢«è¿ä¸ªç¥å¥çè¯è¨æå¸å¼ãé£ä¹Javaå°åºæä½ç¥å¥ä¹å¤å¢ï¼Javaè¯è¨å ¶å®ææ©è¯çäºå¹´ï¼èµ·å被称为OAKè¯è¨ï¼æ¯SUNå ¬å¸ä¸ºä¸äºæ¶è´¹æ§çµå产åè设计çä¸ä¸ªéç¨ç¯å¢ãä»ä»¬æåçç®çåªæ¯ä¸ºäºå¼åä¸ç§ç¬ç«äºå¹³å°ç软件ææ¯ï¼èä¸å¨ç½ç»åºç°ä¹åï¼OAKå¯ä»¥è¯´æ¯é»é»æ é»ï¼çè³å·®ç¹å¤æãä½æ¯ï¼ç½ç»çåºç°æ¹åäºOAKçå½è¿ãå¨Javaåºç°ä»¥åï¼Internetä¸çä¿¡æ¯å 容é½æ¯ä¸äºä¹å³æ»æ¿çHTMLææ¡£ãè¿å¯¹äºé£äºè¿·æäºWEBæµè§ç人们æ¥è¯´ç®ç´ä¸å¯å®¹å¿ãä»ä»¬è¿«åå¸æè½å¨WEBä¸çå°ä¸äºäº¤äºå¼çå 容ï¼å¼å人åä¹æå¸æè½å¤å¨WEBä¸å建ä¸ç±»æ éèè软硬件平å°å°±å¯ä»¥æ§è¡çåºç¨ç¨åºï¼å½ç¶è¿äºç¨åºè¿è¦ææ大çå®å ¨ä¿éã对äºç¨æ·çè¿ç§è¦æ±ï¼ä¼ ç»çç¼ç¨è¯è¨æ¾å¾æ è½ä¸ºåãSUNçå·¥ç¨å¸æéå°å¯è§å°äºè¿ä¸ç¹ï¼ä»å¹´èµ·ï¼ä»ä»¬å¼å§å°OAKææ¯åºç¨äºWEBä¸ï¼å¹¶ä¸å¼ååºäºHotJavaç第ä¸ä¸ªçæ¬ãå½SUNå ¬å¸å¹´æ£å¼ä»¥Javaè¿ä¸ªååæ¨åºçæ¶åï¼å ä¹ææçWEBå¼å人åé½å¿çæå¹ï¼å¢ï¼è¿æ£æ¯ææ³è¦çï¼äºæ¯Javaæäºä¸é¢èç¼çææï¼ä¸å°é¸ä¸ä¸äºåæäºç½å¤©é¹ ã[ç¼è¾æ¬æ®µ]Java主è¦ç¹æ§1ãJavaè¯è¨æ¯ç®åçãJavaè¯è¨çè¯æ³ä¸Cè¯è¨åC++è¯è¨å¾æ¥è¿ï¼ä½¿å¾å¤§å¤æ°ç¨åºåå¾å®¹æå¦ä¹ å使ç¨Javaãå¦ä¸æ¹é¢ï¼Java丢å¼äºC++ä¸å¾å°ä½¿ç¨çãå¾é¾ç解çã令人迷æçé£äºç¹æ§ï¼å¦æä½ç¬¦éè½½ãå¤ç»§æ¿ãèªå¨ç强å¶ç±»å转æ¢ãç¹å«å°ï¼Javaè¯è¨ä¸ä½¿ç¨æéï¼å¹¶æä¾äºèªå¨çåºææ¶éï¼ä½¿å¾ç¨åºåä¸å¿ 为å å管çèæ 忧ã2ãJavaè¯è¨æ¯ä¸ä¸ªé¢å对象çãJavaè¯è¨æä¾ç±»ãæ¥å£å继æ¿çåè¯ï¼ä¸ºäºç®åèµ·è§ï¼åªæ¯æç±»ä¹é´çå继æ¿ï¼ä½æ¯ææ¥å£ä¹é´çå¤ç»§æ¿ï¼å¹¶æ¯æç±»ä¸æ¥å£ä¹é´çå®ç°æºå¶ï¼å ³é®å为implementsï¼ãJavaè¯è¨å ¨é¢æ¯æå¨æç»å®ï¼èC++è¯è¨åªå¯¹èå½æ°ä½¿ç¨å¨æç»å®ãæ»ä¹ï¼Javaè¯è¨æ¯ä¸ä¸ªçº¯çé¢å对象ç¨åºè®¾è®¡è¯è¨ã3ãJavaè¯è¨æ¯åå¸å¼çãJavaè¯è¨æ¯æInternetåºç¨çå¼åï¼å¨åºæ¬çJavaåºç¨ç¼ç¨æ¥å£ä¸æä¸ä¸ªç½ç»åºç¨ç¼ç¨æ¥å£ï¼java.netï¼ï¼å®æä¾äºç¨äºç½ç»åºç¨ç¼ç¨çç±»åºï¼å æ¬URLãURLConnectionãSocketãServerSocketçãJavaçRMI(è¿ç¨æ¹æ³æ¿æ´»)æºå¶ä¹æ¯å¼ååå¸å¼åºç¨çéè¦æ段ã4ãJavaè¯è¨æ¯å¥å£®çãJavaç强类åæºå¶ãå¼å¸¸å¤çãåºæçèªå¨æ¶éçæ¯Javaç¨åºå¥å£®æ§çéè¦ä¿è¯ã对æéç丢å¼æ¯Javaçææºéæ©ãJavaçå®å ¨æ£æ¥æºå¶ä½¿å¾Javaæ´å ·å¥å£®æ§ã5ãJavaè¯è¨æ¯å®å ¨çãJavaé常被ç¨å¨ç½ç»ç¯å¢ä¸ï¼ä¸ºæ¤ï¼Javaæä¾äºä¸ä¸ªå®å ¨æºå¶ä»¥é²æ¶æ代ç çæ»å»ãé¤äºJavaè¯è¨å ·æç许å¤å®å ¨ç¹æ§ä»¥å¤ï¼Java对éè¿ç½ç»ä¸è½½çç±»å ·æä¸ä¸ªå®å ¨é²èæºå¶ï¼ç±»ClassLoaderï¼ï¼å¦åé ä¸åçåå空é´ä»¥é²æ¿ä»£æ¬å°çååç±»ãåè代ç æ£æ¥ï¼å¹¶æä¾å®å ¨ç®¡çæºå¶ï¼ç±»SecurityManagerï¼è®©Javaåºç¨è®¾ç½®å®å ¨å¨å µã6ãJavaè¯è¨æ¯ä½ç³»ç»æä¸ç«çãJavaç¨åºï¼åç¼ä¸ºjavaçæ件ï¼å¨Javaå¹³å°ä¸è¢«ç¼è¯ä¸ºä½ç³»ç»æä¸ç«çåèç æ ¼å¼ï¼åç¼ä¸ºclassçæ件ï¼,ç¶åå¯ä»¥å¨å®ç°è¿ä¸ªJavaå¹³å°çä»»ä½ç³»ç»ä¸è¿è¡ãè¿ç§éå¾éåäºå¼æçç½ç»ç¯å¢å软件çååã7ãJavaè¯è¨æ¯å¯ç§»æ¤çãè¿ç§å¯ç§»æ¤æ§æ¥æºäºä½ç³»ç»æä¸ç«æ§ï¼å¦å¤ï¼Javaè¿ä¸¥æ ¼è§å®äºå个åºæ¬æ°æ®ç±»åçé¿åº¦ãJavaç³»ç»æ¬èº«ä¹å ·æå¾å¼ºçå¯ç§»æ¤æ§ï¼Javaç¼è¯å¨æ¯ç¨Javaå®ç°çï¼Javaçè¿è¡ç¯å¢æ¯ç¨ANSICå®ç°çã8ãJavaè¯è¨æ¯è§£éåçãå¦åæè¿°ï¼Javaç¨åºå¨Javaå¹³å°ä¸è¢«ç¼è¯ä¸ºåèç æ ¼å¼ï¼ç¶åå¯ä»¥å¨å®ç°è¿ä¸ªJavaå¹³å°çä»»ä½ç³»ç»ä¸è¿è¡ãå¨è¿è¡æ¶ï¼Javaå¹³å°ä¸çJava解éå¨å¯¹è¿äºåèç è¿è¡è§£éæ§è¡ï¼æ§è¡è¿ç¨ä¸éè¦çç±»å¨èæ¥é¶æ®µè¢«è½½å ¥å°è¿è¡ç¯å¢ä¸ã9ãJavaæ¯é«æ§è½çãä¸é£äºè§£éåçé«çº§èæ¬è¯è¨ç¸æ¯ï¼Javaçç¡®æ¯é«æ§è½çãäºå®ä¸ï¼Javaçè¿è¡é度éçJIT(Just-In-Time)ç¼è¯å¨ææ¯çåå±è¶æ¥è¶æ¥è¿äºC++ããJavaè¯è¨æ¯å¤çº¿ç¨çãå¨Javaè¯è¨ä¸ï¼çº¿ç¨æ¯ä¸ç§ç¹æ®ç对象ï¼å®å¿ é¡»ç±Threadç±»æå ¶åï¼åï¼ç±»æ¥å建ãé常æ两ç§æ¹æ³æ¥å建线ç¨ï¼å ¶ä¸ï¼ä½¿ç¨åæ为Thread(Runnable)çæé åå°ä¸ä¸ªå®ç°äºRunnableæ¥å£ç对象å è£ æä¸ä¸ªçº¿ç¨ï¼å ¶äºï¼ä»Thread类派çåºå类并éårunæ¹æ³ï¼ä½¿ç¨è¯¥åç±»å建ç对象å³ä¸ºçº¿ç¨ãå¼å¾æ³¨æçæ¯Thread类已ç»å®ç°äºRunnableæ¥å£ï¼å æ¤ï¼ä»»ä½ä¸ä¸ªçº¿ç¨åæå®çrunæ¹æ³ï¼èrunæ¹æ³ä¸å å«äºçº¿ç¨æè¦è¿è¡ç代ç ã线ç¨çæ´»å¨ç±ä¸ç»æ¹æ³æ¥æ§å¶ãJavaè¯è¨æ¯æå¤ä¸ªçº¿ç¨çåæ¶æ§è¡ï¼å¹¶æä¾å¤çº¿ç¨ä¹é´çåæ¥æºå¶ï¼å ³é®å为synchronizedï¼ããJavaè¯è¨æ¯å¨æçãJavaè¯è¨ç设计ç®æ ä¹ä¸æ¯éåºäºå¨æååçç¯å¢ãJavaç¨åºéè¦çç±»è½å¤å¨æå°è¢«è½½å ¥å°è¿è¡ç¯å¢ï¼ä¹å¯ä»¥éè¿ç½ç»æ¥è½½å ¥æéè¦çç±»ãè¿ä¹æå©äºè½¯ä»¶çå级ãå¦å¤ï¼Javaä¸çç±»æä¸ä¸ªè¿è¡æ¶å»ç表示ï¼è½è¿è¡è¿è¡æ¶å»çç±»åæ£æ¥ãJavaè¯è¨çä¼è¯ç¹æ§ä½¿å¾Javaåºç¨å ·ææ æ¯çå¥å£®æ§åå¯é æ§ï¼è¿ä¹åå°äºåºç¨ç³»ç»çç»´æ¤è´¹ç¨ãJava对对象ææ¯çå ¨é¢æ¯æåJavaå¹³å°å åµçAPIè½ç¼©çåºç¨ç³»ç»çå¼åæ¶é´å¹¶éä½ææ¬ãJavaçç¼è¯ä¸æ¬¡ï¼å°å¤å¯è¿è¡çç¹æ§ä½¿å¾å®è½å¤æä¾ä¸ä¸ªéå¤å¯ç¨çå¼æ¾ç»æåå¨å¤å¹³å°ä¹é´ä¼ éä¿¡æ¯çä½ææ¬æ¹å¼ãç¹å«æ¯Javaä¼ä¸åºç¨ç¼ç¨æ¥å£ï¼JavaEnterpriseAPIsï¼ä¸ºä¼ä¸è®¡ç®åçµååå¡åºç¨ç³»ç»æä¾äºæå ³ææ¯å丰å¯çç±»åºã[ç¼è¾æ¬æ®µ]Javaç¸å ³ææ¯1ãJDBCï¼JavaDatabaseConnectivityï¼æä¾è¿æ¥åç§å ³ç³»æ°æ®åºçç»ä¸æ¥å£ã2ãEJB(EnterpriseJavaBeans)使å¾å¼åè æ¹ä¾¿å°å建ãé¨ç½²å管ç跨平å°çåºäºç»ä»¶çä¼ä¸åºç¨ã3ãJavaRMI(JavaRemoteMethodInvocation)ç¨æ¥å¼ååå¸å¼Javaåºç¨ç¨åºãä¸ä¸ªJava对象çæ¹æ³è½è¢«è¿ç¨Javaèææºè°ç¨ãè¿æ ·ï¼è¿ç¨æ¹æ³æ¿æ´»å¯ä»¥åçå¨å¯¹çç两端ï¼ä¹å¯ä»¥åçå¨å®¢æ·ç«¯åæå¡å¨ä¹é´ï¼åªè¦åæ¹çåºç¨ç¨åºé½æ¯ç¨Javaåçã4ãJavaIDL(JavaInterfaceDefinitionLanguage)æä¾ä¸CORBA(CommonObjectRequestBrokerArchitecture)çæ ç¼çäºæä½æ§ãè¿ä½¿å¾Javaè½éæå¼æçåå¡ä¿¡æ¯èµæºã5ãJNDI(JavaNamingandDirectoryInterface)æä¾ä»Javaå¹³å°å°çç»ä¸çæ ç¼çè¿æ¥ãè¿ä¸ªæ¥å£å±è½äºä¼ä¸ç½ç»æ使ç¨çåç§å½ååç®å½æå¡ã6ãJMAPIï¼JavaManagementAPIï¼ä¸ºå¼æç½ç»ä¸ç³»ç»ãç½ç»åæå¡ç®¡ççå¼åæä¾ä¸æ´å¥ä¸°å¯ç对象åæ¹æ³ã7ãJMS(JavaMessageService)æä¾ä¼ä¸æ¶æ¯æå¡ï¼å¦å¯é çæ¶æ¯éåãåå¸å订é éä¿¡ã以åæå ³æ¨æï¼Push/Pullï¼ææ¯çå个æ¹é¢ã8ãJTS(JavatransactionService)æä¾ååäºå¡å¤çèµæºçå¼æ¾æ åï¼è¿äºäºå¡å¤çèµæºå æ¬äºå¡å¤çåºç¨ç¨åºãäºå¡å¤ç管çåçæ§ãå¨Javaææ¯ä¸ï¼å¼å¾å ³æ³¨çè¿æJavaBeansï¼å®æ¯ä¸ä¸ªå¼æ¾çæ åçç»ä»¶ä½ç³»ç»æï¼å®ç¬ç«äºå¹³å°ï¼ä½ä½¿ç¨Javaè¯è¨ãä¸ä¸ªJavaBeanæ¯ä¸ä¸ªæ»¡è¶³JavaBeansè§èçJavaç±»ï¼é常å®ä¹äºä¸ä¸ªç°å®ä¸ççäºç©ææ¦å¿µãä¸ä¸ªJavaBeanç主è¦ç¹å¾å æ¬å±æ§ãæ¹æ³åäºä»¶ãé常ï¼å¨ä¸
javaæä»ä¹ä½ç¨Javaæ¯ä¸ç§ç¼ç¨è¯è¨ï¼å®æ¬èº«çä½ç¨æ¯éè¿ç¼ååºç¨ç¨åº
帮å©äººä»¬è§£å³æ¥å¸¸å·¥ä½ãçæ´»åå¦ä¹ éå°çé®é¢
ä¸é¢æå½çæ¯âä»ä¹æ¯Java"
æè®¸å¯¹ä½ çé®é¢ææ帮å©
Javaæ¯ç±Sun微系ç»å ¬å¸æåå±åºæ¥çç¨åºè¯è¨ï¼å®æ¬èº«æ¯ä¸ç§å¯¹è±¡å¯¼åï¼Object-Orientedï¼çç¨åºè¯è¨ãJAVAç®åå¨ææºä¸åºç¨æå¤çå°±æ¯JAVA游æã
Javaä¹å·ç§°æ¯è½è·¨å¹³å°ä½¿ç¨çè¯è¨ï¼è¿ä¸»è¦æ¯å 为Javaæ¬èº«è¢«ç¼è¯ä¹åï¼å¹¶ä¸æ¯ç´æ¥äº§çå¯æ§è¡çç ï¼èæ¯äº§çä¸ç§ä¸é´ç å«ä½ByteCodeï¼è¿ç§ç å¿ éå¨éè¿Javaçç´è¯å¨æ¥è§£è¯»å®ï¼æè½å¤çæ£ç被æ§è¡ï¼æ以åªè¦å¹³å°ä¸è£ æè¿ç§Javaçç´è¯å¨ï¼å°±è½è§£è¯»ByteCodeä¹å°±è½æ§è¡Javaç¼è¯è¿çç¨åºï¼æ ä¸Javaç¨åºæ¯å¨é£ç§å¹³å°ä¸è¢«ç¼è¯çï¼å°±å®å ¨æ²¡æ干系äºãJavaååºæ¥çç¨åºå¯å为两类ï¼åå«æ¯JavaAppletä¸ä¸è¬çApplicationï¼èApplicationè¿ä¸ç±»å°±ä¸ä¸è¬çç¨åºå¦C++çä½ç¨æ¯æ¯è¾ç±»ä¼¼çï¼æ¯ä¸ä¸ªç¬ç«å¯æ§è¡çåºç¨ç¨åºï¼åHotJavaæ¯ä¸ä¸ªæµè§å¨ï¼ä¸å°±æ¯ä½¿ç¨Javaç¨åºæåå±åºæ¥çãæ常è§çJavaç¨åºå æ¬åºç¨ç¨åºåappletsãåºç¨ç¨åºæ¯åç¬çç¨åºï¼è¯¸å¦HotJavaæµè§å¨è½¯ä»¶å°±æ¯ç¨Javaè¯è¨ç¼åçãApplets类似äºåºç¨ç¨åºï¼ä½æ¯å®ä»¬ä¸è½åç¬è¿è¡ï¼Appletså¯ä»¥å¨æ¯æJavaçæµè§å¨ä¸è¿è¡ãApplet主è¦æ¯å ç½®äºHTMLç½é¡µä¸ï¼å¨æµè§æ¶åæ¥ä½ç¨ã
Javaçç®æ æ¯ä¸ºäºæ»¡è¶³å¨ä¸ä¸ªå 满åå¼åæ ·ä¸åç§æºå¨ï¼ä¸åæä½ç³»ç»å¹³å°çç½ç»ç¯å¢ä¸å¼å软件ãå©ç¨Javaç¨åºè¯è¨ï¼å¯ä»¥å¨ç½é¡µä¸å å ¥åå¼åæ ·çå¨æææãå¯ä»¥æ¾ä¸ä¸æ®µå¨ç»ï¼å å ¥å£°é³ï¼ä¹å¯ä»¥å»ºç«äº¤äºå¼ç½é¡µçã
Javaææºè½¯ä»¶å¹³å°
Javaææºè½¯ä»¶å¹³å°éç¨çåºæ¬Javaå¹³å°æ¯CLDC(ConnectedLimitedDeviceConfiguration)åMIDP(MobileInformationDeviceProfile)ï¼æ¯J2ME(Java2MicroEdition)çä¸é¨åï¼å¨ä¸å½ä¸è¬ç§°ä¸ºâæ 线Javaâææ¯ãæ¤åï¼æ人æå®å«åâK-Javaâï¼å ¶å®ï¼K-Javaçå«æ³åªæ¯Sunå ¬å¸å¨å¼åKVMJavaèææºæ¶ç项ç®ä»£å·ï¼å¨è¯¥ææ¯è¢«æ£å¼å½å为KVMåï¼å°±ä¸åç¨K-Javaäºã
KJavaå³J2MEï¼Java2MicroEditionï¼ï¼æ¯Sunå ¬å¸ä¸é¨ç¨äºåµå ¥å¼è®¾å¤çJava软件ã以KJavaç¼ç¨è¯è¨ä¸ºææºå¼ååºç¨ç¨åºï¼å¯ä»¥ä¸ºææºç¨æ·æä¾æ¸¸æã个人信æ¯å¤çãçµåå°å¾ãè¡ç¥¨çæå¡ç¨åºãJ2ME(Java2MicroEdition)æ¯è´åäºæ¶è´¹äº§åååµå ¥å¼è®¾å¤çæ佳解å³æ¹æ¡ãJ2MEå¨è®¾è®¡å ¶è§æ ¼çæ¶åï¼éµå¾ªçâ对äºåç§ä¸åçè£ ç½®èé åºä¸ä¸ªåä¸çå¼åç³»ç»æ¯æ²¡ææä¹çäºâè¿ä¸ªåºæ¬ååãäºæ¯J2MEå å°ææçåµå ¥å¼è£ 置大ä½ä¸åºå为两ç§ï¼ä¸ç§æ¯è¿ç®åè½æéãçµåä¾åºä¹æéçåµå ¥å¼è£ ç½®(æ¯æ¹è¯´PDAãææº)ï¼å¦å¤ä¸ç§æ¯è¿ç®è½åç¸å¯¹è¾ä½³ã并ä¸å¨çµåä¾åºä¸ç¸å¯¹æ¯è¾å 足çåµå ¥å¼è£ ç½®(æ¯æ¹è¯´å·æ°æºãçµå°ç®±)ãå 为è¿ä¸¤ç§åºåï¼æ以Javaå¼å ¥äºä¸ä¸ªå«åConfigurationçæ¦å¿µï¼ç¶åæä¸è¿°è¿ç®åè½æéãçµåæéçåµå ¥å¼è£ ç½®å®ä¹å¨ConnectedLimitedDeviceConfiguration(CLDC)è§æ ¼ä¹ä¸ï¼èå¦å¤ä¸ç§è£ ç½®åè§è为ConnectedDeviceConfiguration(CDC)è§æ ¼ãä¹å°±æ¯è¯´ï¼J2MEå æææçåµå ¥å¼è£ ç½®å©ç¨Configurationçæ¦å¿µåºéæ两ç§æ½è±¡çåæã
Javaææ¯çå¼æ¾æ§ãå®å ¨æ§ååºå¤§ç社ä¼å·²æèµæºï¼ä»¥åå ¶è·¨å¹³å°æ§ï¼å³âç¼åä¸æ¬¡ï¼å°å¤è¿è¡âçç¹ç¹ï¼ä½¿Javaææ¯æ为æºè½ææºè½¯ä»¶å¹³å°çäºå®æ åãéç¨Javaææ¯åï¼ç¼ååºç¨ç¨åºåæä¾æå¡ç人就ä¸å¿ å ³å¿æ¥åå ¶æå¡çææºéç¨çæ¯ä»ä¹æä½ç³»ç»åè¯çï¼åªè¦æç §Javaçè¦æ±å»åç¨åºå°±å¥½äºï¼åæ ·ï¼ç产ææºçååä¹ä¸å¿ 顾èå°æ¥è°æ¥æä¾å¢å¼æå¡ãå¯ä»¥çåºï¼éç¨Javaææ¯ï¼å¯ä»¥å»ºç«å®æ´ãé«æçæ 线æ°æ®å¢å¼æå¡äº§ä¸é¾ï¼ä»è为ç¨æ·æä¾çµæ´»ã个æ§åãå 容æ¹å¼å¤æ ·çæå¡ã
Javaææºåå±ç°ç¶
å°ä»å¹´6æï¼å ¨ä¸çå·²ç»æ大约1亿é¨Javaææºå¨ä½¿ç¨ï¼é¤ä¸å½å¤§éå¤å ±æ个移å¨è¿è¡åæ£å¼æ¨åºäºåºäºJavaææ¯çæ 线æ°æ®å¢å¼æå¡ãä¸å½ç§»å¨éä¿¡éå¢å·²ç»å»ºç«äºæ 线Javaå¢å¼æå¡ä½ç³»ï¼å¹¶æ¨åºäºâç¾å®ç®±âçæå¡åçï¼å æ¬æ¸¸æç¾å®ç®±ã娱ä¹ç¾å®ç®±ãåå¡ç¾å®ç®±ãçæ´»ç¾å®ç®±çï¼å·²ç»äºå¹´7ææ¥å¼å§æ£å¼åç¨ã
ä¸å½èéå ¬å¸ä¹æ£å¨å ¶CDMA1Xç½ç»ä¸å»ºç«æ 线Javaå¢å¼æå¡ä½ç³»ï¼ç®åç³»ç»æ£å¨å»ºè®¾è¿ç¨ä¸ï¼å¹¶ä¸å¹´9ææ¥ä¸å½èéãå京æ¯æèéå ¬å¸åSunå ¬å¸å¨äººæ°å¤§ä¼å 宣å¸èååèµ·æç«âUniJaææ¯èçâï¼ä¸æ¹å°å¨èéCDMA1Xç½ç»ä¸çJavaå¢å¼æå¡æ¹é¢å ¨é¢åä½ã
Javaç主è¦ä½ç¨å¯ä»¥å¹²ä»ä¹ï¼javaå±äºèæ¬è¯è¨ï¼ç®å主è¦ç¨äºä»¥ä¸å æ¹é¢ï¼
1ãç½ç«æå¡å¨ç«¯ï¼å³javaWebå¼å
2ãæµè§å¨ç«¯èæ¬è¯è¨ï¼å³javaScriptã
3ãå¼åå®ååºç¨
Javaæ¯ä»ä¹ï¼Javaå°åºè½å¹²åï¼ä¸ãJavaæ¯ä»ä¹ï¼
Javaæ¯ä¸é¨é¢å对象ç¼ç¨è¯è¨ï¼ä¸ä» å¸æ¶äºC++è¯è¨çåç§ä¼ç¹ï¼è¿æå¼äºC++éé¾ä»¥ç解çå¤ç»§æ¿ãæéçæ¦å¿µï¼å æ¤Javaè¯è¨å ·æåè½å¼ºå¤§åç®åæç¨ä¸¤ä¸ªç¹å¾ãJavaè¯è¨ä½ä¸ºéæé¢å对象ç¼ç¨è¯è¨ç代表ï¼æ好å°å®ç°äºé¢å对象ç论ï¼å 许ç¨åºå以ä¼é çæç»´æ¹å¼è¿è¡å¤æçç¼ç¨ã
Javaå ·æç®åæ§ãé¢å对象ãåå¸å¼ãå¥å£®æ§ãå®å ¨æ§ãå¹³å°ç¬ç«ä¸å¯ç§»æ¤æ§ãå¤çº¿ç¨ãå¨ææ§çç¹ç¹ãJavaå¯ä»¥ç¼åæ¡é¢åºç¨ç¨åºãWebåºç¨ç¨åºãåå¸å¼ç³»ç»ååµå ¥å¼ç³»ç»åºç¨ç¨åºçã
äºãJavaè½åä»ä¹ï¼
å¦äºJavaå°åºè½åä»ä¹å·¥ä½ï¼è¿ä¸ªé®é¢è®©å次æ¥è§¦Javaç人å¾è¿·è«ãå ¶å®Javaå¯ä»¥åçä¸è¥¿å¤ªå¤äºï¼ææºæ¸¸æãä¸é´ä»¶ã软件ãç½ç«ã以åå¦ä»é常ç«çææºappççï¼é½æ¯éè¿Javaè¯è¨ç¼åçã
1ãJavaå¯ä»¥ç¨æ¥ç¼åç½ç«
对äºå¦çæ¥è¯´ï¼æå ³å¿çæ¯Javaè½åä»ä¹ï¼å¸åºä¸æä»ä¹å·¥ä½è·Javaæå ³ãç°å¨å¾å¤å¤§åç½ç«é½ç¨jspåçï¼JSPå ¨å为JavaServerPagesã
å®æ¯ä¸ç§å¨æç½é¡µææ¯ï¼æ¯å¦æ们çæçï¼ä¸äºæ¿åºç½ç«é½æ¯éç¨JSPç¼åçãæ以å¦ä¹ Javaçåå¦å¯ä»¥æ¾ç¼åç½ç«æ¹é¢çå·¥ä½ï¼èä¸ç°å¨æ¾è¿æ¹é¢çå²ä½æ¯è¾å¤ã
2ãJavaå¯ä»¥åAndroid
Androidæ¯ä¸ç§åºäºLinuxçèªç±åå¼æ¾æºä»£ç çæä½ç³»ç»ï¼å ¶æºä»£ç æ¯Javaãæ以å¸åºä¸è§å°çææºç³»ç»ä¾å¦MIUI,é¿ç¸äºï¼ä¹èçï¼é½æ¯ä¿®æ¹æºä»£ç ååè¡çã
Javaåå®åä¸ååæ¯æç³»ç»ï¼è¿æAPP.对äºæ´å¤çå¼å人åæ¥è¯´ï¼ä»ä»¬æ´å¤çæ¶é´æ¯è±å¨å¼åAPPä¸é¢ã
3ãJavaå¯ä»¥å游æ
æè ä½ ä¸ç¥éï¼å¨ä»¥å诺åºäºè¿å¾æµè¡çæ¶åï¼ä½ ç©çææºæ¸¸ææ%以ä¸é½æ¯Javaå¼åçãå½ç¶ç°å¨å·²ç»å¾å°äººåå»å¼åäºï¼é½è½¬å°å®åä¸å»äºãçµèä¸ä¹æJavaå¼åç游æï¼æç»å ¸çæ¯ï¼ãæçä¸çã(minecraftï¼ç®ç§°MC)ã
4ãJavaå¯ä»¥å软件
ä¸è¬ç¼ç¨è¯è¨é½å¯ä»¥å软件çï¼Javaä¹ä¸ä¾å¤ï¼ä¾å¦Eclipseï¼MyEclipseçç¥åJavaå¼åå·¥å ·ãæå ³å¼å软件ç»ä»¶ï¼å¯ä»¥äºè§£JavaSwingç¼ç¨æè awtç¸å ³ç¥è¯ã
5ãå ¶ä»
é¤äºä»¥ä¸ææçJavaè¯è¨åºç¨èå´ä¹å¤ï¼å®¶éçæ´è¡£æºã微波çç家çµé½æå¯è½æ¯éè¿Javaè¯è¨ç¨åºæ§å¶çå¢ãæéè¦çæ¯è¦æ¾å°èªå·±çä¸ä¸ªå ´è¶£æå¨ï¼ä¸æ»ä¸ä¸ªé¢åï¼åæä¸å»æä¼ååºæ绩ã
以ä¸å°±æ¯Javaå¼åè½åçä¸äºå·¥ä½ãå¯ä»¥çåºJavaå¼åå¤åä¼ä¸éè¦ï¼å¤§éçéæ±ä¹å°±æå³çä»ä¸äººåçå°±ä¸å¸åºåºå¤§ï¼èé£äºå ·å¤è´´è¿ä¼ä¸éæ±çæå®Javaåºæ¬åçç¨åºåï¼æ´æ¯è¢«ä¼ä¸äºç¸æ¢èã