自定义博客皮肤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资料分享

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

原创 单片机开发之曼切斯特编码

说明:以下代码是博主花费一周从0-1的研究,目前已经相当稳定的可以使用在单片机与单片机之间进行通信了。希望对大家有所帮助。

2025-03-22 14:34:07 413

原创 C语言,记录一次局部变量被意外修改的问题

最终想到了,如果在定义一个变量,后面代码不使用,或者仅仅只是用来赋值,不用来计算啥的。就会导致编译器会改变该变量缓冲值。后面直接使用也会出问题。

2025-03-15 09:39:17 1147

原创 锤头线和倒锤头线

是指一根没有上影线或上影线很短,而下影线很长,实体却很小的K线。其K线实体可以是阴线或是阳线,类似于T字。(1)在大幅下跌之后出现,是看涨信号,可以参考买入(2) 在大幅上涨之后出现,是看跌信号,可以参考卖出(3)在上涨或下跌途中出现,参考意义相对较小。

2025-03-13 23:08:32 985

原创 市盈率研究

市盈率研究:市盈率简称PE,是指在一个考察期(通常为12个月的时间)内,股票价格与每股收益率的比率。市盈率是衡量股价高低和企业盈利能力的一个重要指标。由于市盈率把股价和企业盈利能力结合起来,其水平高低更真实地反映了股票价格的高低,投资者在股票市场中,一般需要关注大盘平均市盈率 行业平均市盈率 个股市盈率。

2025-03-12 22:24:21 375

原创 股票-K线

一根K线记录的是某股票一个周期的价格变动情况,其周期可以分为月k线、周k线、日k线、小时线等等。单根K线的构成要素,通常有以下几部分:开盘价、收盘价、最高价、最低价、实体、上影线、下影线。

2025-03-12 22:23:46 589

原创 股票交易规则(二)

目前市面上的炒股软件有几十种,其中投资者使用最多的超过软件有,通达信 、大智慧、同花顺、东方财富通。

2025-03-10 23:10:07 586

原创 股票交易规则(一)

在以上过程中,通过一次次配对,成交的价格范围逐渐缩小,而成交的数量逐渐增大。知道最后确定一个具体的成交价格,并使成交量达到最大——3.65。在最后一笔配对中,如果买入价和卖出价不相等,其成交价就取两者的平均。在以上 的集合竞价中,三笔委托共成交了12手,成交价格为3.65元按照规定,所有这次成交的委托无论是买入还是卖出 ,其成交价都定为3.65元。股票G、开盘价:3.65元成交量:12手。交易所发布的股票G的开盘价就为3.65元,成交量12手。

2025-03-10 21:13:46 795

原创 一张图建立完整的产品知识架构

商业价值<-用户价值<-用户需求<-产品服务。

2025-03-06 07:30:00 914

原创 51单片机-DA数模转换(PWM输出)

T型电阻网络D/A转换器:由图可知,运放两个输入端为 “虚地”,所以电位都约为0,所以无论开关在0或者1,最后两个AR都是并联得R,和电阻R串联又成为2R,以此类推,那么到最前端,相当于两个2R的电阻并联,可知电流I=Vref/R。I7=I/2,I6=1/2*1/2,由此追溯到I0=1/2^8,那么V0只与Vref有关,即V0=Vref*Z/256.(z输入的数字量)

2025-02-25 10:30:00 246

原创 51单片机-AD模数转换

1、分辨率ADC的分辨率是指输出数据量变化一个相邻数码所需输入模拟电压的变化量、常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率位满刻度的1/(2^12)。一个10v满刻度的12位ADC能分辨输入电压变化最小值是10VX1/(2/12)=2.4mV。2、量化误差ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需要很大甚至无穷大。

2025-02-25 08:00:00 851

原创 51单片机-DS1302时钟编码

【代码】51单片机-DS1302时钟编码。

2025-02-24 14:30:17 109

原创 51单片机-DS1302时钟

BCD码是通过4位二进制码来表示1位十进制中的0-9这10个数码。二进制码转换为BCD码的方式为:4位二进制码大于1001时,加6。

2025-02-24 12:48:21 798

原创 51单片机-AT24CXX存储器工作原理

CAT24WC01/02/04/08/16是一个1K/2K/4K/8K/16K位串行CMOS,EEPROM内部含有128/256/512/1024/2048个8位字节CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CAT24WC01有一个8字节页写缓冲器CAT24WC02/04/08/16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作有一个专门的写保护功能。总线时序。

2025-02-24 09:55:17 453

原创 51单片机-EEPROM(IIC总线)

IIC总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。IIC总线只有两根双向信号线。一根是数据线SDA,另一跟是时钟线SCL。IIC总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与” 关系。每个接到IIC总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以使由主机发送数据到其它器件,这时主机即为发送器。

