收藏 分销(赏)

Java编程那些事儿.pdf

上传人:二*** 文档编号:4479453 上传时间:2024-09-24 格式:PDF 页数:300 大小:6.30MB
下载 相关 举报
Java编程那些事儿.pdf_第1页
第1页 / 共300页
亲,该文档总共300页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Java 编程那些事儿 1序言Java 编程那些事儿 1序言序言序言从大学毕业到现在,马上就六年了,这六年中从事过开发,也从事培训工作,相比而言,参加培训工作的时间要长一些。由于工作的特点,遇到了各种各样的学生,在学习编程时遇到了一系列的问题,也有很多迷茫的时候,希望通过编写本书,把相关的问题进行一下总结,把自己的经验和大家进行分享。当然由于一些知识也只是个人见解,也希望大家积极指正,帮助编程的初学者,以及程序开发人员深刻理解基础的概念,更好的学习编程和从事开发工作。编写一本书,总要有个名字吧,姑且把书名叫做 Java编程那些事儿吧,主要是用通俗的语言,解释清楚以下几个内容:1、程序设计是什么

2、?2、Java 语言相关基础语法及应用3、如何建立基础的程序逻辑以及其它编程和Java语言的相关问题,本书的编写打算以在线连载的形式进行,估计编写的周期会比较长,希望能为软件开发行业尽一点自己的微薄之力吧。陈跃峰陈跃峰2008-4-22008-4-Java 编程那些事儿 2程序设计是什么?Java 编程那些事儿 2程序设计是什么?作者:陈跃峰出自:http:/ 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。怎么做就是如何实现程序的功能,在编程中,称

3、为逻辑,其实就是实现的步骤。3.如何描述3.如何描述就是把怎么做用程序语言的格式描述出来。所以,对于有经验的程序设计人员来说,学习新的程序设计语言的速度会比较快,就是因为第1和第2个问题基本解决了,只需要学习第3个问题即可了。对于“做什么”的问题,可能初学者觉得会比较简单,其实在大型项目开发,例如 ERP,企业都不能很详细的说明需要实现具体的功能,这就需要有专门的人员去发掘具体的功能,这个用程序的术语叫做需求分析。举个例子吧,例如某个人要找个女朋友,如果你大概去问他,他会说,找个中等的就可以了,但是这个还不是具体的需求,你可能需要问一下,要求女朋友的年龄是多少,身高是多少等等具体的问题。所以说

4、,搞清楚“做什么”也不是简单的事情,需要专门的人员从事该工作。对于“怎么做”的问题,是初学者,甚至很有经验的开发人员都头疼的事情,这个称作程序逻辑。因为实际的功能描述和程序设计语言之间不能直接转换,就像作家需要组织自己的思路和语言一样,程序设计人员也需要进行转换,而且现实世界和程序世界之间存在一定的差异,所以对于初学者来说,这是一个非常痛苦的过程,也是开始学习时最大的障碍。由于计算机自身的特点,“怎么做”的问题其实就是数据和操作的问题,某个顶级大师曾经说过:“程序=数据结构+算法”,把这个问题描述的简单准确。那么“怎么做”的问题,就变成了持有那些数据,以及如何操作这些数据的问题。先简单的介绍这

5、么多,大家仔细体会吧。对于“如何描述”的问题,是学习程序最容易,也是最枯燥的问题。其实就是学“透”一套格式,并且深刻理解语言的特点。学程序语言,就像学汉语差不多,需要学习字怎么写,学习语法结构等,只是不需要像汉语这样学那么多年,但是学好一个语言还是要耐得住寂寞。语法的学习需要细致,只有深刻领悟了语法的格式才能够熟练使用该语言。前面介绍的是程序的概念,那么为什么叫程序设计,其实这个设计和现实中的设计一样。例如你自己盖个小棚子,只需要简单的规划即可,也就是编程中的小程序,而如果需要建造一栋大楼,肯定需要进行设计吧,程序也是这样。所以把编程叫做程序设计了。Java 编程那些事儿 3你适合学习程序设计

