自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三日沐水

IT资料分享

  • 博客(67)
  • 资源 (5)
  • 收藏
  • 关注

原创 专利挖掘-技术产品型

对现有技术的借用组合,只要技术目的不同或技术效果不同,则具备创造性。创造性:现有的文件和本方案对比,区别点是非行业通用、公知常识、多个现有技术简单叠加的;任何一个发明或者创新的问题,都可以表示为需求和不能满足这些需求的原型系统之间的冲突。遇到的问题/需要实现的目标——>采用的技术方案——>解决冲突。问题:一种水冷系统,水的散热性不能满足需求。1、智能门:指纹+密码+声波,3重验证,增加安全性。解决方案:将水替换为一种散热性更高的液体。外观设计:形状、图案、颜色、G/UI。发明:技术、场景、实用新型。

2023-10-19 16:54:37 120

原创 如何有效沟通

遇到这种人:切忌像性格1那样漫天飞舞,把东西论点、论据写清楚,有理有据,相信你 说话。人口、不着急否定、赞美、用赞美和鼓励拉近距离。切忌不要直接抨击竞争对手的不好,问出客户愿意立刻购买背后的动机是什么。要去研究历史上别人犯过的重大错误,这比研究成功更重要。需要用心听、这种人要的是感性、感觉。避免:有数据、图片、客户见证。有目标感、强势、被拒,需要柔软沟通。鼓励、赞美、带着做事情。会议:招商开场、展示团队、展示价值观和文化。展示价值、移情认同、提供最快速的解决方案。

2023-07-27 18:49:19 102

原创 算法-选择排序-java

方法实现了选择排序算法。算法的关键是从未排序部分选择最小的元素,并将其与未排序部分的第一个元素交换位置。通过这种方式,每次迭代都会将未排序部分的最小元素放到已排序部分的末尾。重复这个过程,直到整个数组排序完成。方法中,我们测试了选择排序算法的实现。输出结果为排序后的数组。在这个示例中,我们通过。

2023-07-20 16:09:51 92

原创 算法-插入排序-java

方法实现了插入排序算法。算法的关键是将数组分成已排序和未排序两部分。初始时,第一个元素被认为是已排序的部分,然后从第二个元素开始遍历。对于每个元素,我们将其与已排序部分的元素进行比较,并将比它大的元素向右移动,为该元素腾出插入的位置。最后,我们将该元素插入到正确的位置。重复这个过程,直到整个数组排序完成。方法中,我们测试了插入排序算法的实现。输出结果为排序后的数组。在这个示例中,我们通过。

2023-07-20 15:59:09 62

原创 算法-快速排序-java

方法中,我们通过遍历数组,将小于基准点的数放到左边,大于基准点的数放到右边,最后将基准点放到正确的位置上。这里使用了双指针的思想,使用。方法将数组划分为两个子数组,并返回基准点的索引。然后,我们递归地对划分后的子数组进行快速排序,直到排序完成。方法中,我们首先选择一个基准点(这里选择最右边的元素),然后通过。这是一个使用经典的"最右元素作为基准点"的快速排序算法实现。方法中,我们测试了快速排序算法的实现。方法中,我们用于交换数组中两个元素的位置。来记录小于基准点的元素的最后一个位置。

2023-07-20 15:47:41 267

原创 算法-归并排序-JAVA

分别指向左子数组、右子数组和临时数组的位置。通过比较左指针和右指针指向的元素大小,将较小的值复制到临时数组中,并同时移动指针。最后,将临时数组中的元素复制回原始数组中。归并排序的时间复杂度为O(nlogn),其中n是待排序数组的大小。该算法是一种稳定的排序算法,适用于各种数据类型和数据量的排序。在归并排序中,首先进行递归地将数组划分为更小的子数组,然后进行合并操作。在合并操作中,将两个有序的子数组合并成一个有序的数组。方法用于调用归并排序的入口,它接受待排序的数组作为参数,并创建一个额外的临时数组。

2023-07-20 15:13:07 800

原创 架构设计基础

云上架构是一种全新的技术架构,将IT资源(包括服务器、存储、网络等)有效整合,形成统一资源池,以服务的方式对外提供云服务。业务架构是灵魂、IT架构是容器、即灵魂的载体。

2023-07-05 13:28:37 75

原创 知识产品与科技创新

