当前位置: 主页 > JAVA语言

crm系统java源代码-java购物系统代码

发布时间:2023-02-08 14:29   浏览次数:次   作者:佚名

著名人类学家费孝通先生曾指出,我们所谓的“现在”,其实包含着从“过去”的历史中提炼出来的推算和时间选择的积累。 对我们来说,历史不是可有可无的装饰品,而是前进路上不可或缺的务实基础。

从Java诞生(1995年)到现在已经20多年了。 了解Java的一些发展历史,有助于我们更好地理解Java,看清这个纷繁复杂的编程语言世界,进而用好Java。

说到Java的发展史,就不得不提到它的新老东家——太阳神(Sun)和甲骨文(Oracle)。 先说说孙悟空。 事实上,Sun的本意并不是“太阳”,而是斯坦福大学网络(Stanford University Network)的首字母缩写,与“太阳”无关。 不过,因为这个缩写的意思很好,所以“太阳”就这样叫了。

1982年,太阳公司从斯坦福大学工业园孵化出来,后来成为知名的高科技IT公司。 它的全称是太阳微系统公司(Sun Microsystems)。  Sun的主要产品是服务器和工作站,其产品极具竞争力,自然市场表现可圈可点。 在硬件方面,他们在1985年开发了自己的SPARC RISC处理器,可以大大提高服务器的性能。 在软件方面,他们引以为豪的操作系统Solaris(UNIX的一个变种)更胜一筹,当时Windows NT可以更好地利用计算机资源,尤其是当用户数量急剧增加,计算机系统变得非常庞大时,Solaris表现更好的。

在 20 世纪 90 年代,互联网出现了。  Sun公司走在时代潮流的前沿,其服务器和工作站的销量非常好,以至于该公司在广告中宣称:“我们是.com前面的那个点”。  .

Sun之所以敢于抬高自己,可不是吹牛而已。 它的实力确实很强,在当时足以脱颖而出。 其重要的软实力是人才济济。 人才在任何时代都是稀缺的(不仅仅是21世纪)。

Sun的创始人之一斯科特·麦克尼利可谓是一代非常重视研发的“英雄”。 在他的领导下,Sun先后开发出处理器、工作站和基于SPARC系列的Solaris操作系统,这些产品为Sun带来了丰厚的利润。

但如果我们把格局放大,从科技史的角度来看,或许Sun带给人类最有意义的产品并不是上面提到的软硬件,而是我们即将介绍的重要内容—— - Java 编程语言。

现在,让我们简单回顾一下Java诞生的背景。 在 90 年代,世界上的计算机大多处于两种状态:要么单独“归巢”——不连接互联网,要么在一个小范围内“归巢”——由企业内部局域网互连,资源当时可供公众共享的资源非常有限。

后来,随着互联网的蓬勃发展,不同类型的计算机系统需要连接起来,需要共享信息。 迫切需要一个跨越不同硬件、不同操作系统的新平台——这是那个时代的“痛点”。 任何时候,都会有划时代的产品,解决时代痛点。 能解决时代痛点,就把握时代发展方向。

Sun 的创始人 McNeely 对网络计算有着超前的洞察力。 在他的带领下,Sun的网络视野不仅仅局限于计算机之间的互联,还看得更远——计算机与非计算机之间也是相互隔离的,也需要相互连接!

在 Sun,McNeely 一直在推广“网络就是计算机”的概念。 这种无限连接世界概念的表达,推动了Sun参与时代的发展。 其实这个概念也很符合当下火热的云计算概念。

2016年4月28日,全球移动互联网大会(GMIC)在北京召开,时任腾讯副总裁的程武发表了“共享连接的力量”的主题演讲。 他提到,三年前,腾讯提出“连接一切”。 无论连接人、连接服务、连接设备,互联网从根本上都是在满足人的外延,让网络中的个体获得更多的资源和能力,实现更大的价值。