6、吗?Java 编程那些事儿 3你适合学习程序设计吗?作者:陈跃峰作者:陈跃峰出自:http:/ t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。在上一个内容中已经讲解了程序设计是什么的问题,程序设计语言只是程序设计中最后的环节,也是比较简单的环节,只学会程序语言,离实际工作的距离还很遥远,而更多的程序基础其实是在语言之外的东西。就像会写汉字,熟悉汉语语法的人一定能够成为作家吗?程序设计的基础不外乎以下几个方面:程序设计的基础不外乎以下几个方面:1、一定的英文阅读能力1、一定的英

7、文阅读能力因为程序设计接触的很多文档都是以英文的形式提供的,一个阅读英文很困难的人,可以学会程序设计,但是不会有很深的造诣。就像一个看不懂字典的人,能学好汉语吗?2、较强的数学基础2、较强的数学基础计算机最核心的功能就是计算,各种程序逻辑都会被转成一定格式的运算,运算需要什么知识呢,肯定是数学了。就像一个数学很差的人能做好会计吗?在程序设计中,需要深刻理解数学,用数学来解决你遇到的各种实际问题,类似于做数学应用题吧。这个基础学要长期的积累。3、较强的逻辑思维能力3、较强的逻辑思维能力逻辑思维可能每个程序设计人员都很需要,那么逻辑思维是什么呢?其实就是把一个事情分解成一系列的步骤在有限的时间内做

8、完,这个也是程序设计过程中最灵活的地方。例如你要完成“去罗马”这件事情,那么逻辑有多少种呢?借用一句俗话“条条大道通罗马”来解释这个问题吧,所以程序设计是典型的脑力劳动。可能有些人觉得程序设计就是体力活,这也不错,为什么呢,还是借助一个例子来说明吧,买油翁的故事大家都知道吧,如果你反复做一件相同的事情,可能这个事情对外人来说是脑力劳动,对于不断重复做的人来说,也就只是“唯手熟尔”的体力活罢了。可能很多初学者对于逻辑思维还不是很清楚,那么举一个比较老套的例子吧,例如实现“把一个大象放到冰箱里”这个事情,逻辑是怎样呢?步骤如下:a、打开冰箱b、把大象推到冰箱里c、关上冰箱的门当然这只是一个很简单的

9、逻辑。在实际的程序设计中还需要严谨的逻辑思维,保证程序可以正常运行。那么逻辑严谨又是什么呢?还以上面的例子为例,严谨的逻辑思维应该做如下事情:a、冰箱打不开怎么办?b、大象不进冰箱怎么办?c、关不上冰箱门怎么办?就像一个运动员来说,良好的体质是基础,同样,对于程序员来说,良好的基础可能帮助你达到更高的高度。当然基础不可能每个人都具备,但是数学基础和逻辑思维能力是必须的。那你的数学基础如何呢,出个简单的数学题目测试一下你的数学基础吧。已知一组从 1 开始的数字,第一行从左到右依次是 1 到 10,第二行从左到右依次是 11 到 20,按照每行 10 个的顺序依次类推,则任意整数 n(n0)位于该

10、组数字的第几行第几列呢?更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。所以,如何你觉得以上的内容你欠缺很多,可能你就不适合做程序设计这个职业,趁早选择其他的职业吧,这样对你的发展会更有利。如果你觉得以上的内容你大部分都符合,那么你可以尝试学习一下后续的内容如何学好程序设计。希望大家积极讨论,不足之处请大家积极指正。Java 编程那些事儿 4如何学好程序设计?Java 编程那些事儿 4如何学好程序设计?作者:陈跃峰作者:陈跃峰出自:http:/ 程序

11、设计语言l 程序设计语言语言是程序最终表达的方式,必须熟练。l 开发工具l 开发工具开发工具相当于练武的武器,拿个趁手的武器可以发挥你的潜能l 开发技术l 开发技术开发技术就是实现好的功能,可以直接拿来用的结构,类似于武功秘籍,但是一定要熟练到可以灵活使用啊。l 逻辑思维l 逻辑思维如何实现程序的要求功能。l 设计模式l 设计模式设计模式就是设计的技巧,类似于写作文时的倒序、插叙什么的。其实学好程序的方法很简单“勤学苦练”。多读代码,多写代码,是学好程序的基本方式。需要把各种东西熟练到可以灵活使用的程度,由于学习的时 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i

