学习java零基础入门书籍需要先学什么开始?

Java的优势是简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。

Java语言的设计从现在的角度看非常中庸,啥都不是特别出色,但都“凑合”。

学习Java就业时就意味着有不少选择余地的。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

其实Java并没有想象中的那么难,前提是做好一个心理准备,那就是你想走远点,就得不间断的去学习,去汲取知识,前期不能怕辛苦,不要闲下来就打游戏,多看看各种开源项目的代码,API的设计方式,各大网站的设计架构,理解各个环节的作用。补齐自己的知识视野。

推荐这些Java方面的书籍,仅供参考

零基础的小白与半路出家者的最爱

这是一本完整的面向对象(object-oriented,oo)程序设计和java的学习指导,以生动有趣而风靡。本书是根据学习理论所设计的,可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。而且不只是读死书,你还会玩游戏、拼图、解谜题以及以意想不到的方式与java交互。在这些活动中,你会写出一堆真正的java程序,包括了一个船舰炮战游戏和一个网络聊天程序。

《Java 核心技术》与《Java 编程思想》

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

《JAVA编程思想》显然要更深入地剖析java,而《JAVA核心技术》是对于java各个知识点的阐述。可以说《JAVA编程思想》重在深度,理解为教人怎么写代码。《JAVA核心技术Ⅰ》重在全面,甚至罗列了很多API。

必读之作,不仅涵盖所有 Java 基础,对于编程思想层面的提升也有很好的帮助。

Java 编程中78条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。

《重构:改善既有代码的设计》

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

出自于 Martin Fowler 的大作,写出优秀代码的必经之路。

了解 Java 并发编程必读佳作,建议阅读英文版。

《敏捷软件开发, 原则,模式,实践》

该书作者是Robert C. Martin。本书重点讲述了如何使用uml,并通过真实案例讲解如何用极限编程来设计、测试、量构和结对编程。曾经获得美国《软件开发》第13届震撼(jolt)大奖!

《Java并发编程实战》

书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。

《深入理解Java 虚拟机》

小编推荐一个学Java的学习裙【 六五零,五五四,六零七 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

全书共分为五大部分。从宏观的角度介绍了整个Java技术体系到JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见的虚拟机的监控与调试工具的原理和使用方法。从虚拟机的执行子系统,包括Class的文件结构以及如何存储和访问Class中的数据;虚拟机的类创建机制以及类加载器的工作原理和它对虚拟机的意义;虚拟机字节码的执行引擎以及它在实行代码时涉及的内存结构。到讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果。

}

简介:本文档为《零基础学Javapdf》,可适用于高等教育领域,主题内容包含第章Java语言概述?本章主要介绍什么是Java语言以及Java语言具有哪些特点。在讲解的时候为了能突出Java语言的特色详细的分析了其与CC语言的符等。