这样的认知其实是梅特卡夫定律的体现,即:网络的价值等于网络节点数的平方,网络的价值与联网用户数的平方成正比。 梅特卡夫认为,“连接”革命之后,网络的价值将飙升,网络中的个体有望实现更大的价值。

回过头来看,无论是现在流行的物联网(IoT)概念,还是腾讯“连接一切”的概念,其实都和孙宇晨30多年前的概念相差无几。 因此,可以说孙在那个时代的眼光并不“高瞻远瞩”。

孙认为,如果计算机和非计算机(主要指电子消费品,如家电等)系统能够连接起来,将带来一场计算机革命。 这是一个巨大的机会,而连接两者的媒介自然就是互联网。

无限连接的世界令人心潮澎湃。 但心不如行。  Sun 行动的结果是 Java 语言的诞生。

后来被称为 Java 之父的 James Gosling 说:“纵观当时的市场,两个领域的厂商各自为政,没有形成统一的网络。因此,很多实验不得不重复进行很多次,但这些其实早在30年前就在计算机科学中得到了解决。

那么核心问题就是当时的消费电子厂商根本就没有考虑使用互联网。 例如,没有制造商愿意生产可以上网的冰箱。 一流的公司,比如苹果,引导用户需求,而不是满足用户需求。 因为有时候,用户根本无法清楚地知道自己的需求。

为了解决计算机与计算机、计算机与非计算机之间的跨平台连接,麦克尼利决定组建一个名为格林的项目组,由詹姆斯·高斯林领导。 其目的是开发一种新的语言,并以这种语言为基础,为下一代数字设备(如家电)和计算机开发网络系统,使通信和控制信息可以通过分布式网络进行传输。 对于冰箱、电视机、烤面包机等家用电器,控制它们并与之交换信息。 大家想想,这不就是现在非常流行的物联网思维吗?

最初 Green 项目的工程师打算用 C++ 实现网络系统。 但C++更为复杂,最终经过剪裁、优化和创新,在1990年,Gosling的研发团队在C++的基础上开发了一种新的平台无关语言Oak(Java的前身)。  Oak 的名字来源于高斯林办公室外的一棵茂盛的橡树,这在硅谷是一种非常常见的树。

Oak主要用于为各种家用电器编写程序。  Sun曾经竞标过Oak语言的一个互动电视项目,但被SGI(Silicon Graphics,1982年成立于美国)击败。 由于当时市场对智能家电的需求比较低,Oak的市场占有率并没有原先预期的那么高,所以“见风使舵”的Sun放弃了这个计划(其实是“见风使舵”)而“在市场上做舵”并不是决策上的贬义词,而是一种灵活的市场策略)。 就这样,奥克差点“任务未到”。 事实上,我们不能在 Sun 考虑这一切。 即便是30多年后的今天,虽然物联网、智能家居等概念十分火爆,但真正落地成功的项目屈指可数。

此时,Mosaic 浏览器(第一个被广泛使用的能够显示图片的网络浏览器)和 Mark Ardreesen(美国软件工程师,Netscape Communications 公司的创始人)开发的 Netscape 浏览器(网络浏览器)设备,市场份额普遍占据了优势地位)启发了0ak项目组的成员,让他们预见到Oak可能会在互联网应用领域“大放异彩”,于是决定对Oak进行改造。

适时调整战略,把握时代需求,奥克迎来了自己的“又一村”。 也就是说,计算机与非计算机的连接失败是因为太超前了,但计算机之间的连接要求(更接近那个时代的氛围)又一次救了奥克。

1995年5月23日,Oak更名为Java,至此,Java正式诞生。  Oak之所以要改名,其实也是不得已而为之,因为Oak这个商标,已经被显卡厂商注册了。  Oak要想发展壮大,就必须在法律层面改头换面。

其实Java本身也是充满魅力的。 是印度尼西亚“爪哇”(注:Java的音译)岛的英文名称,以盛产咖啡闻名。 这也是Java官方商标是一杯浓咖啡的原因,而咖啡也是“爱”加班、“爱”熬夜的程序员最好的提神饮品之一。