12、 k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。间一般都比较紧,不能像汉语那样炼成习惯成自然的方式,所以在开始学习的初期伴随着大量的记忆,在记忆的基础上进行使用,仔细记忆并体会每个细节,把合适的内容用在合适的地方。当然,学习最好的开始是模仿,但是由于程序很灵活,所以一定要在模仿的基础上理解,理解了以后进行创新,把东西理解了以后,这些内容就变成了自己的,即使忘记了,也很容易的捡起来,而不要囫囵吞枣式的学习,那样无法做到灵活的解决问题。当学会了程序设计以后,就可以成为大师级的人物,像武侠小说里的那些大侠一样,做到“意由心生”、“

13、无招胜有招”了,祝福每个初学者以及从事开发的人员,能够早日进入到该境界。PS:关于英文阅读能力的锻炼,坚持读1-2本英文原版书籍(网上很容易下到很多原版电子书),就可以获得比较大的提升。Java 编程那些事儿 5程序设计介绍小结Java 编程那些事儿 5程序设计介绍小结作者:陈跃峰作者:陈跃峰出自:http:/ Java 语言,并培养你的逻辑思维。程序设计的道路不是一帆风顺的,其中布满艰辛,所以如果你打算学习程序设计,那么要做好长期吃苦的准备,俗话说:“板凳要做十年冷”,要有这样的耐心和恒心才能把程序设计学会、学好。然如果基础不好,那么还想学习程序设计课程的话,将需要付出比一般人更多的努力才可

14、以基本赶上一般人的水平,用句不恰当的话“出来混迟早要还的“,前面欠下的基础知识现在就是还的时候了。关于工作,也简单的说一下,软件开发行业需要各种层次的人才,其实水平只要达到可以独立工作,也就能找到一份工作,但是要想找到一个不错的工作,而且以后还有良好的发展,需要的就是扎实的基础以及长期的努力。后续讲解语言部分打算分成以下几大块来进行说明:1、计算机基础1、计算机基础计算机软件的基本概念、进制的相关知识、计算机内部的数据表达方式等。2、Java 语言的简介2、Java 语言的简介。注:我也不能免俗。3、Java 开发环境的安装和配置。3、Java 开发环境的安装和配置。介绍 JDK、Eclips

15、e 的安装、配置以及使用。4、Java 相关语法和程序逻辑。4、Java 相关语法和程序逻辑。以通俗的语言来介绍语法,深刻理解语法的作用和用途。可能还会进行一些变更,本人保留最终的解释权,呵呵。更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。Java 编程那些事儿 6计算机软件基本概念Java 编程那些事儿 6计算机软件基本概念作者:陈跃峰作者:陈跃峰出自:http:/ 计算机基础第一章 计算机基础本部分主要介绍计算机相关的知识,重点介绍和软件编程相

16、关的基础知识。其实对于编程来说,计算机的基础是越多越深就越好,但是受时间和精力的限制,每个人了解的其实还是很有限,下面就主要编程中常用的基础知识,遗漏的地方请大家积极指正和补充。计算机本质的结构就是将所有的内容数据化,其实软件编程也采用的是同样的逻辑,把各种需要保存的状态数字化。1.1计算机软件基本概念1.1计算机软件基本概念l 软件的概念l 软件的概念大家都知道,计算机分为硬件和软件,其实看得见摸得着的算硬件,比如硬盘、主板什么的,摸不着的就算软件了。按照专业点的说法,软件就是一组指令序列,那么如何理解他呢?举个基本的例子,比如大家到学校报名,学校会给你一个单子,一般上面会写,首先到哪里缴费

17、、然后领证件,体检什么的,反正至少也有那么 10 多条,如果把每条操作都看成指令的话,这个就是软件的本质。或者按照冯 诺伊曼的计算机体系,计算机就是接受输入,进行处理,反馈结果,其实软件也是这样,提供界面接受用户的输入,根据逻辑进行处理,把结果反馈给用户,无论是普通的软件还是游戏都是这样。l 计算机为什么是二进制的?l 计算机为什么是二进制的?众所周知,现在的计算机都是以二进制存储和运算数据的,那么为什么是二进制而不是常见的十进制呢?原因很简单,因为现在的计算机是电子计算机,内部只有两个状态,所以就依据这两个状态创建了一种新的进制形式二进制。这样极大的简化了电子计算机的结构,可以用电流的有无、

