您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > CoreJava学习手册
CoreJava学习手册整理者:Eric日期:2008-1-13版本号:V08010131Java入门准备知识1.1从面向过程编程到面向对象编程的思维转变我们知道所有的计算机程序都是由两类元素组成:代码和数据。此外从概念上将讲,程序还可以以他的代码或是数据为核心进行组织编写。也就是说一些程序围绕“正在发生什么编写“,而另一些程序则围绕”谁将被影响“编写。这两种范型决定程序的构建方法。第一种方法被称为面向过程的模型,用他编写的程序都具有线性执行的特点。面向过程的模型可以认为是代码作用于数据,用C写的程序就是典型的面向过程模型。第二种方法也就是我们现在正在学习的面向对象编程,面向对象编程围绕她的数据(即对象)和为这个数据严格定义的接口来组织程序。面向对象的程序实际上就是用数据控制对代码的访问。CoreJava就是一门纯面向对象编程的语言。学习方法很简单,就是模仿、改进、创新,循环往复。1.2什么是字节码和虚拟机字节码是一套设计用来在Java运行时系统下执行的高度优化的指令集。该Java运行时系统称为Java虚拟机(JVM)。JVM其实就是一个字节码解释器。虚拟机将字节码解释成机器码给CPU执行,所以我们在java中通过虚拟机的这种解释执行方式来屏蔽底层操作系统的差异。JRE=JVM+编译器JDK=JVM+编译器+类库查看类库源码在:JDK/src.zip压缩包里2Java开发环境的配置及开发须知2.1环境变量的设置需要新加的两个环境变量1、JAVA_HOME:指明JDK的位置。2、CLASSPATH:指明到哪里去找运行时需要用到的类代码(字节码)原有的环境变量1、PATH:指明可执行程序的位置。2、EXPORT:将指定的环境变量声明为全局的。我们在.bash_profile下的环境变量设置。JAVA_HOME=/opt/jdk1.5CLASSPATH=.PATH=$PATH:$JAVA_HOME/bin:.注:“.”代表当前目录当我们把环境变量都配置好了以后在终端敲入‖java-version‖命令如果出现JDK版本号信息就表示我们环境变量设置成功了。Bin目录下放的是一些JDK命令2.2我们的第一个Java程序publicclassMyFirstJava{publicstaticvoidmain(String[]args){System.out.println(―HelloWorld‖);}}注意:1.一个源文件最多只能定义一个public类(当然也可以没有),但可以定义多个不是public类2.源文件的main方法不一定要在public类里;3.源文件可以在多个类中定义多个main方法4.main方法的修饰符可以改变位置,即可以写成staticpublicvoidmain(String[]args)5.main函数是我们整个程序的执行入口所以必须是静态公开的。编译:javacMyFirstJava.java编译后我们可以看到目录下多了一个MyFirstJava.class文件。这就是Java编译原文件后生成的字节码文件。执行:javaMyFirstJava将字节码文件交给JVM去解释执行。思考:1、为什么编译后不生成可执行文件(注:所有的可执行文件都是机器代码)2、Java的跨平台特性(SUM口号:一次编译到处运行);2.3包结构为了根据需要将不同的原文件放在不同的目录下我们引入了包。包我们可以看作就是一个存放java源文件的目录。在源码的基础上声明一个包名:packagesd0604。加包后我们用“javac–d.MyFirstJava.java”编译后生成的字节码文件就会放在我们指定的包(目录)结构下.如果我们想指定多级目录那么在目录明之间我们可以用.作为分隔符。例如:packagesd0604.najing.xuanwu(包结构的具体规范参照《Java开发编码规范》)2.4CoreJava中的注释(生成注释文档)1、//单行注释2、/**/多行注释3、/***/文档注释文档注释可以由javadoc命令单独提取出来生成注释文档。例:javadocMyFirstJava.java我们在生成的注释文件中可以打开index入口页面来查看我们刚刚生成的注释文档。文档注释一般写在类、方法、属性定义之前前两种注释和C++相同。注意:1、我们可以用javadoc–help命令来查看该命令的其他用法。2、同样我们可以用“javadoc–d路径名*.java”来指定生成文档注释的位置。3、可以在文档注释中加入HTML标签来控制生成注释文档的显示格式。2.5jar命令的用法我们可以用“jar–cvfmn”命令来将文件打包成jar压缩包。m:要生成jar包的名字n:要压缩文件的文件名(可以是多个文件或一个目录)生成的jar文件实际上就是一个普通的zip压缩文件顺便说一下解包的命令:unzip*.jar2.6计算机运行一个java程序的过程1启动JVM2通过JAVA_HOME\jre\lib目录下找到对应的类3如果的2不找不到则在环境变量中配置的CLASSPATH配置的路径中找类,这就是为什么我们要在CLASSPATH中配上当前路径的原因。2.7import声明的作用当我们要用一个JDK定义好的类时我们需要在Java程序中配上该类对应的jar包。(类似于C++中了#include预处理指令)例:importjava.util.*;这里大家注意一点:由于java.lang.*包中的类是我们编程中经常要使用的,所以这个包下的类我们不用特别用import在程序中声明。但当我们要用到其他包中的类似我们就必须用import声明了。Awt:抽象窗口工具.如果大家想了解什么包做什么用的话大家课以看看我给大家的API文档,上面有对所有这些包用法的解释。2.8java中的垃圾回收器因为有了垃圾回收器,我们可以不用顾虑对象创建后占用系统资源的问题。我们只用负责对象的创建,而对象销毁和资源释放的问题就可以留给垃圾回收器做了。这里我们需要注意的是垃圾回收器一般只会在内存空间不够的情况下进行资源回收。2.9java中的关键字和保留字查询abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhilegotoenum3Java的数据类型3.1java中的八种基本数据类型1.boolean:占1个字节2.byte:占1个字节(-128~~~127)3.char:占2个字节(可以用来保存汉字)4.short:占2个字节(-32768~~~32767)5.int:占4个字节(-2147483648~~~2147483647)6.long:占8个字节7.float:占4个字节8.double:占8个字节3.2正负数在内存空间中的存放正数:在内存空间中存放的是源码。负数:在内存空间中存发的是正数源码对应的补码。补码:1.正数的补码是它本身,如+42的补码为001010102.负数的补码,把该数绝对数的补码按位取反,再加1。如-42的补码为11010110(因为00101010按位取反11010101,再加1后为11010110)3.3基本数据类型之间的转换1、正向过程:从低字节到高字节可以自动转换。byte-short-int-long-float-double注:boolean不能转。2、逆向过程:从高字节到低字节用强制类型转换例:inta=(int)3.12注:逆向转换将丢失精度。3.4java中的转义字符1.表示格式控制的转义字符(如:\n\t)与C++相同。2.Java中用“\u四位十六进制的数字”表示将字符转换成对应的unicode编码。3.5Java的位运算instanceof():用户判断某一个对象是否属于某一个类的实例。运算符:单目运算符、双目运算符、位运算符注:1、是corejava中的位移运算符,表示右移,左边空出的位以0添充。右移2、将一个数右移n位相当于将该数除以2的n次方;3、将一个数左移n位相当于将该数乘以2的n次方;4、&&、||是短路运算符(左边条件不符合时不会执行右边的判断)3.6Java中的数组1.数组的定义分为两部分:数组引用(声明)int[]a;inta[];数组空间(初始化)a=newint[5];2.数组在分配存储空间后,系统会自动为数组的每个元素初始化为0;3.定义数组,分配存储空间和初始化数组可以放在一个语句中,如:int[]a={10,20,30}对比:int[]a=newint[3];a[0]=10;a[1]=20;a[2]=30;4.在java中一个数组就是一个对象,只要是对象就是在堆空间存放。5.数组长度可以用数组名.length来取得.注:二维数组用.length取得的长度是其一维数组的长度。6.数组的下标从0开始;7.在java中二维数组本质上就是一维数组的数组。所以java中的二维数组可以是不对称的。Java中只有一维数组的内存地址空间是连续的而二维数组的空间可以不连续。(1)、二维数组声明和初始化int[][]a;//声明一个二维数组a=newint[3][];//该二维数组包含三个一维数组对象而每个一维数组对象长度可以不同所以第二个【】中的长度可以不填a[0]=newint[5];//第一列数组长度为5a[1]=newint[3];//第二列数组长度为3a[0][0]=1;//将第一个数组的第一个元素初始化1;8.介绍一个关于数组的小技巧在我们使用数组时,我们可以用一个index辅助变量来配合数组使用,表示其有效数据的个数,同时用来表示数组下一个可插入位置的下标。9.Java和C++的二维数组在内存的存储形式区别C++中二维数组在内存中的存储是连续的,因为可以方便指针操作,而Java中不需要开辟连续的内存空间,因为二维数组是以对象形式存在的。4Java的程序流程控制语句4.1两路分支选择(ifelseifelse)Ifelse配对原则:else一定会和离他最近的且没有与别的else配对的if配对;4.2多路分支选择(switch)switch(byte,short,int,char){casexxx:break;casexxx:break;default:}注意:每句case语句后面一定要加上break,不然语句会继续向下执行。4.3循环结构for(初始化;条件;调整){语句块}该结构在知道循环次数的时候使用初始化语句只执行一次;判断条件执行语句块执行调整判断条件for(;;)表示为无限循环注:for循环中两个分号是不能省略的。While(条件){语句块}改结构在不知道循环次数的时候使用先判断后执行,调整语句在代码块中体现。while(1)表示为无限循化。Do{语句块}while(条件);和上面while语句唯一的区别是该循环语句代码块至少要被执行一次;先执行后判断continue:提前终止本次循环直接进入下一次循环;Java中的循环标号labe:for(inti=0;i10;i++){for(inta=0;a10;a++){breaklabe;}}breaklabe:直接跳出同标号循环层4.4条件运算符的自动类型提升问题。continue,break,return,System.exit(0)continue:退出本次循环;break:退出循环体;return:退出方法System.exit(0):退出程序5Java的类、对象和方法5.1Java中的对象声明:Students;这时我们只是说明
本文标题:CoreJava学习手册
链接地址:https://www.777doc.com/doc-4943374 .html