当时,Java 最吸引人的特性之一就是它的跨平台特性。 过去,当计算机程序移植到不同的操作系统平台(如UNIX、Linux和Windows等)时,程序员通常不得不重新调试和编译这些程序,有时甚至需要重新编写。

Java的优势在于在设计之初就秉承了“Write Once, Run Everywhere”的思想,WORE; 有时它也被写成“Write Once, Run Anywhere”,WORA)。 为宣传 Java 语言的跨平台特性而提出的口号。

传统的程序可以通过编译得到与各种计算机平台紧耦合(Coupling)的二进制代码。 这种二进制代码在一个平台上可以很好地运行,但是在另一个平台上就会“水土不服”,很难运行。

Java的跨平台性意味着在一个平台下用Java语言编写的程序编译后无需任何改动就可以在其他平台上运行。 例如,在Windows环境下开发的Java程序,在运行时可以无缝部署到Linux、UNIX或macos环境中。 反之亦然,在Linux下开发的Java程序也可以在Windows等其他平台上运行。  Java是如何实现跨平台的? 我们可以用下图来对比说明。

java购物系统代码_java开源crm系统源码_crm系统java源代码

例如,中国人(一个平台)说一句问候语:“你好,世界!” 美国人、法国人、德国人、日本人(其他平台)都能听懂中文的“问候语”。 这要归功于英语、法语、德语和日语翻译人员的翻译。

同样,Java语言的巧妙之处在于它使用了一种称为Java虚拟机(Java Virtual Machine,JVM)的机制来屏蔽这些“翻译”的细节。 虽然全世界的人都尽情表达(写Java代码),但他们通过编译形成了所有平台通用的字节码(Byte Code),然后JVM“见平台点菜”默默干活幕后的“翻译与交流”。 正是因为JVM的存在,Java程序员才能做到“一次编写,到处运行”——这也是Java的精髓所在。

读者经过一段时间的Java学习,就会知道Java源代码编译出的二进制文件称为.class(类)文件。 如果你用十六进制编辑器(如UltraEdit等)打开这个.class文件,你会发现这个文件的前32位会显示为“CAFE BABE”,也就是词组“CAFE BABE” (咖啡宝贝)连接时,如下图。 每个Class文件的前4个字节就是这个标识符,它们被称为“幻数”,主要用来判断该文件是否是虚拟机可以接受的Class文件。 它的另一个作用是让 James Gosling 等具有黑客头脑的编程天才尽情发挥,他们就是这样在这些不经意的地方留下了自己的声音和名字。”

crm系统java源代码_java购物系统代码_java开源crm系统源码

Java类文件中的“咖啡宝贝”

或许,正是麦克尼利看到了 Java 的这一优秀特性。  Java推出后,Sun赔了钱,做了很多营销。 仅仅3个月后,当时互联网的宠儿之一网景公司(Netscape)决定采用Java。

由于Java是新一代的面向对象的编程语言,不受操作系统的限制,对网络有强大的支持,对终端用户免费,所以Java一下子流行起来。 很快,Oracle、Borland、SGI、IBM、AT&T 和 Intel 等许多大公司都加入了 Java 阵营。 当Java逐渐成为Sun的标志时,Sun索性将股票代码“SUNW”改为“JAVA”。  Sun对Java的重视可见一斑。

1997年Sun推出64位处理器,同年推出Java 2。  Java逐渐蓬勃发展,市场份额越来越大。  1998年,Java2根据适用环境的不同分为四个派系(见下图):Java 2 Micro Edition(J2ME)、Java 2 Standard Edition(J2SE)、Java 2 Enterprise Edition(J2EE)和Java Card。  ME的意思是小型设备和嵌入式系统。 这个小派其实是Java诞生的“初心”。

crm系统java源代码_java开源crm系统源码_java购物系统代码