18、光线的有无以及磁性的有无等状态来实现数学上的二进制。数学上用 0 和 1 来分别代表这两个状态罢了。当然,随着科学的发展,以后计算机不再是电子计算机了,那么二进制也可能就消失了。l 计算机存储单位l 计算机存储单位既然计算机是电子计算机了,那么存储的最小单位就是一个二进制位,英语是 bit,简写成 b。一位只有 2 个值,0 或者 1。由于位的单位太小,所以就设计了另外一个概念字节,英语是 byte,简写成 B。规定1个字节是8位,即1B=8b。比如大家接触的8位机、16位机等等,更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o

19、k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。就是指 CPU 一次处理的最小的数据单位。再大点的单位就依次是KB、MB、GB 和TB了,他们之间的进制都是2 的10次方,也就是 1024,也就是 1KB=1024B,1MB=1024KB。这里简单的说一个实际问题,大家买硬盘的时候,比如 160GB,这里厂商使用的进制是 1000,而不是 1024,所以 160 个 GB 格式化以后就大概只有:(160 X 1000 X1000 X1000)/1024/1024/1024=149GBJava 编程那些事儿 7进制的概念Java 编程那些事儿 7进制的概念作者:陈

20、跃峰作者:陈跃峰出自:http:/ 进制的概念1.2 进制的概念因为不可能为每个数值都创造一个符号,所以需要用基本数字组合出复合的数值,这样就有了进制的概念。其实所有进制都是人为的创造,都是用来计数方便的。现在最常用的进制是十进制,当然其它的进制也在使用中。例如“半斤八两”这个成语,就反映了古代一斤等于十六两的概念,也就是十六进制计数方式。计算机编程中常用的进制有二进制、八进制、十进制和十六进制,十进制还是最主要的表达形式。在编程中,大家书写的数值默认为十进制。对于进制,有两个最基本的概念:基数和运算规则。l 基数l 基数基数指一种进制中组成的基本数字,也就是不能再拆分的数字。例如十进制是0-

21、9,二进制是 0 和 1,八进制是 0-7,十六进制是 0-9,A-F(大小写均可)。或者可以简单的这样记忆,假设是 n 进制的话,基数就是0,n-1的数字,基数的个数和进制值相同,十进制有十个基数,依次类推。l 运算规则l 运算规则运算规则就是进位或借位规则,这个类似于一般计算机书籍中位权的概念,例如对于十进制来说,该规则是“满十进一,借一当十”,也就是低位的数字满十了向高位进一,从高位借到的一,相当于低位上的十。其它的进制也是这样,对于二进制来说,就是“满二进一,借一当二”,八进制和十六进制也是这样。在数学上表示一个数字是几进制,通常使用如下格式:数值进制数,例如102 表示二进制数值 1

22、0。1.2.1 二进制1.2.1 二进制二进制是计算机内部数据表示的形式,所以学习计算机编程必须熟悉二进制。熟悉二进制有以下几个用途:l 更容易理解计算机的数据存储方式l 更容易理解计算机的数据存储方式 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。计算机内部的很多转换,例如数据类型之间的强转,都可以用二进制解释最终的结果的值。l 二进制的运算速度高l 二进制的运算速度高二进制的运算速度比十进制高的多。例如求 2 的 n次方,通过移位实现的效率比数

23、学方法高效。l 使用二进制数值进行数据存储以二进制的形式存储数值,一个是比较节约资源,可以使用二进制的位来存储信息,例如常见的硬件控制信息,都是二进制的形式进行提供的。如前所述,二进制包含 0 和 1 两个基数,运算规则是“满二进一,借一当二”,下面简单的介绍一下二进制的计数方式。例如十进制的 0-9 用二进制进行表达,则依次是:0,1,10,11,100,101,110,111,1000,1001说明:数值之间使用逗号进行间隔。下面是二进制的一些基本运算结果:l 加法运算0+0=00+1=11+0=11+1=10l 减法0 0=00 1=-11 0=11 1=0l 乘法0 0=00 1=01

24、 0=01 1=1l 除法0/0无意义0/1=01/0无意义1/1=1以下是一些符合的表达式:110+111=1101这些基本的运算结构在实际开发中一般不会直接用到,但是通过这些内容可以加深对于二进制概念的理解。1.2.2 二进制和十进制之间的转换1.2.2 二进制和十进制之间的转换由于计算机内部的数据是以二进制进行表达的,而十进制又是日常生 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。活中最常用的进制,所以它们之间经常需要进行转换。下面介绍一下

