还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程内容JAVA重要基础知识推荐教材《面向对象程序设计》(第3版),叶乃文等编著,清华大学出版社推荐参考书《ThinkinginJAVA》(中文版书名JAVA编程思想)网上可以下载到电子书知识点具体内容JAVA的发展历史Java是一门完整的编程语言,包括自己的语法和各种底层的支持SUN斯坦福网络1991年SUN公司为了竞争一个叫做GREEN的项目,就是利用各种硬件设备,控制家电的项目,他的技术人员本来打算用C++来开发的,但是C++本身比较复杂,所以他们又自己开发一个新的平台——Oak橡树,但是,很遗憾,这个语言没有竞标成功,那么这门语言就意味着死亡后来,Sun公司的开发人员又开始跟网景学习了浏览器技术,开发了一款浏览器叫做HOTJAVA,在1995年的时候将Oak重新更名为Java到了1998年的时候,SUN正式将JAVA更名为JAVA2,主要是JAVA2中增加了一系列的轻量级的开发包,这些开发包主要都是用在图形界面的开发上,这些个图形界面统一称为JFC,这个时代很快就过去了现在的开发已经基本上不用JFC了,主要是拜微软所赐微软的.net战略,它开发出了J#,实际上就是将JAVA语言进行了改写,他想把JAVA做成VB的风格,但是这样一来呢,就把JAVA中各种底层API改写掉了这样微软构成侵权,SUN就把微软告上方法庭,微软公司进行赔付,所以在WindowsXP之后就不再支持JVM加了,这样SUN又告了微软,当然又得赔钱后来微软为了继续发展他的.net战略,根据J#重新进行了改革,新开发出了一套C#语言,所以现在看到的.net主推平台就是ASP.NET+C#了SUN其实对JAVA的期望还是在于嵌入式系统的开发上,但现在的嵌入式系统基本都是在做游戏开发JAVA的主要分支方向J2SE:是Java的标准版本,提供基本的底层支持,图形界面等等在2005年Java十周年庆祝大会上,正式更名为JAVASEJ2EE是Java的一个主要方向,主要用于构建企业的应用系统在2005年Java十周年庆祝大会上,正式更名为JAVAEEJ2ME是Java的微型版本,主要就是用于嵌入式系统的开发,现在主要就是做游戏的在2005年Java十周年庆祝大会上,正式更名为JAVAMEJAVA的最大特点是面向对象面向对象的概念最早是在70年代的时候由Smalltalk语言提出来的,Smalltalk是IBM开发出来的语言JAVA语言是属于编译型和解释型的语言,这意味着,所有的JAVA源程序代码,需要先编译,编译之后再在电脑上进行解释,所以JAVA的语言执行分为两步实际上JAVA的基础语法是和C语言的格式是完全一样的在JAVA中不存在指针的概念,但是存在引用的概念,实际上传递的也是内存地址JAVA的安全性也是最高的,因为所有的操作都是以字节码(class)文件的形式保存的JAVA是由C++开发出来的,它的最大特点是跨平台JAVA的所有程序都是在一台虚拟的电脑上执行的,就是JVMSource.Java经过编译之后形成Sourse.class执行JAVA的运行中,会根据不同的操作系统提供一个JVM的版本支持,所有的程序执行都知识找到JVM,由JVM去直接适应操作系统,这样一来,所有的程序就可以在任意的操作系统上执行所有的代码如果可以由A直接到B,这样的代码肯定是不好用的,中间加入过渡端A——C——B
3.2JAVA基础部分重要知识
3.
2.1两个环境属性JDK安装完成之后,实际上所有的命令都在C:\ProgramFiles\Java\jdk
1.
7.0_15\bin目录下,但是所有的JAVA程序的编译和执行都必须在命令行窗口中完成,为了让Windows知道bin目录下有执行的命令,就需要配置path属性范例编写一个简单的Java程序程序编写完成之后,要用javac和java命令进行编译和执行编译javac类名称.java执行java类publicclassHelloWorld{//声明一个类,类名称的命名规范所有单词的首字母必须大写publicstaticvoidmainStringargs[]{//主方法System.out.printHelloWorld!!!;//系统输出,在屏幕上打印}}刚才我们正常执行程序,在执行HelloWorld类的时候在testjava目录下,生成了HelloWorld的class文件
3.
2.2publicclass和class的区别在编写类的时候可以使用两种方法来定义类publicclass类名称class类名称如果一个类声明的时候使用了publicclass进行声明,则类名称必须与文件名称完全一致publicclassHelloDemo{//声明一个类,类名称的命名规范所有单词的首字母必须大写publicstaticvoidmainStringargs[]{//主方法System.out.printHelloWorld!!!;//系统输出,在屏幕上打印}}使用class进行声明的时候,可以编译执行此类使用了publicclass进行声明,类名称是HelloDemo,但是文件名称是HelloWorld.java所以此时编译将产生以下问题以上的错误信息表示因为使用的是publicclass声明,所以类名称应该与文件名保持一致,也就是说,我们应该用HelloDemo.java来为文件命名如果类的声明采用了class则类名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的类名称在一个*.java的文件中,只能有一个publicclass的声明,但是允许有多个class的声明
3.
2.3一个小的注意事项System.out.print属于完成屏幕打印的功能,如果后面加上一个“ln”则表示输出之后换行publicclassHelloWorld{//声明一个类,类名称的命名规范所有单词的首字母必须大写publicstaticvoidmainStringargs[]{//主方法System.out.printlnHelloWorld!!!;System.out.printlnHelloWorld!!!;//系统输出,在屏幕上打印}}Java中类名称、变量名等都有标识符的规范由字母、数字、下划线、$(以后在文件名称上看到有$符号的,则在程序中一律使用“.”来表示)组成,其中不能以数字开头,不能是java中的保留字关于保留字,java中一共存在49个保留字,关于保留字有一些说明JAVA产生的时候就预留了两个保留字,goto,constJDK
1.4时增加了assert保留字JDK
1.5时增加了enum保留字在java中以下的内容不属于保留字,但是是有意义的名称ture,false,null所有的保留字大家没必要都记住
3.
2.4数据类型的划分Java中的数据类型主要划分为两类基本数据类型数值型整数byteshortintlong小数floatdouble字符型:char布尔型:boolean,取值只能是true或false引用数据类型实际上就类似于C语言的指针操作,传递的是内存的空间地址数组类接口
3.
2.5数字的操作中会存在数据的溢出任何一种数据类型都有其最大的取值,如果已经是最大的值,则加1后变成最小值,最小值减1之后变成最大值publicclassSimpleDemo{//声明一个类,类名称的命名规范所有单词的首字母大写publicstaticvoidmainStringargs[]{//主方法intmax=Integer.MAX_VALUE;//求出整型的最大值intmin=Integer.MIN_VALUE;//求出整型的最小值System.out.printlnint的最大值+max;System.out.printlnint的最大值+1+max+1;System.out.printlnint的最小值+min;System.out.printlnint的最小值-1+min-1;}}
3.
2.6数据的默认类型在java中,一个整型数字的默认类型是int型一个小数的默认类型是double型Double的取值要比float要打,所以会出现丢失精度的问题,此时,可以用以下方式来解决publicclassSimpleDemo2{//声明一个类,类名称的命名规范所有单词的首字母必须大写publicstaticvoidmainStringargs[]{//主方法doublex=
30.3;//声明小数floaty=
30.3f;//声明小数}}
3.
2.7数据类型的转换在Java中存在以下的数据类型的转换操作Char——int互相转换,转换成ASCII码;publicclassSimpleDemo03{//声明一个类,类名称的命名规范所有单词的首字母大写publicstaticvoidmainStringargs[]{//主方法charc1=a;//使用”“括起来表示字符intx1=c1;//将char变为int型x1++;//自增charc2=charx1;//将int--char,进行强制转换System.out.printlnc2;}};byte—short—int—longint—float—doubledouble的数据长度是最大的,可以装下全宇宙所有的数据但是转换的时候有一点需要特别注意如果我们碰到的是字符串,则所有类型都向字符串转换publicclassSimpleDemo04{//声明一个类,类名称的命名规范所有单词的首字母大写publicstaticvoidmainStringargs[]{//主方法Stringstr=hello;//表示字符串inti=10;System.out.printlnstr+i+20;}};此时并没有执行加法操作,而是将全部的数字变成字符串,使用“+”完成字符串的连接操作System.out.println1l+11;
3.3循环控制任何语言的循环控制的基本代码都是一致的分支结构if、if…elseif….else循环结构while、do…while、for循环控制break、continue
3.4数组数组是属于引用型的数据类型,使用的时候需要开辟内存空间的声明时直接开辟内存空间数据类型数组名称[]=new数据类型[长度];如inti[]=newint
[10];数据类型[]数组名称=new数据类型[长度];分步声明声明数组数据类型数组名称[]=null;如inti[]=null;i=newint
[10];实例化数组数组名称=new数据类型[长度];关键字new只要一出现,则肯定表示数据类型是引用的数据类型,要进行堆-栈空间的开辟范例声明一个数组publicclassArrayDemo01{publicstaticvoidmainStringargs[]{inti[]=newint
[10];//开辟了10个空间大小的数组System.out.print数组开辟之后的内容;forintx=0;xi.length;x++{System.out.printi[x]+、;}}}publicclassArrayDemo01{publicstaticvoidmainStringargs[]{inti[]=newint
[10];//开辟了10个空间大小的数组System.out.print数组开辟之后的内容;forintx=0;xi.length;x++{System.out.printi[x]+、;}i
[0]=30;//为第一个元素赋值i
[9]=60;//为最后一个元素赋值System.out.print\n数组赋值之后的内容;forintx=0;xi.length;x++{System.out.printi[x]+、;}}};开辟的内容都用默认值表示,如果想要为数组的元素赋值,则需要通过下面的方式来进行访问开辟栈内存空间Intscore[]=null;开辟栈内存空间的意义在于,就相当于表示一个人的名字开辟堆内存空间score=newint
[3];数组只有开辟了堆内存空间之后才可以使用之前的代码数组的操作属于动态初始化,因为我们在开辟数组的时候并不知道数组中的具体内容是多少,而只是采用了默认值表示,所以,我们还可以采用另一种方式叫做静态初始化的操作数据类型数组名称[]={若干取值,…};范例使用静态初始化完成publicclassArrayDemo02{publicstaticvoidmainStringargs[]{inti[]={123467};//此时属于静态初始化System.out.print数组开辟之后的内容;forintx=0;xi.length;x++{System.out.printi[x]+、;}}};之前的数组都属于一维数组动态初始化数据类型数组名[][]=new数据类型[行的个数][列的个数]静态初始化数据类型数组名[][]={{112233},{212223}};范例二维数组publicclassArrayDemo03{publicstaticvoidmainStringargs[]{inti[][]={{12}{234}{34567}};//此时属于静态初始化System.out.print数组开辟之后的内容;forintx=0;xi.length;x++{forinty=0;yi[x].length;y++{System.out.printi[x][y]+、;}System.out.println;}}};
3.5方法方法就是一段可以重复调用的代码段,但是,现在的方法是使用主方法直接调用的,所以,定义格式为publicstatic返回值类型|void方法名称([参数列表]){[return返回内容;]}范例publicclassMethodDemo01{publicstaticvoidmainStringargs[]{print;//调用方法print;//调用方法print;//调用方法print;//调用方法}publicstaticvoidprint{System.out.printlnHelloWorld!!!;}};以上的代码在类中定义了一个print方法,之后我们在主方法中连续重复调用了四次,所以输出了四条语句Void表示这个方法是没有任何的返回值类型,不需要使用return语句(判断题)范例完成一个加法操作publicclassMethodDemo02{publicstaticvoidmainStringargs[]{System.out.printlnadd1020;System.out.printlnadd2020;}publicstaticintaddintxinty{inttemp=x+y;returntemp;}};在方法的使用中,还存在一种概念,叫方法的重载重载指的是方法名称相同,但是参数的类型或者个数可以不同(判断题)publicclassMethodDemo03{publicstaticvoidmainStringargs[]{System.out.printlnadd1020;System.out.printlnadd202010;System.out.printlnadd
20.01f
20.05f;}publicstaticintaddintxinty{inttemp=x+y;returntemp;}publicstaticintaddintxintyintz{inttemp=x+y+z;returntemp;}publicstaticfloataddfloatxfloaty{floattemp=x+y;returntemp;}};实际上,重载的概念大家一直在接触,System.out.print可以接收任意类型的参数,所以此方法也属于重载,但在使用重载的时候一定要注意,重载看的不是方法的返回值类型,而是参数的类型或个数在方法的使用过程中还可以使用return来结束一个方法的操作,当执行到return的时候会直接返回到方法的调用处继续执行publicclassMethodDemo04{publicstaticvoidmainStringargs[]{fun10;fun3;}publicstaticvoidfunintx{System.out.println进入方法;ifx==3{return;}System.out.println结束方法;}}。