通过在创新者的利益和广大公众的利益之间达成适当的平衡,知识产权制度旨在营造一个有利于创造蓬勃发展的环境。知识产权是指智力创造成果:发明,文学和艺术作品,外观设计,商业中使用的符号、名称和形象等。需要注册:发明专利、实用新型、外观设计、商标、著作权(证书)、域名。5、知识产权是企业技术、品牌价值和竞争力的重要表现形式及核心承载体。1、知识产权是政府招标、企业市场扩展、营销宣传的必备资质和手段。许可、税收、资质、项目申报、估值、投融资、证券化。4、知识产权是公开、合法地了解信息、情报的途径。

2023-04-06 18:51:21 282

原创 IPD流程概要

在计划阶段结束时要召开一个计划决策审会,在这个会议上,PDT向IPMT展示最终的业务计划和决策合同,由IPMT做出继续或终止的决策。可获得性决策评审应在任何主要的发布花费投入之前进行,评审的目的是证实在计划阶段制定的业务计划中的估计和假设,并评估产品发布前公司的准备情况。计划决策评审点是计划阶段的终点。在计划阶段要将产品包/解决方案业务计划扩展成详细的产品包定义,启动对开发方法的正式规划,包括完整的产品定义、开发与制造方法、销售与营销计划、项目管理计划、产品支持计划、详细的进度以及财务分析。

2022-11-25 16:42:04 3370

原创 IPD-产品需求管理过程(2)

分配需求(AR)是根据系统需求分解到子系统/模块的功能或非功能性需求,实际上也是系统需求的一种表现形式,可以按领域进行,也可以按子系统进行,这需要根据组织分析的效率进行选择。系统需求(SR,需求分层关系栏):指支撑系统特性所需的具体需求,是系统对外呈现的、可测试的全部功能需求和非功能需求。需求分发是将RAT(需求分析团队)批准的要实现的需求,按照实现交付的时间点,划到不同版本的计划中,以实现“看五步,理三步,走一步”,随需应变的产品开发和交付。需求实现主要由PDT来进行,包括从产品包需求到测试多个环节。

2022-11-23 16:32:03 4246

原创 IPD-产品需求管理过程(1)

因此,对客户深层次和潜在需求的挖掘,需要应用同理心或让用户深度参与。在确定客户需求时,要考虑影响用户购买标准的八类基本需求($APPEALS),并基于客户视角进行详细分解,形成有针对性的产品。内部需求:如DFX(design for x,意为面向产品生命周期各/某环节的设计)需求、架构需求和关键技术落地需求。外部需求:从公司外部收集的需求,来源包括客户、市场、行业会议、竞争对手等,主要针对细分市场需求。需求基线:包括标准、客户准入、法律法规等稳定的需求集。

2022-11-21 18:21:40 1640

原创 IPD的商业实现过程

通过对产品开发进行有效的投资组合分析,正确分配各个新产品的投入资金金额,预测新产品的投资利润率,明确投资利润率的各种静态、动态的决定因素和计算方法,企业从而对产品战略做出正确的判断和决定,进而确定对产品组合的投资,最终形成以市场为中心,在商业上能够带来最佳业务成果的整体业务计划。但随着企业外部影响商业结果的因素增多,随着产业链中更多的企业间协调机会和协同要求的出项,商业实现像产品实现一样具有实体性,也需要发现机会,需要制定计划,进行商业开发,最终完成商业兑现。直接客户:客户化应用开发商:支撑。

2022-11-21 13:52:54 332

原创 IPD-全面认识IPD流程

这三项主要由市场部主导,完成产品线和产品对应的市场分析。分层包括投资管理、业务运营管理、服务产品开发、产品和解决方案开发等内容,分类包括产品开发、产品平台开发、产品和解决方案开发等内容,分类包括产品开发、产品平台开发、技术平台及技术开发、渠道和产业链管理、合作资源开发等。商业机会实现过程主要是对机会分析的输出进行规划,包括各细分市场的服务和产品策略,制定产品路标,规划产品平台路标,提出技术平台规划需求。这个过程适用于所有行业,适用于所有创新型市场化企业,包括贸易型企业、外包解决方案型企业、投资型企业等。

2022-11-18 18:24:51 2810

原创 商务呈现之危机公关处理

危机公关是指应对危机的有关机制根据公共关系学创始人爱德华·伯尼斯(Edward Bernays)的定义,公共关系是一项管理功能,制定政策及程序来获取公众的谅解和接纳。危机公关具体是指机构或企业为避免或者减轻危机所带来的严重损害和威胁,从而有组织、有计划地学习、制定和实施一系列管理措施和应对策略,包括危机的规避、控制、解决以及危机解决后的复兴等不断学习和适应的动态过程。