25、转换的方式。1.2.2.1 十进制转换为二进制1.2.2.1 十进制转换为二进制十进制整数转换为二进制有三种方法,分别是除二取余、计算器转换十进制整数转换为二进制有三种方法,分别是除二取余、计算器转换和经验法。十进制小数的转换方法最后做简单的介绍。和经验法。十进制小数的转换方法最后做简单的介绍。1.除二取余法1.除二取余法除二取余法是转换时的最基本方法,也是最通用的方法。规则为:使用十进制和2 去除,取每次得到的商和余数,用商继续和 2 相除,直到商为零为止,第一次得到的余数作为二进制的低位,最后一次得到的余数作为二进制的高位,由余数组成的数字就是转换后二进制的值。例如十进制的 13 转换为二

26、进制的计算步骤如下:商余数13/2=616/2=303/2=111/2=01则计算的最终结果就是 1101。2.计算器转换2.计算器转换Windows 操作系统中的计算器也可以很方便的实现进制之间的转换。在程序菜单中附件子菜单中打开计算器,从打开的计算器的查看菜单中,选择“科学型”,输入你要转换的十进制的数字,例如 13,然后界面上数字显示框西侧的“二进制“,则转换后的数值就直接显示在计算器中。3.经验法3.经验法对于二进制熟悉以后,那么计算十进制对应的数字可以通过一些基本的数学变换来实现,在使用经验法以前,必须熟记 2 的 0-10 次方对应的十进制的值,依次是:1,2,4,8,16,32,

27、64,128,256,512,1024则转换一些特殊的数字时可以极大的提高转换速度,例如数字 65,则可以这样转换:65=64+164 对应的二进制形式为 10000001 对应的二进制形式为 1则 65 的二进制形式为 1000001这个只适合转换一些特殊的数字,适应性没有除二取余法广泛。十进制小数的转换采用的一般方法是乘二取整法,规则为:对于小数部分先乘二,然后获得运算结果的整数部分,然后将结果中的小数部分再次乘二,直到小数部分为零为止,则把第一次得到的整数部分作为二进制小数的高位,后续的整数部分作为地位就是转换后得到的二进制小数。需要说明的是,有些十进制小数无法准确的用二进制进行表达,所

28、以转换时符合一定的精度即可,这也是为什么计算机的浮点数运算不准确的原因。例如 0.25 转换为二进制小数的步骤如下:整数部分 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。0.25 2=0.500.5 2=1.01则 0.25 转换为二进制小数为 0.01如果一个十进制数字既有整数部分,也有小数部分,则分开进行转换即可。1.2.2.2 二进制转换为十进制1.2.2.2 二进制转换为十进制二进制转换为十进制采用的方法是:数字乘位权相加法。下面先以十进

29、制为例来说明该方法,例如十进制数字345的值,5的位权是1,4的位权是10,3 的位权是 100,则有如下表达式成立:345=5 1+4 10+3 100,这就是数字乘位权相加法的原理。其实对于十进制整数的位权很有规则,从右向左第 n 位的位权是十的(n-1)方,例如个位是 10(1-1),十位是 10(2-1),依次类推。那么二进制整数的位权规律和这个一致,也就是从右向左第 n 位的位权是二的(n-1)方。例如二进制整数 1011 转换为十进制的表达式为:10112=1 20+1 21+0 22+1 23=1+2+0+8=11而对于二进制的小数,也是采用一样的方法,只是二进制小数的位权规则为

30、,小数点后第一位小数的位权是 2 的-1 次方,第二位是 2 的-2 次方,依次类推。例如二进制小数 0.1101 转换为十进制小数的表达式为0.11012=1 2-1+1 2-2+0 2-3+1 2-4=0.5+0.25+0+0.0625=0.8125同理,如果二进制包含整数和小数部分,则分开进行转换即可。1.2.3 二进制和八进制、十六进制之间的转换虽然二进制是计算机内部的数据表达形式,但是由于二进制基数太少,则导致数字比较长,为了简化数字的书写,就创建了八进制和十六进制。八进制和十六进制就是对二进制的简化,所以二进制到八进制和十六进制的转换非常简单。二进制整数转换为八进制的方法是“三位一