(1)Java SE(Standard Edition,标准版):支持桌面级应用程序(如Windows下的应用程序)的Java平台,提供完整的Java核心API。 这个版本在 2005 年之前被称为 J2SE。

(2)Java EE(Enterprise Edition,企业版):在Java SE的基础上向外扩展,增加了很多支持企业内部使用的扩展类,支持企业应用采用多层架构(如ERP-Enterprise Resource Planning系统,CRM-客户关系管理系统应用)Java平台。 除了提供Java SE AP1之外,还做了很多扩展,提供了相关的部署支持。 这个版本在2005年以前叫做J2EE

(3)Java ME(Micro Edition,微型版):Java ME也是基于Java SE,但相对精简。 只支持核心类的一个子集,支持Java程序在移动终端(手机、PDA-掌上电脑)上运行的平台,并增加了对移动终端的支持。 这个版本在2005年以前叫J2ME,Java的缩影版,主要用于嵌入式开发,逐渐被Android开发取代。

(4)Java Card(智能卡版):由于服务对象定位更清晰,Java Card版比Java ME(微型版)更精简。 它支持一些运行在具有小内存设备(例如容量小于64KB的智能卡)的平台上的Java小程序(Applet)。

但是,无论Java技术平台如何划分,都是以Java SE为基础的,因此掌握Java SE非常重要,这也是本书的主要研究范围。 如果要开发Java EE,Java SE是其中必不可少的一部分,这也是为什么读者在学习Java EE之前必须要有扎实的Java SE基础。

那时,专门为连接智能家电而开发的Java,不曾想过“花有心剪不开,柳絮不留情成荫”,它已经家电市场没有好转。 随着互联网的飞速发展,它在企业市场大放异彩。

Java ME曾在翻盖手机应用中大放异彩,成为当时的标准配置。 但后来随着安卓(Android)的兴起,慢慢没落了。  Java之父高斯林后来说,“ME做的已经足够好了,是当时最强大的智能手机开发平台之一。但现在逐渐被人遗忘,因为Android太耀眼了。”

有起有落,螺旋上升是事物的常态。  Java的开发过程也不例外。  Oracle Java 平台开发副总裁、OpenJDK 管理委员会核心成员 Georges Saab 表示:“在 1990 年代,大多数开发人员将精力投入到编写真正的应用程序中。到 2000 年,Pet.com(美国宠物公司)的成功网站)吸引了大量的追随者,行业的重心已经从桌面转向HTML应用,随着智能手机和平板电脑的出现,基于触摸屏的移动应用走在了潮流的前沿。把握下一个流行趋势,涉及天时、地利、人和。”

然而,Java 是 Sun 的一项“华而不实”的资产。 因为,除了其日益增长的声誉之外,Java 并没有直接以其声誉回报 Sun。 用华尔街的话说,Java是亏本赚的。 喊Java是挣来的,但赚钱才是生存之道。

现在有互联网思维的企业都知道,“免妻的目的不是免费的,免妻的对象必然会转移,其实就是让‘羊毛去给猪’,最后让狗买单”账单。” 但那是 30 多年前的事了。  Sun并没有强烈的网络赚钱想法。 它死了(直到它被甲骨文收购)并没有弄清楚为什么它拿着黄金工作却找不到工作。

事实上,Sun除了生产处理器、服务器和操作系统外,还开发了办公软件OpenOffice。 从1995年到2000年,是Sun的高速成长时期。 这一时期,互联网发展迅速。 它曾与Oracle一起提出网络计算机(Networkcomputer,NC)的概念,主要指没有硬盘的计算机。 事实上,它们是低成本的台式机,也就是瘦客户机(或无盘工作站)。  .

但2000年后,.com泡沫破灭,大部分“.com”公司倒闭,幸存的公司也急刹车停止扩张收购。 服务器市场突然低迷,誓要成为互联网公司“看点”的Sun公司不再挑剔。 老的盈利点(服务器市场)已经盈利不了,新的盈利点(比如Java市场)也找不到了。  Sun顿时陷入了岌岌可危的境地。