2022-11-15 19:02:42 431

原创 商务呈现之客户满意度

客户满意”是指以通过各企业提供的服务和商品,让客户满意为目的的概念。在英语中叫做“客户服务传真”,一般被称为“CS”。“客户有多满意”本来就很模糊,根据个人的主观情况,通过问卷调查等调查将其满足程度数值化,作为能够客观评价的指标可视化的称为“客户满意度”。在消费社会高度化的现代,仅仅靠服务、商品的质量、成本来谋求差别化变得困难。另外,仅仅利用大众媒体进行广告宣传,也不容易与购买联系起来。在这种情况下,在决定消费者寻求哪种服务和商品时,作为新的评价轴受到关注的可以说是客户满意度。

2022-11-15 15:54:54 119

原创 商务呈现之沟通管理-下

提案一般面向客户,汇报一般面向上级,但是他们都是通过正式陈述,争取对方的认可,批准或者授权,从而推进下一步计划。一个会议中不管你出于何种角色,何种地位,当你主动开始记录 MoM,你就开始掌握主动权。“没有人一开始就能想清楚,只有做起来,目标才会越来越清楚。在沟通中展现建设性的句式:“来,我们梳理下行动项”,“请您再提点需求”把沟通导向行动,实现我们跟客户共同的目标。

2022-11-15 13:16:19 527

原创 商务呈现之沟通管理-上

小王:嗯,这几个确实是客户经常问到的问题,因为他们熟悉的原来的技术方案,最大的瓶颈就是这两个问题,他们也大多软件背景 也不多,一时半会儿要理解我们新的方案很困难,只能套用他们熟悉的知识试图理解我们的方案。背景:小张是一个资深的软件工程师,跟PM小王一起做了一个关于汽车网络的新兴技术应用,该项目是这项技术第一次在国内车企被应用,之后各大客户关于这项新技术的咨询层出不穷,PM小王精力不够且小张有意往PM方向发展,于是小张就分担了一些客户需求的对接工作。课程目标:商务/项目的目标达成,任务推动,良好的商务呈现。

2022-11-15 11:35:38 195

原创 商务呈现之合同管理和范围管理

避免约定积激进的性能指标或从未达成过的指标,如甲方坚持则需要开展专项小组组织攻关,确认可行性后方可承诺,如预验收后不可达成,则务必向甲方说明,将相关指标从合同中去掉或模糊化处理,谨慎对待任何此类标准的设定,一旦承诺而实际无法达成,可能会导致客户产品的不成功,公司将面临罚则或有声誉影响。2、合同中需要有需求描述,如果颗粒度很粗,那么尽量对每一条增加限制说明或依赖条件,每一条需求标注验证通过的条件,最好形成规范的RFI文档,规定产品需求,作为合同附录,在项目变更时来对照。

2022-11-14 19:10:25 164

原创 商务之理解项目目标

(3)记住,项目是一个业务过程,要解决的是一个实际的问题。本次项目背景,我方针对客户于中东、俄罗斯、独联体、欧洲、澳洲五个海外地区,已发布的多个品牌、车型的智能座舱迭代产品,提供海外测试服务,确保客户智能座舱海外版产品的交付质量。因为项目最终还需要验收,而需求不明确的结果,意味着一旦最终结果并不符合客户的预期(这种情况非常常见),那么模糊的需求意味着项目的边界可能无限扩大,导致项目的失败。和 客户拉近距离也能了解客户需求,如果和客户成了朋友,对客户的喜欢以及真实想法,涵盖客户的需求以及市场需求。

2022-11-14 17:57:34 396

原创 项目管理之系统设计

软件质量的约束,如正确性、可靠性、效率(性能)、清晰性、安全性、可扩展性、兼容性、可移植性等其他隐含约束。项目上,项目经理、架构师、研发经理、QA对输出物统一理解,过程中从各个维度监督输出物的产出和品质;项目初期就与客户约定好设计的输出物,包括输出物的格式&模板以及项目的模块;4、明确系统集成的策略,例如:各模块集成的顺序,集成的注意事项等。整体系统结构清晰、、模块功能明确、接口标准、支持扩展、功能冗余低。————————>能开展各种科学实验——实验工作、追加实验设备。项目经理、研发负责人、Arch。

2022-11-08 15:10:32 643