31、并“,也就是从右侧开始,每 3 位二进制数字转换为八进制的一位,依次类推,因为二进制的三位数字可以表达的区间是 000-111,刚好和 0-7 重合。例如:二进制的 10111 转换为 8 进制为:最后三位 111 转换为 7,前面的数字 10 转换为 2,则转换后得到的八进制数字为 27。二进制整数转换为十六进制的方法是“四位一并“,例如 10111 转换为十六进制是 0111 转换为 7,1 转换为 1,则转换后得到的十六进制数字是 17。二进制小数转换为八进制的方法也是“三位一并“,只是转换时从小数的高位开始,也就是小数的左侧开始。例如0.10111转换为八进制是101转换为 5,110

32、 转换为 6,则转换得到的八进制小数为 0.56。需要特别注意的是,小数最后如果不足三位,一定要在后续补零以后再进行转换。二进制小数转换为十六进制的方法也是“四位一并”,只是转换时从小数的高位开始。例如二进制小数0.10111转换为十六进制小数为,1011转换为b,更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。1000 转换为 8,则转换后得到的十六进制是 0.b8。如果二进制数包含整数和小数部分,则分开进行转换。Java 编程那些事儿 8计算机内

33、部的数据表达Java 编程那些事儿 8计算机内部的数据表达作者:陈跃峰作者:陈跃峰出自:http:/ 计算机内部的数据表达1.3 计算机内部的数据表达计算机内部数据表达的总原则就是:把一切内容数值化、数字化。这个也是编程时处理数据的基本方式,对于编程理解的越深入,则将越认同该原则。其实计算机也只能这样,因为计算机内部只能存储 0 和 1 两个数字,所以必须把指令、数据、图片、文本等各种各样的内容数字化成0和1进行存储、传输和显示。1.3.1 整数的表达1.3.1 整数的表达整数有正负之分,但是计算机内部只能存储 0 和 1,则计算机内部将符号数字化,用二进制码的最高位代表符号位,规定该位为0代

34、表正,1代表负。这就是符号数字化的规定。前面介绍过整数在计算机内部都是以二进制的形式保存的。但是为了计算方便,以及简化 CPU 的结构,所以在存储和运算时都采用补码的形式。前面介绍的那些直接计算出来的二进制形式,都称作整数的原码。规定正数的原码、反码和补码都是自身。而对于负数,仔细研究一下其组成格式。以 8 位机为例,也就是一个数字占计算机中的 8 位,也就是一个字节,用最高位存储符号位,其它的位存储数值。例如-8的原码是10001000,最高位的1代表负数,后续的7位代表数值。负数的反码是指符号位不变,其他的位取反,也就是 0 变 1,1 变 0,则-8 的反码是 11110111。负数的补

35、码是指在反码的数值位上加 1,运算后得到的结果,只计算数值位,不改变符号位。则-8 的补码是 11111000,该次运算中,低位向高位进行了进位。规律:补码的补码等于负数的原码。也就是对负数的补码再求补,则得到的负数的原码。熟悉整数的表达,对于后续理解数据的区间以及进行强制转换以后得到的数值很有帮助,也是进行位运算的基础。备注:小数,编程语言中称浮点数,的存储形式和整数不同。更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。1.3.2 字符的表达1.3

36、.2 字符的表达字符指计算机内部单个的符号,如标点符号、英文字母和汉字等等。因为这些字符种类各异,计算机无法直接表达,那么就采用了计算机编程中也常用的方式,对每个字符进行编号,例如规定 a 字符编号为 97,b 字符编号为 98等等。由于需要编号的字符很多,就专门规定了一系列字符和编号的对应规则,那么这些对应表就被称作字符集,常见的字符集有ASCII、GB2312、BIG5等。在计算机内部存储、运算和传输时,都只需要使用该编号即可。字符集比较完美的解决了字符的存储和传输的问题。所以字符在程序内部可以参与运算,其实参与运算的就是这个字符的编号,字符集规律是很多字符变换逻辑实现的基础。备注:字符的

37、显示则通过专门的字符显示码实现。1.3.3 总结1.3.3 总结其实计算机内部所有的东西都是以数字的形式存储的,这里只是希望通过这两种简单的结构,使大家了解将数据数字化的思想,这是编程时常用的思想之一。Java 编程那些事儿 9网络编程基础Java 编程那些事儿 9网络编程基础作者:陈跃峰作者:陈跃峰出自:http:/ 网络编程1.4 网络编程对于初学者,或者没有接触过网络编程的程序员,会觉得网络编程涉及的知识很高深,很难,其实这是一种误解,当你的语法熟悉以后,其实基本的网络编程现在已经被实现的异常简单了。1.4.1 网络编程是什么?1.4.1 网络编程是什么?网络编程的本质是两个设备之间的数