第章Java语言概述?本章主要介绍什么是Java语言以及Java语言具有哪些特点。在讲解的时候为了能突出Java语言的特色详细的分析了其与CC语言的区别。另外本章还为初学者特意安排了一节针对如何学习Java语言提出了一些中肯的建议。Java的语言特点?Java是由Sun公司开发出来的一种语言是一种面向对象的编程语言。其在很多方面与CC相似但在实际编程时又有很多区别。下面通过对他们的比较了解Java语言的特点。Java语言与C、C的区别?首先应该清楚Java是由C发展而来的保留了C的大部分内容其编程方式类似于C。但Java的句法更清晰、规模更小、更易学。Sun公司对多种程序设计语言进行了深入研究并摒弃了其他语言的不足之处最终退出了Java。正是这样Java从根本上解决了C的固有缺陷形成了一种新的完全面向对象的语言。Java和CC的相似之处多于不同之处有C基础的读者学习Java会更容易。相比较而言Java的编程环境更为简单。因篇幅所限这里不能完全列出不同之处仅列出一些比较显著的区别。指针多重继承数据类型?自动内存管理操作符重载预处理功能?Java不支持缺省函数参数而C支持?字符串goto语句类型转换Java面向对象的特性和多态性?Java是一种跨平台、适合于分布式计算机环境的面向对象编程语言。具体来说它具有如下特性:简单性、面向对象、分布式、解释性、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。下面将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。(具体内容请参照本书)Java的平台无关性?Java的平台无关性是指用Java写的应用程序不用修改就可以在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C是具有一定程度的源代码级平台无关。源代码级平台无关表明了用CC写的程序无需修改只需重新编译就可以在不同平台上运行。(具体内容请参照本书)Java分布式应用和多线程的特点?Java支持客户机服务器计算模式因此它支持这两种分布。对于数据分布Java提供了一个叫做URL的对象利用这个对象可以打开并且访问具有相同URL的对象访问方式与访问本地文件系统相同。对于操作分布Java的Applet小程序可以从服务器下载到客户端即部分计算在客户端进行提高系统执行效率。有关分布式的原理如图所示。(具体内容请参照本书)Java程序的可靠性、安全性?本节将详细讲述Java的可靠性和安全性。Java最初的设计目的是电子类消费品因此要求较高的可靠性。Java虽然源于C但它消除了许多C不可靠的因素可以防止许多编程错误。它的可靠性和安全性表现在如下几点:(具体内容请参照本书)Java小程序和应用程序?用Java可以写两种类型的程序:小程序和应用程序。小程序就是嵌入在网页文档中的Java程序而应用程序就是在命令行中运行的程序。对Java而言对小程序的大小和复杂性都没有限制。事实上Java小程序有些方面比Java应用程序更加强大。目前由于Internet通讯速度有限因此大多数小程序规模较小。小程序和应用程序之间的技术差别就在于运行环境。(具体内容请参照本书)Java的不同版本?Java拥有不同的版本各种版本适合在什么样的场合使用呢?下面将详细介绍这些版本。?JavaDevelopersKits(JDK)?JavaSDKMicroEdition(JME)?JavaSDKStandardEdition(JSE)?JavaSDKEnterpriseEdition(JEE)如何才能学好Java?如何学习Java这个问题应该上升到如何学习程序设计这种境界实际上学习程序设计也可以说是接受一种编程思想。每一种语言的程序设计思想大同小异只是一些由语言特性而带来的细微差别。比如Java中的“Interface”在以前的学习中没有碰到过。以下详细介绍几点:(具体内容请参照本书)什么是面向对象的程序设计?面向对象的程序设计有很多种除了Java还有很多编程语言例如大家熟悉的VB(VisualBasic)、PowerBuilder等。本节将详细介绍面向对象的一些特征和概念。什么是面向对象?面向对象程序的开发需要考虑多个对象及其相互间的关系。下面实例就是由类Max完成求最大值的功能。面向对象的另外一个好处是实现代码的重复使用如果其他程序需要最大值的功能只要通过类Max的对象就可以达到目的。而面向过程的程序设计中把求最大值的算法都实现在该代码段中就无法再复用。(具体内容请参照本书)模型分析:造房子?面向对象的程序设计其实就像是造房子每一块砖瓦和木材都可以看成是一个对象当这个房子被拆掉后每一块砖瓦还可以拿来重新使用。也就是说如果需要更改程序前面设计的有些类仍然可以被再次使用。(具体内容请参照本书)设计面向对象程序的思路?纯粹的面向对象程序设计方法如下。?所有的东西都是对象?程序是一大堆对象的组合?每个对象都有自己的存储空间?每个对象都属于某个类。设计面向对象程序的技巧?下面主要介绍面向对象编程的一些小技巧。?要学会如何抽象实际生活中的事物为一个类。?学会如何将类中各种各样的概念运用到设计中去。?要学会将整个程序模块化。?要学尽量减少类与类之间的联系防止一变都变的现象发生。面向对象与面向过程设计的不同?本节通过介绍两种语言不同的设计原理让读者学习如何设计更好的程序。?过程式设计?面向对象设计常见疑难解答?(具体内容请参照本书)初学者如何选择Java参考书?答:一个程序员如果没有半米多高的技术书堆就没有人会认为他是真正的程序员。如何从眼花缭乱的开发丛书中找到适合自己的书也是一门学问。?书评?道听途说?不要忘记旧书摊?预先阅览Java应用在哪些方面?答:Java的应用可以简单分为以下几个方面:?()Java的桌面应用?()JavaWeb应用?()Java企业级应用?()Java嵌入式应用?(具体内容请参照本书)第章世界上最简单的Java程序?上一章通过与CC的比较详细介绍了Java语言的一些特点。本章将讲述应用程序的一个开发流程另外还要讲述开发Java程序所要使用的开发工具最后会编写一个最简单的Java程序并通过对程序的具体分析使读者能够对编写Java代码有一个初步的认识。Java程序的开发流程?本节将详细地讲述Java程序开发的一个流程即如何去开发一个有价值的应用程序。下面是开发一个应用程序的基本流程。(具体内容请参照本书)开发工具的选择?学过程序设计的人知道使用Basic进行程序设计可以使用QBasic、VisualBasic等开发工具。使用C语言进行程序设计可以使用TurboC、VisualC、CBuilder等开发工具这些开发工具集成了编辑器和编译器是集成开发工具很方便使用。?学习Java程序设计同样需要方便易用的开发工具。Java的开发工具很多而且各有优缺点初学者往往不知道有哪些常用的开发工具或者由于面临的选择比较多而产生困惑。本文对初学者常用的Java开发工具作一个简单的介绍从而有助于初学者了解Java常用开发工具并且针对自身因素做出选择。开发工具的种类?本节介绍种常用的开发工具。这四种开发工具各有各的特色读者可以通过下面的介绍挑选自己使用方便的开发工具。?UltraEdit?Editplus?Jcreator?Eclipse?针对Java开发Eclipse与UltraEdit、Editplus、JcreatorIDE比较Eclipse显然更专业功能更强大。开发工具的安装?对于初学者来说最好是使用UltraEdit不要使用图形界面的开发工具因为图形界面的开发工具有很多都是自动生成的不利于初学者掌握程序语言的类库以及整个编程的思路及格式。下面先介绍如何安装UltraEdit开发工具。首先要下载UltraEdit这个软件下面就是其安装的步骤详解。(具体内容请参照本书)开发工具的使用介绍?UltraEdit是一套功能强大的文本编辑器可以编辑文字、Hex、ASCII码同时也可以取代记事本。其内建英文单字检查、C及VB指令突显可同时编辑多个文件而且即使开启很大的文件速度也不会慢。软件附有HtmlTag颜色显示、搜寻替换以及无限制的还原功能一般用户喜欢用其来修改EXE或DLL文件众多的游戏玩家喜欢用它来修改存盘文件或是可执行文件。(具体内容请参照本书)Java编程环境?编程环境就是让程序代码能在其中编译、运行的环境。本节重点讲述Java的编程环境其中包括一些类库的安装和配置。JSE的下载和安装?JDK是整个Java的核心包括了Java运行环境(JavaRuntimeEnvirnment)。它是一堆Java工具和Java基础的类库(rtjar)不论是什么样的Java应用服务器实质都是内置了某个版本的JDK因此掌握JDK是学好Java的第一步。(具体内容请参照本书)如何设置ClassPath变量?类路径ClassPath告诉Java应用程序去哪里查找第三方和自定义类那些类不是Java扩展或Java平台的一部分。(具体内容请参照本书)?设置ClassPath?清除Classpath?更改启动设置如何设置path变量?先找到安装JDK的目录并复制路径(如安装在C:ProgramFilesJavajdkbin)然后右击“我的电脑”>“属性”>“高级”>“环境变量”>“系统变量”>Path。单击这一项进行编辑弹出的对话框变量名应该是Path变量值是一系列用分号分开的地址一直拖到最后加上分号再把刚才复制的地址粘进来保存就可以。如何测试环境变量?测试环境变量是否设置成功可通过在DOS窗口下直接运行java和javac两个命令。?C:DocumentsandSettingAdministrator>javac?C:DocumentsandSettingAdministrator>java?如果出现图的现象说明设置成功了否则还必须重新设置。下面测试“java”这个命令测试效果如图所示。(具体内容请参照本书)编写世界上最简单的程序?本节将编写一个最简单的程序通过这个程序段给读者讲述编程的一些基础知识。从本节开始将真正地进入到编程世界。编写程序代码?设计一个最简单的程序代码如下所示。?publicclasshello?{?publicstaticvoidmain(Stringargs)?{Systemoutprintln("大家好欢迎进入Java编程世界!!!")}?通过使用javac命令来看是否通过编译如图所示。通过java命令来看看运行结果如图所示。(具体内容请参照本书)分析程序代码?本节分析上一节的程序段从结构开始介绍。?publicclasshello?定义了一个类类是“public”公共类型的类名为“hello”另外Java中主类名应该和要保存的Java文件名相同也就是说这里定义的类名是“hello”则文件应该保存为“hellojava”。(具体内容请参照本书)常见疑难解答?(具体内容请参照本书)Javacxxxjava顺利通过但Javaxxx显示“NoClassDefFoundError”?答:Java命令在一定的范围(ClassPath)内搜索要用的Class文件但是未能找到。遇到这类问题首先请确认没有错敲成javaxxxclass其次检查ClassPath环境变量如果设置的该变量没有包含“”(代表当前目录)的就会遇到这个问题处理的方法就是在ClassPath环境变量中加入一项。导致错误“ExceptioninthreadmainjavalangNoSuchMethodError:main”的原因?答:首先在程序中每个Java文件有且只能有一个public类这个类的类名必须和文件名的大小写完全一样其次在要运行的类中有且只能有一个“publicstaticvoidmain(Stringargs)”方法这个方法就是主运行程序。(具体内容请参照本书)第章Java语言中的数据与运算符?本章主要介绍编程语言最基础的部分:数据和运算符。这是所有编程语言都必须掌握的基础知识也是整个程序代码不可缺少的重要部分。本章将通过大量的程序代码来讲述如何操作这些数据和运算符。熟练的掌握此章对于Java开发起着非常重要的作用并且还对以后学习其他开发语言有着重要的帮助。数制?在介绍数据之前先了解数制的概念。数制可以说是纯粹数学上的内容只不过在计算机语言开发中使用的比较频繁下面将详细讲述数制的有关知识。基本概念?在使用电脑时会遇到数值、文字、图像、声音等信息电脑是如何识别这些数据信息的呢??首先看计算机底层硬件是如何识别数据的。计算机底层硬件只能识别“”和“”这种只有“”和“”两个数字符号的组合被称为二进制。例如计算机要处理数字“”那么计算机会将其转化成二进制“”。一个这么简单的数字要用这么长的数字符号来代替在现实生活中稍显麻烦所以后来又引进了十六进制、八进制。实际开发中使用最多的是十进制后面会介绍各个数制的特征和使用。Java语言中的数制表现形式?数制一般包括二进制、八进制、十进制和十六进制。?.二进制?.八进制?.十六进制?.十进制数据类型?Java语言是一个强调数据类型的语言在声明任何变量时必须将该变量定义为一种数据类型。Java中的数据类型包括:基本数据类型和对象类型。对象类型不属于本章所讲述的内容本节主要介绍数据的基本类型。Java程序中总共有大基本类型其中种整型、种字符型、种浮点型、种布尔型除了这几种基本类型外其他都属于对象类型的数据。整型?什么是整型呢?从字面上就可以知道整型就是整数类型也就是没有小数点的数字可以是正数也可以是负数。在Java中总共的整型主要有种:字节型(Byte)、整型(Int)、短整型(Short)、长整型(Long)。?.字节型?.短整型?.Int型?.长整型字符型?字符型数据是平时程序设计中使用比较频繁的类型其占两个字节。特别注意的是它必须以单引号表示例如‘A’表示一个字符这个字符就是A。“A”表示一个字符串虽然其只有一个字符但因为使用双引号所以它仍然表示字符串而不是字符。(具体内容请参照本书)浮点型?浮点型数据表示有小数部分的数字总共有两种类型组成:单精度浮点型(float)和双精度浮点型(double)。?.单精度浮点型数据?.双精度浮点型数据?(具体内容请参照本书)布尔型?布尔型数据其实很简单如果有人问:去不去麦当劳可以说不去。如果有人问去不去看电影可以说去。这里就隐藏着布尔型的数据布尔型数据就是“是”与“否”。在程序中使用“真”和“假”来代替“是”与“否”即“true”和“false”。仔细观察下列程序代码:(具体内容请参照本书)变量?前面的代码使用了很多变量那究竟变量是什么呢?本节将介绍变量的基本概念以及如何操作变量。变量的声明?变量就是在程序的运行中可以变化的量变量是程序设计中一个非常重要同时也是非常关键的概念。在Java程序设计中每个声明的变量都必须分配一个类型。声明一个变量时应该先声明变量的类型随后再声明变量的名字。(具体内容请参照本书)变量的含义?在程序设计中经常会听到变量这个名词到底什么是变量呢?它又有什么意义呢??在程序运行过程中空间内的值是变化的这个内存空间就称为变量。为了操作方便给这个空间取了个名字称为变量名内存空间内的值就是变量值。所以申请了内存空间变量不一定有值要想变量有值就必须要放入值。(具体内容请参照本书)变量的分类?变量的分类方式可以说多种多样不可能单纯的将变量划分为几个类下面将以不同的分类方式来讨论变量的分类问题。?.从作用范围来分?.从类型来分?.以所属范围分?(具体内容请参照本书)如何初始化?在C、C或者VB、PowerBuilder等语言中都会提到变量的初始化有关对象类型的变量初始化将在后面的章节详细讲述这里将把基本类型变量的初始化作为本节的主要篇幅。(具体内容请参照本书)常量?常量就是从程序开始运行到结束都不变的量。在Java程序设计中使用关键字“final”来声明一个常量例如下面的程序代码。(具体内容请参照本书)运算符?运算符就是在用变量或常量进行运算时经常需要用到的符号目前常用的总共有十种:算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、赋值运算符、三元运算符、逗号运算符、字符串运算符、转型运算符。下面将会对每种运算符结合实例作详细的讲述。算术运算符?从小学开始就学过“加”、“减”、“乘”、“除”、“余”其实这就是Java中的算术运算符。下面来看一种情况当一个浮点数加上一个整型数据其结果是什么类型的数据??这涉及到了数字精度问题数字精度就是不同类型的数据之间进行运算为了使结果更加精确则会由系统将其结果自动转化为精度更高的数据类型。以上所述的定义有点复杂通过下面的例子进行说明。(具体内容请参照本书)关系运算符?关系运算符就是指两个操作数之间的关系它包括了:“>”、“<”、“>=”、“<=”、“==”、“!=”。算术运算符的结果都是数字而关系运算符的结果则是布尔型的数据这一点一定要注意。逻辑运算符?逻辑运算符共有三种即“非”、“和”、“或”。逻辑运算符一般与关系运算符结合起来使用下面将详细的介绍这三个逻辑运算符。?.NOT运算符?.AND运算符?.OR运算符位运算符?位运算符主要针对二进制它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符但逻辑运算符是针对两个关系运算符来进行逻辑运算而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。?.与运算符?.或运算符?.非运算符?.异或运算符移位运算符?移位运算符也针对二进制的“位”它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>)。?.左移运算符?.右移运算符?.带符号的右移运算符赋值运算符?赋值就是将数值赋给变量而这个赋值运算符就充当了这个赋值的任务其实最简单的赋值运算符就是“=”。当然除了“=”外还有很多其他的赋值运算符。有“=”、“-=”、“*=”、“=”、“=”、“>>=”、“>>>=”、“<<=”、“=”、“|=”、“^=”。下面有一个简单的例子。(具体内容请参照本书)三元运算符?三元运算符一般用的很少因为它在程序段中的可读性很差所以笔者建议不要经常使用三元运算符但很少使用并不代表不使用所以还是要掌握好它的用法三元运算符的表达形式如下:?布尔表达式?值:值?(具体内容请参照本书)逗号运算符?在Java程序设计中逗号运算符一般是用来将几个条件彼此分开例如数组中的每个元素都是使用逗号与其他元素分开的。转型运算符?转型运算符的用处是将一种类型的对象或数据经过强制转换而转变为另一种类型的数据。它的格式是在需要转型的数据前加上“()”然后在括号内加入需要转化的数据类型。有的数据经过转型运算后精度会丢失而有的会更加精确(具体内容请参照本书)运算符的优先级别?当多个运算符出现在一个表达式中谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中运算符优先级不同会导致最后得出的结果差别甚大例如()+()*这个表达式如果按加号最优先计算答案就是如果按照乘号最优先答案则是。(具体内容请参照本书)常见疑难问题解答?(具体内容请参照本书)如何将十进制转换成二进制?答:如何将十进制转换成二进制?作者有一个方法就是先熟练记忆的n次方的结果一般来说记到的次方就可以了。(具体内容请参照本书)转型运算符会引起精度问题为什么还要使用它?答:其实不但基本类型的数据会使用转型运算符对象类型的数据也要使用转型运算符。在使用基本数据转型时一般都要从低精度往高精度转但是在某些特定的情况下或者说在用户特殊要求下会从高精度转向低精度。例如有的数字希望能够去掉小数位那么就只能从高精度往低精度转型。第章程序设计中的流程控制?什么是流程控制呢?流程就是做一件事情的顺序或者说是次序。在程序设计中流程就是要完成一个功能而流程控制则是指如何在程序设计中控制完成某种功能的次序。本章将通过大量的实例为读者讲述如何在程序中设计好流程控制。编程风格?本章开始接触到编写程序代码有一点必须强调那就是编程风格的问题虽然其不影响程序代码段的运行但对于程序的可读性起着重要的作用。自己编出的程序要让别人看懂首先在排版方面要非常注意下面将探讨编程风格的问题。?每个人的编程风格、每个软件开发公司的编程风格都不一样。一个人编写的程序代码就应该能让别人看懂甚至是过了很长时间自己也要看的懂否则这个程序就成了一个死程序。编程风格是指编程时的格式让程序看上去就很有层次感。下面通过一些例子说明编程风格的重要性先来看第一个例子。(具体内容请参照本书)条件语句?在现实生活中经常听人说:如果某人发财了某人会做什么。其实这就是程序设计中所说的条件语句。像“如果……”、“就………”“否则…”当然这只是很简单的条件语句在真正的程序设计中使用的条件语句要比这复杂的多。条件语句的种类?在程序设计中条件语句的标准格式如下:(具体内容请参照本书)如何使用好条件语句?使用好条件语句需要注意以下几点:?()应该绘制流程图使编程时思路更加清晰。?()编程时在最简单形式的条件语句中可以不使用大括号因为它不会产生混淆但建议无论是哪种形式的条件语句都应该使用大括号。循环语句?循环语句在程序设计中有什么作用呢?下面先看一段简单的程序段再来看看使用循环语句编写程序的好处在哪里。(具体内容请参照本书)For语句?For语句的基本结构如下所示。?For(初始化表达式判断表达式递增(递减)表达式)?{?执行语句?}?(具体内容请参照本书)while循环?在英文中“while”这个词的意思是“当”而在Java程序设计中也可以将其理解为“当”其语法结构是:(具体内容请参照本书)dowhile语句?在学习dowhile语句之前先清楚while语句是如何工作的。while语句是先进行条件判断再执行大括号内的循环体。?dowhile语句与while语句不同的是它先执行大括号内的循环体再判断条件如果条件不满足下次不在执行循环体。也就是说在判断条件之前就已经执行大括号内的循环体。(具体内容请参照本书)中断与继续?在实际编程中可能会出现中断某个程序或从一个程序点开始继续执行程序的特殊情况。对于这种特殊情况Java会使用中断与继续功能来解决。中断控制语句?在Java程序开发中使用关键字“break”来表示中断控制。中断控制语句用来强行退出程序的循环体部分。为了能熟悉中断控制语句下面看一个简单的程序段通过这个例子可以看到中断控制语句在实际开发中的用处。(具体内容请参照本书)继续语句?在Java程序设计中继续语句使用关键字“continue”表示。继续语句同中断语句一样用在循环体中继续语句是用于终止当前循环体返回到循环开始处接着开始新的循环。下面先看一个有关继续语句的实例。(具体内容请参照本书)分支语句?在讲述条件判断语句时曾经提到当判断条件过多时可以使用分支语句来编写。分支语句的基本机构是:(具体内容请参照本书)返回语句?返回语句就是在执行程序的过程中跳转到另一个程序。一般返回语句用在子程序或程序中的函数方法中。返回语句使用关键字“return”来表示。下面通过一个简单实例了解返回语句的用法。(具体内容请参照本书)常见疑难解答?(具体内容请参照本书)普通循环是使用For语句还是while语句?答:根据情况不同而定For循环语句主要针对有限循环而言也就是说当循环有上限的时候一般使用For循环。while循环语句则针对那些无限循环的代码而言当循环没有明确上限上限只是根据程序中的条件而定的。一般的程序可否用分支语句来代替条件语句?答:这个要视具体情况而定如果条件在三重之内最好使用条件语句。如果超过了三重最好使用分支语句。第章数组?什么是数组?数组在实际程序中起到什么作用?数组用来存储数据类似数据的缓存是一组有序列的数据集合。通过本章的学习可以了解数组如何进行数据存储并且结合编程实例掌握数组的设计和操作。数组概念的引入?本节将介绍数组的一些基本概念。这些概念有助于在以后的编程过程中更好的使用数组。实例的引入?走进一家运动器材店会看到很多的体育运动器材有篮球、排球、足球、羽毛球、乒乓球、高尔夫、滑板、健身器材等等。如果要为这家店作一个数据库系统首先要建立一个类似于集合的表格如下所示。(具体内容请参照本书)数组的概念?数组是具有相同数据类型的数据的集合例如上一小节中提到的运动器材集合。相同的数据类型意味着数组中每个数据都是同一类型数据或者属于基本数据类型中相同类型的数据或者属于对象类型中相同类型的数据。在生活中一个班级的学生、一个学校的所有人、一个汽车厂的所有汽车等等这些都可以形成一个数组。(具体内容请参照本书)用实例说明数组的用处?本节重点是说明数组的优点可能会遇到后面小节讲述的内容先不要理会。下面来看一个有关数组的简单实例。?一个班上有个同学分别是王垒、赵敏、宋江、刘户、孙洁、王浩、周杰、钱平、朱汉、马超。前面个同学是男生后面个同学是女生。下面分析如何用数组来表示。(具体内容请参照本书)基本数据类型的数组?上面一节中使用实例对数组的用处作了分析此节将针对基本数据类型的数组讲述其声明方法和使用方法。本节将会利用大量编程实例来加强对数组用法的理解。基本类型数组的声明?使用一个数据时必须要对其进行声明这个道理对于数组来说也一样数组在使用之前也必须先声明。先看下面的代码是如何声明一个变量的。?Inta?仔细分析一下:int是指变量的数据类型a是指变量名由变量的声明可以联系到数组的声明。(具体内容请参照本书)基本类型数组的初始化?如何对基本类型的数组进行初始化呢?同样可以先从变量的初始化开始。一个变量的初始化工作其实就是一个变量的赋值工作例如下面的变量初始化实例。?inta=?以上就是一个变量初始化的例子那么数组的初始化是什么样子?下面看一个有关数组初始化的实例。?Inta=newint{,,,,}?(具体内容请参照本书)由实例引出不同数组种类及其使用?本节主要使用实例让读者能更加熟悉数组的使用。通过本节的学习总结一些编程中所使用的编程思路。编程最重要的不是如何编写代码使用哪种控制流程?最主要的是编程的思路编程思路决定着这个程序代码的好与坏。由实例引出一维数组及其使用?先来看一个很简单的实例。有两个数组a、b输出它们中的各个数据并且输出它们的长度。(具体内容请参照本书)由实例引出二维数组及其使用?针对二维数组先看看下面的有关二维数组的例子:创建一个字符型二维数组并根据执行结果为各元素赋值然后输出各元素。(具体内容请参照本书)数组的综合实例?设计一个程序有两个整型数组:a和b。a数组中有个元素b数组中有个元素。现在要求:?()分别输出两个数组中的各个元素及长度。?()有一个数组c它的元素就是a数组和b数组中一一对应的元素的乘积并且输出其长度。?()有一个数组d它的元素是前面三个数组中一一对应的元素满足的表达式:ai*cibi。?(具体内容请参照本书)常见疑难解答?(具体内容请参照本书)声明数组需要注意什么?答:声明数组时一定要考虑数组的最大容量防止容量不够的现象。数组一旦被声明它的容量就固定了不容改变。如果想在运行程序时改变容量就需要用到数组列表。数组列表不属于本章的内容在数据结构一部分会详细讲述。数组在平时的程序代码中使用是否频繁?答:其实数组有一个缺点就是一旦声明就不能改变容量这个也是其使用频率不高的原因。一般存储数据会使用数组列表或Vector这两种数据结构来存储数据。第章字符串的处理?本章将通过实例重点讲述字符串类和字符串类中各种各样的方法。字符串属于类虽然在本章之前还未讲解类但本章的关键主要学习如何处理字符串。字符串是在程序开发中随时随地都能用到的对象型数据处理好字符串数据对于程序开发来说是至关重要的。在程序不同的角落都会存在字符串处理的身影例如登录窗口的用户名和密码等等。字符串的基本概念?提到字符串读者一定不会陌生。在前面章节中很多实例程序都有字符串的出现。先来看看下面的这段程序代码段。(具体内容请参照本书)?在两个双引号之间的数据就是字符串。?(具体内容请参照本书)字符串处理的类库种类?字符串处理类库使用最多的是两种:“String”类和“StringBuffer”类。下面将详细讲述这两个类如何使用。字符串的赋值?字符串类是处理字符串的类。“String”字符串与上一章学过的数组有一个共同点。就是它们被初始化后长度是不变的并且内容也不变。如果要改变它的值就会产生一个新的字符串如下所示:(具体内容请参照本书)字符串的处理类String?字符串的声明非常简单具体声明方法如下所示:?字符串类型字符串名=字符串内容?(具体内容请参照本书)字符串处理的方法?字符串类拥有很多针对字符串操作的方法。在这里主要讲述:串连接、提取子串、从字符串中分解字符、得到字符串的长度、测试字符串是否相等、查找特定字符串、从基本类型转换成字符串等。?.串连接.提取子字符串?.从字符串中分解字符.得到字符串的长度?.测试字符串是否相等.查找特定子串?.从基本类型转换成字符串.toString方法缓冲字符串处理类―StringBuffer?前面介绍过“String”类一旦声明初始化后是固定不变的。如果要改变它就必须重新申请空间重新声明和初始化。Java类库中有一个类可以解决上面的问题那就是缓冲字符串类-“StringBuffer”类。当创建StringBuffer类对象时系统为对象分配的内存会自动扩展以容纳新增的内容。针对“StringBuffer”类创建对象时的构造器有两个下面将详细的讲述。缓冲字符串StringBuffer类的构造器?在这一小节中将学习缓冲字符串类的构造器知识。通过学习对比StringBuffer类和String类的不同点和相同点。?.默认的构造器?.设定容量大小的构造器缓冲字符串的处理?下面将学习StringBuffer类的一些主要方法。其实这些方法有很多与String类的方法很相似通过学习可以比较。?.初始化字符串.取字符串的单个字符?.单个字符串赋值.指定位置插入字符串?.返回字符串的子串.倒置字符串的内容缓冲字符串类的特点?字符串是绝大多数应用程序经常使用、且不可缺少的对象之一。由于缓冲字符串类有着比字符串类更加宽裕的空间所以缓冲字符串可以用来处理一些动态字符串而一般字符串类只能处理静态的不可变化的字符串。用实例演示如何处理字符串?下面看一个实例通过这个实例可以更熟练的处理字符串数据。有一个字符串处理要求请看下面的要求:?有两个字节数组:{‘I’‘a’‘m’‘a’‘b’‘o’‘y’}以及{‘h’‘e’‘i’‘s’‘a’‘b’‘o’‘y’}请将它们以字符串形式输出。?用缓冲字符串类来输出上面的字符串。(具体内容请参照本书)如何格式化输出?程序员经常使用“Systemoutprintln(x)”方法向输出台输出数据这条命令会按照x的数据类型所允许的非零数字位的最大数字打印。下面通过例子进行演示。(具体内容请参照本书)常见疑难解答?(具体内容请参照本书)“equals”和“==”的区别?答:如果操作两边都是对象句柄就比较两个句柄是否指向同一个对象。如果两边是基本类型比较的就是值。?“equals”比较的是两个对象的内容如果不重载“equals”方法自动调用object的“equalf”方法则和“==”样。在JDK中像“String”、“Integer”默认重载了“equal”则比较的是对象的内容。在实际编程中建议读者使用“equals”方法。String类为何被定义成final约束?答:主要是考虑“效率”和“安全性”的缘故。若“String”允许被继承则其频繁的被使用可能会降低程序的性能所以“String”被定义成“final”。char类型转换成int类型整数int转换成字符串?(具体内容请参照本书)第章类?什么是类?类有什么用处?为什么它会是面向对象编程的一个典型特征?带着这些问题本章将会结合大量的实例为读者一一讲解。?类是面向对象编程中最基本、也是最重要的特征之一。从本章开始将介绍如何进行面向对象的程序开发以及程序开发的过程中所需要具备的重要思想是什么?编程思想是很多学习编程的人学习时间长却学不好的一个主要原因。JDK和JDK特性?本节介绍什么是JDK以及Java开发工具集中两个不同的版本。本节的讲解比较简单希望有兴趣的读者查看其他的相关书籍。什么是JDK?JDK的意思是Java开发工具包(JavaDevelopmentKit,JDK)JDK是Sun公司免费提供的Java语言工具是Java应用程序开发的基础。通常第三方开发工具“JBuilder”、“IBMVisualAgeforJava”等都是基于JDK进行开发。JDK的特点?JDK其实就是JDKJDK(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发包括泛型、forelse循环、自动装包拆包、枚举、可变参数、静态导入。?使用这些特性有助于编写更加清晰、精悍、安全的代码。下面简单介绍下这些新特性。?泛型(Generic)自动装包拆包(Autoboxingunboxing)?枚举(Enums)可变参数(Varargs)?静态导入(StaticImports)JDK的特点?浏览了JDK的新特性感觉“CompilerAPI”的应用有很大空间。JDK提供对代码的编译功能可以实现代码编辑、编译及加载运行可以在系统运行中动态配置和扩展用户自定义的功能甚至可以把Java语句作为脚本内嵌到原有系统中扩充功能集。JDK与JDK的比较?年底Sun公司发布了JavaStandardEdition(JavaSE)的最终正式版代号“Mustang(野马)”跟“Tiger(JavaSE)”相比“Mustang”在性能方面有了不错的提升。从与“Tiger”在API类库的比较来讲有了大幅度加强虽然“Mustang”在API库方面的新特性显得不太多但其提供了许多实用和方便的功能:在脚本、WebService、XML、编译器API数据库、JMX、网络方面都有不错的新特性和功能加强。?随着不断的发展和进步相信JDK会有不错的表现。用比较法阐述类的概念?现实生活中的有一个例子。造房子的砖头有红色的砖、有方砖、有圆砖此时在现实生活中各种各样的砖头都可以称作是对象。红色的砖可以称为一个对象圆砖可以称为一个对象它们有共同点但也有不同的方面这些不同的方面使得它们不可能是同一个对象。然而砖头就是所有种类的总称所有的砖都是由它派生而来所以这个砖可以称为是一个类。?类就是模板也可以说类其实就是创建对象的基地它能产生很多不同的对象。再举个例汽车就是一个类而卡车、轿车等等都是从汽车这个类中派生出来的也就是说这些都是属于汽车这个类。其实类是个很灵活的概念也可以将轿车作为一个类在轿车这个类中再创建各种品牌的轿车对象出来有桑塔纳、红旗、奔驰而每种轿车都是一个对象。类与对象的关系有点像一个母亲与子女的关系。Java中已有的类?目前Java中已经存在了很多由前辈开发出来的类可以被开发人员直接使用将这些有共同特征的类组合在一起形成了类库。在Java中包含大量用于不同目的的类库这些类库是开发Java软件的基础。即使是需要设计自己的类也有可能使用到Java类库中的很多类。?可以打开API文档查看一些已经存在的类库能发现Java类库非常丰富。鉴于读者都是初学者所以暂时只介绍一些简单的API类库随着学习的深入后面读者会接触到更多的类。Java的数学运算处理类Math?看到“Math”这个单词立刻就能明白这个类一定跟数学有关。其包含了丰富的数学函数可以使用这个类的方法而不用管内部是如何实现的。通过查看API文档知道“Math”类中的所有方法和字段都是可以直接访问的在Java中称之为静态方法和静态字段。有关静态方法和静态字段的概念后面章节有介绍现在只需要知道这些方法和字段可以直接去使用。测试时间和日期的类Date类?下面要介绍另一个比较重要的类:Date类。Date类包括了有关日期和时间操作的一些方法。Date类提供相应的方法可将日期分解为年、月、日、时、分、秒。Data类还可以将日期转换成一个字符串甚至可以执行反向的操作。?因为Math类中的方法和字段属性都是静态的所以可以直接使用它。而Date类中的方法和字段属性不是静态的所以不能直接用“类方法名或字段名”必须使用“对象名方法名或字段名”。(具体内容请参照本书)测试日历的类GregorianCalendar类?在对Date类的介绍中读者会发现Date类所表示的是一个时间点也就是在创建对象当时的时间点而这对于进行日期的相关操作及运算是非常不方便的。为此前辈们在Java类库中为开发者提供了一个方便操作日期的类:GregorianCalendar类。其实GregorianCalendar类是Calendar类的一个扩展而已Calendar类是从总体上描述历法的类。(具体内容请参照本书)日历处理的实例解析?对于月历类来说最重要的参数是年、月、日、小时、分、秒、毫秒所以Calendar类提供了这些参数:?YEAR(年)、MONTH(月)、DATE(日)、HOUR(小时)、MINUTE(分钟)、SECOND(秒)、MILLISECOND(毫秒)。?(具体内容请参照本书)用实例分析设计一个类的流程?下面将会通过一个综合实例来为读者总结本章中的一些比较重要的知识从而为读者总结一下编程思想。如何在现实程序设计中提取一个类?在现实程序开发过程中需要根据客户提供的要求来编写程序。在编写程序之前要分析客户的要求这是很关键的一步。针对客户的要求程序员要学会从客户要求中提取出类然后根据类再创建对象在对象中规划出方法和属性值最后由这些方法和属性值共同完成客户提供的要求。(具体内容请参照本书)设置器和访问器?在上面的程序段中出现过“set”和“get”函数那么这些函数起着什么作用?在Java程序语言中把“set”函数称为设置器把“get”函数称为访问器。访问器只是查看对象的状态或者返回对象的属性值的。访问器有以下特点:(具体内容请参照本书)总结?本章正式开始接触Java程序设计的特点主要讲述了什么是类和如何提取一个类。在本章中举了一个现实生活中的程序开发的实例同时仔细的分析了编写程序的主要思路希望读者能熟练的掌握。其实想要掌握一门编程语言最关键的就是要多多练习正所谓熟练生巧。常见疑难解答类在程序语言中起到了什么作用?答:其实类的出现将原先的过程化程序设计推到了面向对象编程这是一个质的变化。类的出现让程序都是以模块化结构来编写的为程序员编写程序的思路清晰带来了很大的好处。设置器和访问器的作用?答:设置器和访问器的作用:是在创建对象后为数据对象设置一些字段主要是为了减轻构造器的负担。第章对象和包?上一章介绍过对象的概念并且提出了对象是通过类创造出来的为什么呢?是如何创造出来的呢?本章将介绍对象和包的知识通过对对象的讲述希望读者能将对象和类作个对比。对象、包是Java程序设计的核心之一也是面向对象程序设计与面向过程程序设计的最大不同点之一。对象?什么是对象呢?本节将会详细的给大家讲述对象概念、用法以及如何创建它们。对象是一个比较抽象的概念。在这里将会结合实例进行讲述、分析让读者能够从本质上很好的理解对象。什么是对象?很多编程爱好者包括有过很多年编程经验的人对于对象的概念都是很模糊的如果将对象的概念与现实生活中的实物相比就会发现对象其实是很好理解的。对象就是实际生活中的事物可以说一切都是对象在现实生活中时时刻刻都接触到对象这个概念例如桌子、椅子、电脑、电视机、空调等等。这些实物都可以说是对象。(具体内容请参照本书)操作对象?读者初步了解到对象其实就是现实生活中的事物现实生活中要经常去使

}

我要回帖

更多关于 java零基础入门书籍 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信