原创 项目管理之系统交付

为交付具有规定特性与功能的产品、服务或成果而必须完成的工作。验收标准——可交付成果通过验收前必须满足的一系列条件。各交付节点的准入项checklist制定和跟踪。范围说明书包含可交付成果的验收标准。验收标准的理解,和最终验收人对齐。传递到项目组所有成员,让组员了解。2、什么时候验收,什么版本验收。3、可量化的,不可变的验收标准。一、项目最重要的是什么-交付。4、验收结果的正式输出。二、可交付成果是什么。

2022-11-08 14:50:01 1138

原创 商务呈现-售前评估&支持

部分Leader对于工作量预估预估的流程,技术风险识别缺乏认知,尤其在面对较大型的项目时,不能准确的评估出相关的工作量预估以及说明预估的逻辑。首先销售或者AM前期与客户交流,了解到客户的需求向客户推荐我们的能力或者产品,掌握到真正可以帮助客户达成目标,我们所能提供的服务方式。其次,当客户正式的向我们的销售或者AM发送RFQ报价需求后,销售和AM要充分了解到客户RFQ的背景和竞争对手的情况。准确的工作量评估预估能确保客户和TS保持双赢,建立起互信的关系,并让TS持续保持市场竞争力。2、输入信息背后的活动。

2022-11-07 10:57:53 304

原创 项目管理之项目计划TG1

规划的输出为项目计划书,项目计划的初始基线版本,要求最迟不能超过项目立项后两周发布。项目管理计划是项目的主计划或称为总计划,它确定了执行,监控和结束项目的方式和方法,包括项目需要执行的过程、项目生命周期、里程碑和阶段划分等全局性内容。硬件或整机项目会涉及多个第三方的合作,包括部分模块硬件设计外包,天线设计外包,委外认证测试外包,结构设计外包,摸具生产外包,软件包括第三方算法外包,第三方app外包等等。主要定义项目在代码,BUG等相关的软件规模,原质量页内容由QA提供的质量保证计划中的质量要求为内容标准。

2022-11-07 09:21:49 590

原创 项目管理之立项TG0

1、初步盒子意向/RFP———— 需求沟通商务接洽————————2、商务/售前对接3、技术评估——————内部立项————————4、商务/框架协议审核5、项目预立项——————集团立项————————项目经理将立项资料提交看板系统以及发项目立项邮件,由QA组织项目经理参与项目立项会,待项目管理委员会评审通过以后,才能正式立项,项目立项完成以后才能进行合同的签署以及项目的实施,以上就是项目立项的整体流程。

2022-11-04 15:40:30 660

原创 项目管理之财务基础

业务类型收入确认Royalty:授权客户使用TS自有软件,月/季度按出货量开票结算,开票却惹收入。

2022-11-03 00:11:30 90

原创 Window PC上安装vmware搭建公网虚拟机遇到的问题

2、进入到 cd /etc/sysconfig/network-scripts/ 目录下修改ifcfg-ens33为ifcf-eth0文件。3、进入 /etc/udev/rules.d目录下 创建文件:70-persistent-net.rules。NAME、DEVICE、HWADDR=之前的MAC地址,通过ip addr show 查看。1、输入ip addr show 获取最新的 MAC地址。然后ping www.baidu.com 已经ok了。ONBOOT=no 改为 ONBOOT=yes。..

2022-08-27 15:59:12 258

原创 容器数据卷

如果开启,我们一般使用--privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除其挂载的数据卷。docker容器数据————————————> 映射,容器内的数据备份+持久化到本地主机目录。(3)数据卷中的更改不会包含在镜像的更新中。容器内被限制只能读不能写。

2022-08-21 15:31:21 219

原创 Docker镜像底层原理

bootfs(boot file system)主要包含bootloader和kernel、bootloader主要引导加载kernel,linux刚启动时会加载bootfs文件系统,在Docker镜像的底层是引导文件系统bootfs,这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。Docker镜像层都是只读的,容器层是可写的。...

2022-08-16 22:09:54 95

原创 Docker 平台架构&底层原理二

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket链接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。4、Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动Graph Driver将下载镜像以Graph的形式存储。2、Docker Daemon作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求。.........

2022-08-14 17:32:31 681

原创 Docker实战一