38、据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。送请求数据给另外一个,然后接收另一个设备的反馈。在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户

39、端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。例如以打电话为例,首先拨号的人类似于客户端,接听电话的人必须保持电话畅通类似于服务器。连接一旦建立以后,就客户端和服务器端就可以进行数据传递了,而且两者的身份是等价的。在一些程序中,程序既有客户端功能也有服务器端功能,最常见的软件就是 BT、emule 这类软件了。下面来谈一下如何建立连接以及如何发送数据。1.4.2 IP 地址和域名1.4.2 IP 地址和域名在现实生活中,如果要打电话则需要知道对应人的电话号码,如果要寄信则需要知道收信人的地址。在网络中也是这样,需要知道一个设备的位置,则需要使用该设备的 IP 地址,

40、具体的连接过程由硬件实现,程序员不需要过多的关心。IP 地址是一个规定,现在使用的是 IPv4,既由 4 个 0-255 之间的数字组成,在计算机内部存储时只需要 4 个字节即可。在计算机中,IP 地址是分配给网卡的,每个网卡有一个唯一的 IP 地址,如果一个计算机有多个网卡,则该台计算机则拥有多个不同的 IP 地址,在同一个网络内部,IP 地址不能相同。IP地址的概念类似于电话号码、身份证这样的概念。由于 IP 地址不方便记忆,所以有专门创造了域名(Domain Name)的概念,其实就是给 IP 取一个字符的名字,例如 、 等。IP 和域名之间存在一定的对应关系。如果把 IP 地址类比成身

41、份证号的话,那么域名就是你的姓名。其实在网络中只能使用IP地址进行数据传输,所以在传输以前,需要把域名转换为 IP,这个由称作 DNS 的服务器专门来完成。所以在网络编程中,可以使用 IP 或域名来标识网络上的一台设备。更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。1.4.3 端口的概念1.4.3 端口的概念为了在一台设备上可以运行多个程序,人为的设计了端口(Port)的概念,类似的例子是公司内部的分机号码。规定一个设备有 216 个,也就是 65

42、536 个端口,每个端口对应一个唯一的程序。每个网络程序,无论是客户端还是服务器端,都对应一个或多个特定的端口号。由于 0-1024 之间多被操作系统占用,所以实际编程时一般采用 1024以后的端口号。使用端口号,可以找到一台设备上唯一的一个程序。所以如果需要和某台计算机建立连接的话,只需要知道IP地址或域名即可,但是如果想和该台计算机上的某个程序交换数据的话,还必须知道该程序使用的端口号。1.4.4 数据传输方式1.4.4 数据传输方式知道了如何建立连接,下面就是如何传输数据了,先来看一下数据传输的方式。在网络上,不管是有线传输还是无线传输,数据传输的方式有两种:lTCP(TransferC

43、ontrolProtocol)传输控制协议方式,该传输方式是一种稳定可靠的传送方式,类似于显示中的打电话。只需要建立一次连接,就可以多次传输数据。就像电话只需要拨一次号,就可以实现一直通话一样,如果你说的话不清楚,对方会要求你重复,保证传输的数据可靠。使用该种方式的优点是稳定可靠,缺点是建立连接和维持连接的代价高,传输速度不快。lUDP(User Datagram Protocol)用户数据报协议方式,该传输方式不建立稳定的连接,类似于发短信息。每次发送数据都直接发送。发送多条短信,就需要多次输入对方的号码。该传输方式不可靠,数据有可能收不到,系统只保证尽力发送。更多电子书教程下载请登陆h t

44、 t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。使用该种方式的优点是开销小,传输速度快,缺点是数据有可能会丢失。在实际的网络编程中,大家可以根据需要选择任何一种传输方式,或组合使用这两种方式实现数据的传递。1.4.5 协议的概念1.4.5 协议的概念协议(Protocol)是网络编程中一个非常重要的概念,指的是传输数据的格式。因为大家在网络中需要传输各种各样的信息,在程序中获得到的都是一组数值,如何阅读这些数值呢,就需要提前规定好这组数据的格式,在客户端按照该格式生成发送数据,服