2025-02-23 06:45:00 1040

原创 51单片机-串口通信编程

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制盒中断控制。串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器(中断优先级通常不设置))

2025-02-22 11:44:27 793

原创 51单片机-80C51的串行口

当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据转入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据位11位。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。在方式1时,如果SM2=1,则只有接收到有效停止位时,RI才置1。

2025-02-22 11:07:40 828

原创 51单片机-串口通信的原理

接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一个字符内的各位之间的距离均为“位间隔”的整数倍。

2025-02-21 04:15:00 926

原创 51单片机-定时器中断

【代码】51单片机-定时器中断。

2025-02-20 21:44:00 369

原创 51单片机-定时器和计数器

当GATE=0时,经反相后或门输出为1,此时仅由TR0控制与门的开启,与门输出1时,控制开关接通,计数开始;它随着计数器的输入脉冲进行自行加1,也就是没来一个脉冲,计数器就自动加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动定时/计数器工作。方式0位12位计数,由TL0的低5位(高3位未用)和TH0的8位组成。

2025-02-20 04:15:00 1411

原创 51单片机-外部中断

P3.2\P3.3为外部中断接口,通过控制P3.2口按键按下实现LED灯反转点亮。设置外部中断的触发方式。

2025-02-19 18:24:08 182

原创 51单片机之中断系统

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(CPU暂时中断当前的工作,转去处理事件B(待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(),这一过程称为。引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统。

2025-02-19 04:30:00 566

原创 51单片机-8X8LED点阵

‌‌‌174HC595的工作原理基于串行输入并行输出的转换机制。它通过三根线输入串行数据,并通过八根线输出并行数据。具体工作过程如下:‌‌:串行数据通过(第14脚)输入,每当(第11脚)引脚接收到一个时钟脉冲的上升沿时,数据会移入移位寄存器。这个过程会在每个时钟脉冲的上升沿发生,直到8位数据全部输入。‌‌:当(第12脚)引脚接收到一个时钟脉冲的上升沿时,移位寄存器中的数据会被锁存到输出寄存器中,更新输出引脚的状态。这个过程同样在时钟脉冲的上升沿发生。‌(第13脚)引脚控制输出是否有效。

2025-02-18 21:56:00 374

原创 51单片机-按键

轻触开关是一种电子开关,使用时,轻轻按开关按钮就可使开关接通,当松开手时,开关断开。

2025-02-17 21:06:50 1435

原创 51单片机-数码管

具体来说,当输入的二进制代码(A0、A1和A2)变化时,74HC138会选择一个输出引脚使其电平变为低电平,而其他输出引脚保持高电平‌12。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。3、LE为锁存端,当LE为高电平的时候,Q0~Q7都跟D0~D7状态一样,当LE为低电平的时候,Q0~Q7都锁存数据,无论D0~D7怎么变化,Q0~Q7都保持锁存之前的那个状态。1. OE为使能端,当他为低电平的时候,锁存器开始工作。

2025-02-15 18:16:44 1177

原创 51单片机-点亮LED和蜂鸣器

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003是大电流驱动陈列,多用于单片机、只能仪表、PLC、数字量输出卡等控制电路中。可直接驱动蜂鸣器、继电器等负载。void delay(u16 i) // i等于1大约10uswhile(i--);//取反,高低电平不断变化,产生脉冲delay(10);// 周期200us。

2025-02-15 16:01:09 959

原创 51单片机-C语言扩展及最小系统

sfr:特殊功能寄存器声明sfr:变量名=地址值;

2025-02-14 11:54:59 471

原创 51单片机介绍

将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配到一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。

2025-02-13 17:24:31 1664

原创 VUE值Teleport与Suspense

‌。通过使用app.directive方法,开发者可以定义一个全局自定义指令,该指令可以在整个应用中重复使用,从而简化DOM操作和提升代码复用性。

2025-02-07 00:15:00 363

原创 VUE之API保护数据

通过使用shallowRef()和shallowReactive()来绕开深度响应。浅层式API创建的状态只在其顶层是响应式的,对所有深层的对象不会做任何处理,避免了对每一个内部属性做响应式所带来的性能成本,这使得属性的访问变得更快,可提升性能。2、readonly与shallowReadonly保护数据。

2025-02-06 15:26:07 695

原创 VUE之插槽

【代码】VUE之插槽。

2025-02-06 11:21:10 268

原创 VUE之组件通信(三)

refs 包含所有子组件的实例对象console.log(obj.a) console.log(obj.b) console.log(obj.c)//自动解包。

2025-02-06 09:28:50 232

原创 VUE之组件通信(二)

v-model的底层原理:是:value值和@input事件的结合$event到底是啥?啥时候能.target。

2025-02-05 19:01:24 308

原创 VUE之组件通信(一)

测试

2025-01-31 16:12:05 386

原创 vue之pinia组件的使用

/使用toRefs会导致countSotre下的所有属性和方法都变成响应式,代价太大。// storeToRefs 只会关注store中的数据,不会关注里面的方法。

2025-01-31 14:40:16 343

原创 VUE之路由Props、replace、编程式路由导航、重定向

/第一种写法:将路由收到的所有params参数作为props传给路由组件。1)作用:控制路由跳转时操作浏览器历史记录的模式。3)第三种写法,对象写法,只能写死,不适用。脱离<RouterLink>实现跳转。1、满足某些条件才跳转。