Docker镜像(image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。Docker利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。可以把容器看做是一个简易版的Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。国内的公开仓库包括阿里云、网易云等。..

2022-08-14 16:40:20 288

原创 spring源码——beanDefinition源码解析(一)

知识点1:bean 能够被装配的原因,1、设置了自动装配,2、有且只有一个构造方法的时候默认走下面autowireContructor方法。知识点2:spring扫描出来的类哪些不能实例化?(1)加@DependsOn("")注解的类(2)protoType 使用的时候去new(3)@lazy 懒加载类(4)abstract类也不是能new知识点3:spring bean的产生流程是如何呢?SCAN——>PARSE解析类——>验证validate类——>实例..

2022-08-14 15:50:18 137

原创 LINUX介绍和基本命令【三】

linux webserver服务器初步介绍

2022-04-20 19:08:32 607

原创 LINUX介绍和基本命令【二】

1、查看当前用户:whoami2、查看登录用户:whowho 命令用于查看当前所有登录系统的用户信息。常用选项:-m 或 am I 只显示运行who 命令的用户名、登录终端和登录时间。-q 或 -count 只显示用户的登录账号和登录用户的数量-u 或 --heading 显示列标题。3、查看登录用户: w4、退出登录用户:exit5、切换用户:su6、添加、删除组账号:groupadd、groupdelgroupadd 新建组账号groupdel 删除组账号

2022-04-20 18:18:20 611

原创 LINUX介绍和基本命令【一】

C、C++学习之Linux基础部分

2022-04-17 01:16:07 124

原创 VUE前期准备

因为需要使用VUE的单文件注册组件需要安装一下:1 安装 npmnpm 全称为 Node Package Manager,是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。2 安装cnpm 由于国外网站网络原因,需要使用国内镜像网站。npm install -g cnpm --registry=https://registry....

2020-04-19 16:13:27 209

原创 VUE项目跑起来

1.先安装node.js 安装官网最新的即可 版本应该要大于6.0版本nodejs的官网:https://nodejs.org/en/2.安装git Git的官网:https://git-scm.com/downloads3.安装成功后,查看PC 命令行工具,敲击 node -v 和git --version 指令,能看到相应的版本信息,说明环境变量都已经配置成功。4.然后使用no...

2020-04-10 22:40:03 1725

原创 RabbitMQ使用教程

上一节RabbitMQ下载和安装结束输入网站:http://localhost:15672即可访问采用java代码创建一个生产者和消费者import java.io.IOException;import java.util.concurrent.TimeoutException;import com.rabbitmq.client.Channel;import com.rab...

2019-09-26 11:34:43 548

原创 RabbitMQ下载与安装

1、介绍 RabbitMQ是一个开元的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于 AMQP协议的。1.1特点目前大多数互联网都在使用RabbitMQRabbitMQ底层采用Erlang语言进行编写开源、性能优秀,稳定与SpringAMQP完美的整合、API丰富集...

2019-09-25 16:10:24 877

原创 支付宝沙箱环境——订单关闭

@Bean public AlipayClient alipayClient(){ return new DefaultAlipayClient(properties.getOpen_api_domain(),// properties.getAppid(),// properties.getPrivate_k...

2019-08-05 11:23:14 1548

原创 liunx下的tomcat 报HotSpot(TM) 64-Bit Server VM warning: os::commit_memory(0x00000000c0000000, 10

这个错误标识内存不够,已经不足以启动tomcat了。方案一:治标不治本在tomcat下面\bin下的catalina.sh文件里面添加:vi 命令 vi catalina.sh 进入编辑状态,找到 # OS specific support. $var _must_ be set to either true or false. JAVA_OPTS="-server -...

2019-08-02 17:25:21 227

《信息系统项目管理师第四版.pdf》

整理信息系统项目管理师第四版ITTO,并且收集了十大知识领域用到的所有文件、工具技术,并且对没有个文件和技术都有详细的解释。每个领域的重点工具都标出来。

2023-10-18

信息系统项目管理师(高级)-第10章 项目沟通管理和干系人管理

软考高级书本内容思维脑图拆解、增加复习速度。

2023-03-19

60个项目管理甘特图表模板

精美的项目管理甘特图模板

2022-11-14

项目管理《七大管理工具.pdf》

1、PDCA 2、6W2H

2022-11-14

PMP思维脑图ITTO.rar

采用MindMaster整理的思维脑图ITTO,有详细的解释说明。对于考PMP人员来说,更加全面清楚的理解ITTO过程。

2019-12-01

EncryptionUtil.java

能够实现公钥加密私钥解密,私钥加密公钥解密,生成公钥私钥文件

2019-07-25

ckeditor整合webupload插件+后台接口代码

用webupload插件,自定义ckeditor按钮控件,实现文件上传功能,包括后台接口ashx文件。

2019-03-28

离线版flash插件

在安全部门,没有网的情况下,下载flash插件,为了解决webupload兼容ie8浏览器的实现多文件上传功能,功能已经实现,亲测可用。

2019-03-28

Java编程思想第四版完整中文高清版(免费).pdf

本书在设计时认真考虑了人们学习 Java 语言的方式。在我授课时,学生们的反映有效地帮助了我认识哪些部 分是比较困难的,需特别加以留意。我也曾经一次讲述了太多的问题,但得到的教训是:假如包括了大量新 特性,就需要对它们全部作出解释,而这特别容易加深学生们的混淆。因此,我进行了大量努力,使这本书 一次尽可能地少涉及一些问题。 所以,我在书中的目标是让每一章都讲述一种语言特性,或者只讲述少数几个相互关联的特性。这样一来, 读者在转向下一主题时,就能更容易地消化前面学到的知识。 下面列出对本书各章的一个简要说明,它们与我实际进行的课堂教学是对应的。 (1) 第1 章:对象入门 这一章是对面向对象的程序设计(OOP)的一个综述,其中包括对“什么是对象”之类的基本问题的回答,并 讲述了接口与实现、抽象与封装、消息与函数、继承与合成以及非常重要的多形性的概念。这一章会向大家 提出一些对象创建的基本问题,比如构建器、对象存在于何处、创建好后把它们置于什么地方以及魔术般的 垃圾收集器(能够清除不再需要的对象)。要介绍的另一些问题还包括通过违例实现的错误控制机制、反应 灵敏的用户界面的多线程处理以及连网和因特网等等。大家也会从中了解到是什么使得Java 如此特别,它为 什么取得了这么大的成功,以及与面向对象的分析与设计有关的问题。 (2) 第2 章:一切都是对象 本章将大家带到可以着手写自己的第一个 Java 程序的地方,所以必须对一些基本概念作出解释,其中包括对 象“句柄”的概念;怎样创建一个对象;对基本数据类型和数组的一个介绍;作用域以及垃圾收集器清除对 象的方式;如何将 Java 中的所有东西都归为一种新数据类型(类),以及如何创建自己的类;函数、自变量 以及返回值;名字的可见度以及使用来自其他库的组件;static关键字;注释和嵌入文档等等。 (3) 第3 章:控制程序流程 本章开始介绍起源于C 和C++,由Java 继承的所有运算符。除此以外,还要学习运算符一些不易使人注意的 问题,以及涉及造型、升迁以及优先次序的问题。随后要讲述的是基本的流程控制以及选择运算,这些是几 10 乎所有程序设计语言都具有的特性:用if-else 实现选择;用 for和while 实现循环;用 break和 continue 以及Java 的标签式break 和contiune(它们被认为是Java 中“不见的 gogo”)退出循环;以及用 switch 实现另一种形式的选择。尽管这些与C 和C++中见到的有一定的共通性,但多少存在一些区别。除此以外, 所有示例都是完整的Java 示例,能使大家很快地熟悉Java 的外观。 (4) 第4 章:初始化和清除 本章开始介绍构建器,它的作用是担保初始化的正确实现。对构建器的定义要涉及函数过载的概念(因为可 能同时有几个构建器)。随后要讨论的是清除过程,它并非肯定如想象的那么简单。用完一个对象后,通常 可以不必管它,垃圾收集器会自动介入,释放由它占据的内存。这里详细探讨了垃圾收集器以及它的一些特 点。在这一章的最后,我们将更贴近地观察初始化过程:自动成员初始化、指定成员初始化、初始化的顺 序、static(静态)初始化以及数组初始化等等。 (5) 第5 章:隐藏实现过程 本章要探讨将代码封装到一起的方式,以及在库的其他部分隐藏时,为什么仍有一部分处于暴露状态。首先 要讨论的是 package和 import关键字,它们的作用是进行文件级的封装(打包)操作,并允许我们构建由类 构成的库(类库)。此时也会谈到目录路径和文件名的问题。本章剩下的部分将讨论 public,private以及 protected 三个关键字、“友好”访问的概念以及各种场合下不同访问控制级的意义。 (6) 第6 章:类再生 继承的概念是几乎所有 OOP语言中都占有重要的地位。它是对现有类加以利用,并为其添加新功能的一种有 效途径(同时可以修改它,这是第 7章的主题)。通过继承来重复使用原有的代码时(再生),一般需要保 持“基础类”不变,只是将这儿或那儿的东西串联起来,以达到预期的效果。然而,继承并不是在现有类基 础上制造新类的唯一手段。通过“合成”,亦可将一个对象嵌入新类。在这一章中,大家将学习在Java 中重 复使用代码的这两种方法,以及具体如何运用。 (7) 第7 章:多形性 若由你自己来干,可能要花9个月的时间才能发现和理解多形性的问题,这一特性实际是 OOP一个重要的基 础。通过一些小的、简单的例子,读者可知道如何通过继承来创建一系列类型,并通过它们共有的基础类对 那个系列中的对象进行操作。通过 Java 的多形性概念,同一系列中的所有对象都具有了共通性。这意味着我 们编写的代码不必再依赖特定的类型信息。这使程序更易扩展,包容力也更强。由此,程序的构建和代码的 维护可以变得更方便,付出的代价也会更低。此外,Java 还通过“接口”提供了设置再生关系的第三种途 径。这儿所谓的“接口”是对对象物理“接口”一种纯粹的抽象。一旦理解了多形性的概念,接口的含义就 很容易解释了。本章也向大家介绍了Java 1.1 的“内部类”。 (8) 第8 章:对象的容纳 对一个非常简单的程序来说,它可能只拥有一个固定数量的对象,而且对象的“生存时间”或者“存在时 间”是已知的。但是通常,我们的程序会在不定的时间创建新对象,只有在程序运行时才可了解到它们的详 情。此外,除非进入运行期,否则无法知道所需对象的数量,甚至无法得知它们确切的类型。为解决这个常 见的程序设计问题,我们需要拥有一种能力,可在任何时间、任何地点创建任何数量的对象。本章的宗旨便 是探讨在使用对象的同时用来容纳它们的一些 Java 工具:从简单的数组到复杂的集合(数据结构),如 Vector和 Hashtable 等。最后,我们还会深入讨论新型和改进过的 Java 1.2 集合库。 (9) 第9 章:违例差错控制 Java 最基本的设计宗旨之一便是组织错误的代码不会真的运行起来。编译器会尽可能捕获问题。但某些情况 下,除非进入运行期,否则问题是不会被发现的。这些问题要么属于编程错误,要么则是一些自然的出错状 况,它们只有在作为程序正常运行的一部分时才会成立。Java 为此提供了“违例控制”机制,用于控制程序 运行时产生的一切问题。这一章将解释try、catch、throw、throws以及finally 等关键字在 Java 中的工作 原理。并讲述什么时候应当“掷”出违例,以及在捕获到违例后该采取什么操作。此外,大家还会学习 Java 的一些标准违例,如何构建自己的违例,违例发生在构建器中怎么办,以及违例控制器如何定位等等。 (10) 第10 章:Java IO系统 理论上,我们可将任何程序分割为三部分:输入、处理和输出。这意味着 IO(输入/输出)是所有程序最为 11 关键的部分。在这一章中,大家将学习Java 为此提供的各种类,如何用它们读写文件、内存块以及控制台 等。“老”IO和 Java 1.1 的“新”IO 将得到着重强调。除此之外,本节还要探讨如何获取一个对象、对其 进行“流式”加工(使其能置入磁盘或通过网络传送)以及重新构建它等等。这些操作在Java 的1.1 版中都 可以自动完成。另外,我们也要讨论Java 1.1 的压缩库,它将用在 Java 的归档文件格式中(JAR)。 (11) 第11 章:运行期类型鉴定 若只有指向基础类的一个句柄,Java 的运行期类型标鉴定(RTTI)使我们能获知一个对象的准确类型是什 么。一般情况下,我们需要有意忽略一个对象的准确类型,让 Java 的动态绑定机制(多形性)为那一类型实 现正确的行为。但在某些场合下,对于只有一个基础句柄的对象,我们仍然特别有必要了解它的准确类型是 什么。拥有这个资料后,通常可以更有效地执行一次特殊情况下的操作。本章将解释 RTTI 的用途、如何使用 以及在适当的时候如何放弃它。此外,Java 1.1 的“反射”特性也会在这里得到介绍。 (12) 第12 章:传递和返回对象 由于我们在 Java 中同对象沟通的唯一途径是“句柄”,所以将对象传递到一个函数里以及从那个函数返回一 个对象的概念就显得非常有趣了。本章将解释在函数中进出时,什么才是为了管理对象需要了解的。同时也 会讲述 String(字串)类的概念,它用一种不同的方式解决了同样的问题。 (13) 第13 章:创建窗口和程序片 Java 配套提供了“抽象 Windows 工具包”(AWT)。这实际是一系列类的集合,能以一种可移植的形式解决 视窗操纵问题。这些窗口化程序既可以程序片的形式出现,亦可作为独立的应用程序使用。本章将向大家介 绍AWT 以及网上程序片的创建过程。我们也会探讨AWT的优缺点以及Java 1.1 在GUI方面的一些改进。同 时,重要的“Java Beans”技术也会在这里得到强调。Java Beans 是创建“快速应用开发”(RAD)程序构 造工具的重要基础。我们最后介绍的是Java 1.2 的“Swing”库——它使Java 的UI组件得到了显著的改 善。 (14) 第14 章:多线程 Java 提供了一套内建的机制,可提供对多个并发子任务的支持,我们称其为“线程”。这线程均在单一的程 序内运行。除非机器安装了多个处理器,否则这就是多个子任务的唯一运行方式。尽管还有别的许多重要用 途,但在打算创建一个反应灵敏的用户界面时,多线程的运用显得尤为重要。举个例子来说,在采用了多线 程技术后,尽管当时还有别的任务在执行,但用户仍然可以毫无阻碍地按下一个按钮,或者键入一些文字。 本章将对Java 的多线程处理机制进行探讨,并介绍相关的语法。 (15) 第15 章 网络编程 开始编写网络应用时,就会发现所有Java 特性和库仿佛早已串联到了一起。本章将探讨如何通过因特网通 信,以及Java 用以辅助此类编程的一些类。此外,这里也展示了如何创建一个 Java 程序片,令其同一个 “通用网关接口”(CGI)程序通信;揭示了如何用C++编写CGI程序;也讲述了与 Java 1.1 的“Java 数据 库连接”(JDBC)和“远程方法调用”(RMI)有关的问题。 (16) 第16 章 设计范式 本章将讨论非常重要、但同时也是非传统的“范式”程序设计概念。大家会学习设计进展过程的一个例子。 首先是最初的方案,然后经历各种程序逻辑,将方案不断改革为更恰当的设计。通过整个过程的学习,大家 可体会到使设计思想逐渐变得清晰起来的一种途径。 (17) 第17 章 项目 本章包括了一系列项目,它们要么以本书前面讲述的内容为基础,要么对以前各章进行了一番扩展。这些项 目显然是书中最复杂的,它们有效演示了新技术和类库的应用。 有些主题似乎不太适合放到本书的核心位置,但我发现有必要在教学时讨论它们,这些主题都放入了本书的 附录。 (18) 附录A:使用非Java 代码 对一个完全能够移植的 Java 程序,它肯定存在一些严重的缺陷:速度太慢,而且不能访问与具体平台有关的 服务。若事先知道程序要在什么平台上使用,就可考虑将一些操作变成“固有方法”,从而显著加快执行速 12 度。这些“固有方法”实际是一些特殊的函数,以另一种程序设计语言写成(目前仅支持C/C++)。Java 还 可通过另一些途径提供对非Java 代码的支持,其中包括 CORBA。本附录将详细介绍这些特性,以便大家能创 建一些简单的例子,同非Java 代码打交道。 (19) 附录B:对比 C++和Java 对一个 C++程序员,他应该已经掌握了面向对象程序设计的基本概念,而且Java 语法对他来说无疑是非常眼 熟的。这一点是明显的,因为 Java 本身就是从 C++衍生而来。但是,C++和Java 之间的确存在一些显著的差 异。这些差异意味着Java 在 C++基础上作出的重大改进。一旦理解了这些差异,就能理解为什么说Java 是 一种杰出的语言。这一附录便是为这个目的设立的,它讲述了使Java 与 C++明显有别的一些重要特性。 (20) 附录C:Java 编程规则 本附录提供了大量建议,帮助大家进行低级程序设计和代码编写。 (21) 附录D:性能 通过这个附录的学习,大家可发现自己Java 程序中存在的瓶颈,并可有效地改善执行速度。 (22) 附录E:关于垃圾收集的一些话 这个附录讲述了用于实现垃圾收集的操作和方法。 (23) 附录F:推荐读物 列出我感觉特别有用的一系列 Java 参考书。

2017-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除