45、务器端按照该格式阅读该数据,然后在按照一定的格式生成数据反馈给客户端,客户端再按照该格式阅读数据。现实中类似的例子就是电报编码,每个数字都是用特定的数据表达。一般程序的协议都分成客户端发送的数据格式,以及服务器端反馈的数据格式,客户端和服务器端都遵循该格式生成或处理数据,实现两者之间的复杂数据交换。1.4.6 小结1.4.6 小结网络编程就是使用IP 地址,或域名,和端口连接到另一台计算机上对应的程序,按照规定的协议(数据格式)来交换数据,实际编程中建立连接和发送、接收数据在语言级已经实现,做的更多的工作是设计协议,以及编写生成和解析数据的代码罢了,然后把数据转换成逻辑的结构显示或控制逻辑即可

46、。需要了解更多的网络编程的知识,建议阅读JAVA2 网络协议内幕一书。Java 编程那些事儿 10Java 语言简介Java 编程那些事儿 10Java 语言简介Java 编程那些事儿 11JDK 的安装、配置和使用Java 编程那些事儿 11JDK 的安装、配置和使用作者:陈跃峰作者:陈跃峰出自:http:/ 更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。第二章 建立开发环境第二章 建立开发环境“工欲善其事,必先利其器”。进行程序开发,首先要安装

47、开发相关的软件,并且熟悉这些工具软件的基本使用。本章介绍一下两类开发工具的使用:l 基础开发工具l 基础开发工具基础开发工具是进行程序设计的基础,包含开发中需要的一些基本功能,例如编译、运行等,是其它开发工具的基础。Java 语言的基本开发工具是 SUN 公司免费提供的 JDK。实际开发中,为了方便和程序开发的效率,一般不直接使用基础开发工具,所以对于很多基础开发工具,只需要掌握其基本的使用即可。l 集成开发环境(IDE)l 集成开发环境(IDE)集成开发环境是指将程序设计需要的很多功能,例如代码编辑、代码调试、程序部署等等一系列功能都整合到一个程序内部,方便程序开发,并提高实际的开发效率,简

48、化了程序设计中的很多操作。Java 语言的集成开发环境很多,常见的有Eclipse、JBuilder、NetBeans等等。由于实际开发中,基本都是使用集成开发环境进行开发,所以在学习中必须熟练掌握该类工具的使用。一般集成开发环境的使用都很类似,在学习时只要熟练掌握了其中一个的使用,其它的工具学习起来也很简单。本文以 Eclipse 为例来介绍集成开发环境的基本使用。2.1 JDK 开发环境2.1 JDK 开发环境JDK(Java Developers Kit),Java 开发者工具包,也称 J2SDK(Java 2 Software Development Kit),是SUN公司提供的基础J

49、ava语言开发工具,该工具软件包含 Java 语言的编译工具、运行工具以及执行程序的环境(即JRE)。JDK 现在是一个开源、免费的工具。JDK 是其它 Java 开发工具的基础,也就是说,在安装其它开发工具以前,必须首先安装 JDK。对于初学者来说,使用该开发工具进行学习,可以在学习的初期把精力放在 Java 语言语法的学习上,体会更多底层的知识,对于以后的程序开发很有帮助。但是JDK未提供Java源代码的编写环境,这个是SUN提供的很多基础开发工具的通病,所以实际的代码编写还需要在其它的文本编辑器中进行。其实大部分程序设计语言的源代码都是一个文本文件,只是存储成了不同的后缀名罢了。常见的适

50、合 Java 的文本编辑器有很多,例如 JCreator、Editplus、UltraEdit 等。下面依次来介绍 JDK 的下载、安装、配置和使用。更多电子书教程下载请登陆h t t p:/d o w n.z z b a i k e.c o m/e b o o k 本站提供的电子书教程均为网上搜集,如果该教程涉及或侵害到您的版权请联系我们。2.1.1 JDK 的获得2.1.1 JDK 的获得如果需要获得最新版本的 JDK,可以到 SUN 公司的官方网站上进行下载,下载地址为:http:/ 6 Update 6”,选择对应的操作系统,以及使用的语言即可。在下载 Windows 版本时,有两个版

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服