有“月圆则亏财,水满则溢”之说。  Sun从1982年成立到2000年的巅峰用了将近20年,但走下坡路只用了一年时间。 这种断崖式的破坏,足以让今天的创业者引以为戒。

2008年爆发的金融危机,让不断亏损的Sun雪上加霜。  2009年,由于业绩不佳,Sun的市值比2007年缩水了一半,最终跌到了让期待已久的甲骨文能够承受的价格。  2009年4月,市值一度突破2000亿美元的Sun在最低点时被甲骨文以74亿美元的低价收购。 这个价格仅为Sun 最高市值的3%。 作为Sun公司核心资产之一的Java,自然换了新东家——Oracle。

按照甲骨文老板拉里·埃里森(Larry Ellison)的说法,Sun 有很好的技术和很好的工程师,但是他们的管理真的很糟糕(Astonishingly bad managers),他们做了很多错误的决定crm系统java源代码,导致甲骨文能够接盘以非常便宜的价格泄漏。

2015年5月23日,在北京中关村3W咖啡厅,笔者参加了甲骨文(中国)组织的Java诞生20周年庆典。 在总结Java成功的原因时,甲骨文开发者关系团队总监Sharat Chander总结了三点:社区排名第一,这是Java成功的基础;  Java技术的持续进步排名第二; 而排在第三位的,就是Oracle对Java的管理。

在收购Sun之后,甲骨文一方面继续积极推动Java社区的发展,另一方面及时反馈社区的成果,并将其纳入到新版本的产品中。  Oracle承诺每2年发布一次大版本更新,每6个月发布一次小版本更新。

在新版本方面,Oracle 非常尊重 Java 社区的意见。  Java 7是在与社区深入交流的基础上推出的。 虽然当时不是推出 Java 7 的最佳时机,但它的后续功能在 Java 8 中得到了补充。

对于Java的发展,Java社区的重要性不容忽视。  Oracle 认为自己不是 Java 的管家,而是与 Java 社区一起管理 Java,这也被称为 Java 成功的基础。 据 Sharat Chander 介绍,Java 社区拥有 314 个 Java 用户组,超过 900 万的 Java 开发人员,超过 150 名 Java Champions(技术负责人)。

2009年12月,企业版升级版Java EE 6发布。  2011 年 7 月 28 日,Java SE 7 发布。

随着CPU多核(many-core)时代的兴起,程序员们开始探索如何编写并行代码。 经过一番折腾,大家发现很多好的编程思想都来自于一种叫做函数式编程的编程范式。 这个被搁置的好主意又被提出来了。  2014年3月19日,甲骨文公司发布了Java 8.0正式版,提供了大家期盼已久的Lambda。

当然,Java 并非没有缺点。 总的来说crm系统java源代码,有人采访过C++之父Bjarne Stroustrup,问他对Java的简单性有什么看法。 他的回答是时间不够长。 师父的意见确实深刻。  Java的美妙之处不再是简洁,而是高效的开发。 它为此付出的代价是各种类库和框架极其复杂和臃肿。 通常,即使是专业水平的 Java 程序员也需要花费大量的金钱(包括时间或金钱)在学习成本上。 不过这也符合事物发展的规律,就像我们不能指望一个横纲级别的相扑选手力气很大,而是指望他轻如燕子一样。

这就是我们的Java! 它并不完美,但它确实有效!

本文节选自《Java编程技术大全》

java购物系统代码_java开源crm系统源码_crm系统java源代码

本书面向Java零基础读者,以实际案例引导读者学习。 本书主要包括基础知识、核心技术、进阶应用和项目案例4个部分,帮助读者系统、全面地学习。 为增强实用性,特精选考试认证、求职面试等题库供读者学习学习。 最后,为了帮助初入职场的从业者顺利进入角色,还特意奉上职业规划建议和相关发展文档。