2025-01-22 23:30:48 822

原创 VUE之参数传递

【代码】VUE之参数传递。

2025-01-21 22:47:32 295

原创 VUE之Router使用及工作模式

1)路由组件通常放在pages 或 views文件夹,一般组件通常放在components文件夹。2)通过点击导航,视觉效果上"消失"了的路由组件,默认是被"卸载"掉的,需要的时候再去挂载。

2025-01-20 22:13:58 528

原创 VUE之生命周期

生命周期整体分为四个阶段,分别是:创建、挂载、更新、销毁,每个阶段都有两个钩子,一前一后。

2025-01-15 22:37:44 1012

原创 Python之装饰器

就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数。装饰器的功能特点:1)不修改已有函数的源代码2)不修改已有函数的调用方式3)给已有函数增加额外的功能。

2025-01-11 19:29:13 355

原创 闭包的使用

需求:根据配置信息使用闭包实现不同人的对话信息,例如对话:张三:到北京了吗?李四:已经到了,方心吧。

2025-01-11 16:05:43 195

UartAssist串口工具

UartAssist串口工具

2025-03-25

MS51单片机开发源码,主要包括以下功能,1、MS51和FR600人脸模组进行通信,完成人脸识别功能,2、MS51两个芯片之间的曼切斯特编码通信、3、FLASH内存的管理,密码的存储、4、MS51单片

MS51单片机开发源码,主要包括以下功能, 1、MS51和FR600人脸模组进行通信,完成人脸识别功能, 2、MS51两个芯片之间的曼切斯特编码通信、 3、FLASH内存的管理,密码的存储、 4、MS51单片6*2的按键扫描响应, 5、蜂鸣器PWM的驱动、6各种等的点亮等等。

2025-03-22

新唐的MS51系统单片机文档

新唐的MS51系统单片机文档

2025-03-01

c语言结构体对齐变量原理.vsdx

c语言结构体对齐变量原理.vsdx

2024-11-15

TCP网络编程流程.vsdx

TCP网络编程流程.vsdx

2024-11-15

云平台VPC.vsdx

云平台VPC.vsdx

2024-11-15

C语言文件属性结构st-mode,标志位

C语言文件属性结构st-mode,标志位

2024-11-03

buff缓冲区绘图,visio文件

buff缓冲区绘图,visio文件

2024-11-01

Linux的文件权限详解图

Linux的文件权限详解图

2024-11-01

I/O流系统交互流程图

I/O流系统交互流程图

2024-11-01

java虚拟机分代回收图

java虚拟机分代回收图

2024-10-29

可达性分析算法visio软件画图

可达性分析算法visio软件画图

2024-10-28

ThreadLocal原理分析图,visio软件打开

ThreadLocal原理分析图,visio软件打开

2024-10-28

简历通用模版,可以自行调整格式

简历通用模版,可以自行调整格式

2024-10-26

线程锁的状态流转流程图

线程锁的状态流转流程图

2024-10-26

Java虚拟机内存模型

Java虚拟机内存模型

2024-10-26

java虚拟机对象创建流程

java虚拟机对象创建流程

2024-10-26

-with-ucrt-dll-dir指代VS Code安装Windows10 SDK产生的文件夹目录

bash ./configure --with-ucrt-dll-dir="/cygdrive/c/Program Files (x86)/Windows Kits/10/Redist/10.0.19041.0/ucrt/DLLs/x64" --with-boot-jdk=/cygdrive/f/jdk-11 --with-target-bits=64 --disable-warnings-as-errors 说明: 1. --with-ucrt-dll-dir指代VS Code安装Windows10 SDK产生的文件夹目录。在c/Program Files (x86)/Windows Kits下面,其中10代码Win10 SDK,10.0.19041.0代表SKD版本号,因为我在上篇文章安装的SDK版本为10.0.17763.0,所以此处为10.0.17763.0。 2.--with-boot-jdk指代OpenJDK11目录。 3.--with-target-bits=64指代我要编译64位OpenJDK12,默认64,可删除该参数。

2024-10-10

vs2019 professional

vs2019 professional

2024-10-09

《信息系统项目管理师第四版.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关注的人

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