




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础一 Java平台概述1.Java特点A.简单:语言本身既容易学,又容易使用,而且功能强大。B.面向对象:Java是“纯”面向对象的语言。其特征是:没有全局变量和全局函数那样的概念。面向对象的编程更符合人们的思维方式。C.与平台无关:这是Java的最大优势,即所谓的” Write Once , Run Anywhere”,这个特点也称为“可移植性(universality)”。D.解释型:源代码编译之后生成“字节码”文件,然后由JVM解释执行E.多线程:内置多线程支持F.垃圾回收机制(garbage collection): 用以自动回收内存垃圾。G.安全性(security): Java特有的沙箱(Sandbox)机制保证了这种网络语言的安全性。同时它删除了C+语言中复杂而且容易造成错误的指针,它的Java Applet在客户端运行时也受到限制,从而保证了程序运行的安全性。H.效率稍低。健壮性、安全性、平台无关性、可移植性等方面的提高总是要以牺牲性能为代价的,Java程序的解释执行的效率也要低于直接执行编译后的源码的效率。可谓“鱼与熊掌不可兼得”,但是Java采用了一些很好的措施来弥补这些性能上的差距I.不提供对硬件的直接操作2. Java的三种平台Java平台主要由java虚拟机(JVM,java virtual machine)和应用程序接口(java api,javaapplication program interface)组成.JVM实际上是运行在操作系统上的一种程序,其主要作用是对java字节码进行解释并执行。目前有三个版本:Java2 微型版(Java2 Micro Edition,简称JavaME)Java2 平台标准版(Java 2 Standard Edition,简称JavaSE)Java2 平台企业版(Java 2 Enterprise Edition,简称JavaEE). 3. JDKJDK,即Java Develop Kit,它是Java的基础。Java程序编译,运行依赖于它。JDK版本:JDK V1.2 JDK V1.3 JDK V1.4 JDK V1.5,JDK V6.04. Java应用程序常用开发工具Borland Jbuilder2006 ,IBM Eclipse,Sun NetBeans 二 Java数据类型1.基本数据类型8种基本数据类型类型描述boolean在内存中占2个字节。取值为:true,falsechar2字节(java 使用 Unicode字符集处理文字)整型数:可以用十进制数八进制数(用0 做前缀)十六进制数表示(用0X 做前缀)int4字节(-21474836482147483647)long8字节short2字节(-32768+32767)byte1字节(-128+127)浮点数(实型数)float4字节double8字节说明:A. char类型采用Unicode编码。一个汉字仍为一个字符。Char实际上也是整型量,Unicode表中的字符就是一个字符常量,必须用单引号括起,例如:B 大,7 等B.要获得一个字符在Unicode字符集中的编码,必须用强制类型转换。例如:(int)Y 如果要获得一个0-65535中的数所表示的Unicode表中相应位置的字符,必须使用char进行转换。例如:(char)203202对象类型有多种形式,如 String 型对象,用于表示字符串,它是一个与字符串有关的类String s1=”你好”;String s2=new String(“Hello!”);3. 类型转换:3.1隐式类型转换byte-short-int-long-float-doublechar-int-long-float-double3.2强制类型转换int k=(int)3.7; /舍去小数int m=(int)Math.sqrt(2*365.0); /舍去小数3.3String 类型对象与基本数据类型间的运算String 对象 可以进行 “+” (字符串拼接运算),其结果仍然为String,即字符串+ 整数(实数) =字符串例如:int b=256;System.out.println(“b之值为:”+b+”。”);输出结果为:b之值为:256。三 字面量和变量(一)。字面量1整数字面量任何整数值都是一个整数字面量。常用表示方法:十进制表示法(默认)(基为0-9) 1,56,92八进制表示法(基为0-7),用前导0 表示:0712,05,013十六进制表示法(基为09 A-F) 用前导0X 表示:0x12 0xFB,0XFF2浮点数字面量表示有小数的十进制数。可以用标准计数法或科学计数法表示。Java中的浮点型字面量默认是double,要指定一个float类型,必须在字面量之后增加后缀F(或f),当然,double 字面量也可以显式增加后缀D(或d)3字符字面量java字符字面量编码为unicode.,是16位的值,可以转换为整数并可以用整数运算符,如+ - 运算符。字符字面量用单引号括起来,如 A 大.其它表示法如下表所示:字符转移序列表示反斜杠表示单引号”表示双引号r表示回车n表示换行f表示换页t表示水平制表符(对应键盘TAB键)b表示退格键ddd八进制字符uxxxx十六进制(unicode码)字符(XXXX)(二)。变量变量是基本的存储单元,由一个标识符,一个类型和一个可选的初始值组合而成。1 变量标识符的组成:变量标识符由 字母,数字,下划线,$ 组成,但不能以数字开头,并且不能与java保留字相同。如:MyClass My2,_width 2变量的声明:type 如:int a;3变量初始化= 如:int B=154 String myName=”Jon”4变量作用域java变量主要有三种作用域:类作用域,方法作用域和块作用域,类作用域变量在整个类的所有方法中均可使用;方法作用域变量仅在本方法中可用。块作用域,其标志为” ”, 仅在本块中可用。四运算符和表达式:1运算符类型运算符一元运算符+ - + - ()算术运算符* / %(取模) + -移位运算符(右移) (左边空出的位用0填补)关系运算符 = = !=位逻辑运算符(按操作数的二进制逐位运算)&(与) (异或) | (或) (求反)短路逻辑运算符!(非) &(与) | (或)条件运算符(三目运算符)?:赋值运算符= += -= *= /= %= &= |= =对象运算符instanceof说明:A. (右移) 运算符运算法则:当被移动的数为正数,则左边填 0,否则,左边填 1左移”相当于/2.B. 运算符 instanceof 用于判断某个对象是否为某个类的实例,返回值为boolean。例如String s;Boolean b;则 s instanceof Boolean 返回falses instanceof Strng 返回trueC. 短路逻辑运算符(&(与) | (或) !(非) 按照优先级计算,当计算到能够确定该逻辑表达式的值时,停止后面的运算。例如:A=100 & B=100 为假,无论B 的值为何值,此时整个逻辑表达式的值都为假。因此,B = =100 & B999五程序控制语句编程语言使用控制语句来产生执行流,从而完成程序状态的改变。Java控制语句包含选择,迭代,跳转。1选择语句:1.1 if 语句if() else 说明:A. 可以是单条语句,也可以是多条语句,但必须用大括弧括起来。B. if 语句可以嵌套,即if 语句体包含if 语句if(a0) b=12; /没有else 语句!if(a0) b=12;elsex=x+5;y*=65+7;/嵌套if语句if(I=100)if(j100) c=d;else a=c;elsea=d;1.2switch语句switch()case value1:case value2:。default:说明:1 可以是:byte ,short,int 或char类型或枚举类型2 当表达式与某个case 匹配时,则执行该 case 语句序列,只有所有的case 都不匹配时,才执行default语句序列;如果没有任何匹配的case,同时又没有default语句,则什么也不做。3在switch语句中可以使用break语句跳出switch体。4Switch语句只能测试相等的情况,if语句可以测试表达式的任何情况5通常在多分支的情况下使用 switch语句。for(int I=0;I12;I+)Switch(I)Case 0:Case 1:Case 2:Case 3:Case 4:System.out.println(“小于 5 的整数”);Break;Case 5:Case 6:Case 7:Case 8:Case 9:System.out.println(“大于 5 并且小于10的整数”);Break;Default:System.out.println(“大于等于10的整数”);/end switch/end for2迭代语句又称循环语句。包含下列几种:while 循环do while循环for 循环2.1. while 循环while() 语句;说明:2.1.1. 必须为boolean 2.1.2.语句如果为多条,则必须用大括弧括起来。2.1.3. 语句可以为空。例如:int iSum=0;int I=10;while(I0)iSum+=I;i-;int I=10,j=25;while(+I-j);System.out.println(“I=”+i);2.2.do while循环do/语句while()这个循环至少要执行一次,一般用于命令选择。Int n=10;doSystem.out.println(“Tick “+n);while(-n0)2.3.for 循环for(;)/body;说明:A. 如果只有一条语句,则大括弧可以省略。B. 在部分 可以声明变量, 变量作用域仅在for内C. 在部分和部分可以包含一条以上的语句,用”,”分隔., 变量作用域仅在for内。D. ,部分均可省略,这样可构成无限循环。例如:int num;boolean isPrime=true;for(int I=2;I=num/2;I+)if(num % I=0)isPrime=false;break;if(isPrime=true)System.out.println(“Prime”);ElseSystem.out.println(“Not Prime!”);3. for循环的for_each版本for(type : )语句块;说明:1 用于对集合进行遍历。2 Type 必须与中的元素类型相同。3 用于只向前的迭代。4 不能改变中元素的值。5 可以用于多维数组上的迭代例如:int num=1,2,3,4,5,9,7;int iSum=0;for(int x:num)if(x % 2=0)iSum+=x;int sum=0;int nums =new int53;/二维数组for(int I=0;I3;I+)for(int j=0;j5;j+)numsIj=(I+1)*(j+1);for(int x:nums)for(int y:x)sum+=y;System.out.println(“Summation:”+sum);/数组查找4跳转语句:java支持三种跳转语句:break continue return,这些语句把控制转移到程序的另一部分。4.1. break 语句有三种用途。终止switch语句中的语句序列,可以用于退出循环;可用于goto语句的一种替代形式。4.1.1. 形式1:break 用于跳出当前循环(跳出一层).4.1.2. 形式2:break 用于跳转到 处。 是一个带有冒号(:)后缀的标识符。且标识一块语句(用大括弧括起来),最重要的作用是从最内层循环退出Boolean t=true;First:second:third:System.out.println(“Before the break.”);If(t) break second;System.out.println(“this wont execute.”);System.out.println(“Before the break.”);System.out.println(“This is after second block.”);/从最内层循环跳到最外层循环outer: for(int I=0;I3;I+)System.out.println(“Pass “+I+”:”);For(j=0;j100;j+)If(j=0) break outer;System.out.println(j+“ .”);System.out.println(“This will not print.”);System.out.println(“Loops complete.”);4.2.continue语句4.2.1.形式1continue 忽略该语句后面的所有语句,回到循环迭代处。4.2.1.形式2continue 用于跳转到 所在的那个循环语句的迭代处。例如:输出乘法9*9表outer:for(int I=0;I10;I+)for(int j=0;jI)System.out.println();/空行Continue outer;/end ifSystem.out.println(“ “+(I*j);/end for(j)/end for(i)System.out.println();00 10 2 40 3 6 90 9 18 27 36 45 54 63 72 81private void Continue2()outer:for(int a=1;a=3;a+)for(int b=1;b=2;b+)if(a=2)continue outer;System.out.println(a+ +b);/end for(b)System.out.println(你好 +a);/end for(a)/输出:3 13 2你好 3/求素数public void OutputPrime()final int Upper2=10;outer:for(int a=2;a=Upper2;a+)for(int b=2;b=a-1;b+)if(a % b=0)continue outer; /a 不是素数,则转到outer,处理下一个整数/end for(b)System.out.print(a+ );/输出素数a/输出结果:3 5 7/break public void Break2()Random r=new Random();int a=new int35;/产生随机整数数组for(int i=0;i3;i+)for(int j=0;j5;j+)aij=r.nextInt(20);int i,j=-1;int iSum=0;outer:for(i=0;i3;i+)for(j=0;j=50)break outer;/直接跳到最外层循环/end for(j)/end for(i)System.out.println(i+- +j+ 和+iSum);4.3.return 语句return 表达式 /从一个方法中返回(表达式的值)return x+y*3; return (b=5); /返回布尔量return /练习:0. 计算 7+77+777+。的前10项之和。1编写一个程序,用以判断一个5位数n各位数字的奇偶性,并求出他们的和。2根据给出的三门课程的成绩,求出平均分,总分和评语(70为优秀,其余为普通)3. 假设数组A 中的数据已按由小到大的顺序存放,设计一程序把数组A中相同的数据删得只剩一个,然后以每行4个数据的格式输出A数组.4给定一个二维数组B,编程找出每行的最大值,最小值,并将其保存到对应的二维数组s中即第0行中的最大值,最小值放入s00,s01, 第1行中的最大值,最小值放入s10,s11.3 根据下列数据特点,用函数为各元素赋值,生成一个字符型二维数组,然后输出数组各元素。ABCDEFGHIJCDEFGHIJKLEFGHIJKLMNGHIJKLMNOPIJKLMNOPQR4 根据下列数据特点,用函数为各元素赋值,生成一个字符型二维数组,然后输出数组各元素。12345234563456745678567895. 创建一个整型数组f,它有25个元素,元素之间符合下列规律,然后输出它们f0=1,f1=2fI=fI-2+fI-1 (I=2)6.根据上一题要求,编写一段程序输出fn的值(其中n 为任意数)。要求使用数组和不使用数组完成。7. 编写程序实现下列目的:在一个9位整数n (123456789L)中,将其各位上的数都按素数、合数、其它归类,并用字符* 表示各类数出现的频率。输出结果如下:素数 *合数 *其它 *8. 编写程序输出1100间的整数,并且满足条件:它是3的倍数,但不是5的倍数,也不是9的倍数。9. 设计一个函数,输出下列结果*10 输出100 以内的所有素数11一个数如果恰好等于它的因子之和,这个数称为”完数”, 编写程序求1-m之间的所有”完数”。12编写程序,输出满足1+2+3+n=9999的最大正整数n.13. 编写一个方法,输出11-1000 之间满足下列条件的数:该数及该数的平方,3次方均为回文数(用两种算法实现)。14设计一个方法,输入学生成绩,按下列条件输出等级。90成绩100 优80成绩90 良0成绩80 中0成绩3)是否为素数的方法是:把N作为被除数,将2到(N-1)之间的各个数轮流作为除数,如果都不能整除,则N为素数。算法可以表述为如下过程:(1).输入N的值(2).I=2(3).N被I除(4).如果余数为0,表示N能被I整除,则输出”N不是素数”,程序结束。否则继续(5).I=I+1(6).如果I=N-1,返回到(3),否则输出”N是素数”,程序结束。六.数组数组是一组相同类型的元素的集合,类型可以是基本数据类型或引用类型数组在Java中是一个对象,不是基本数据类型。数组可以是一维的也可以是多维的,其中二维数组每一行的元素可以相同也可以不相同。如果每一行的元素不相同,这样的数组又称为”锯齿”数组1声明:1.1. 一维数组声明。type 或 type 如: int BObject obj; /对象数组。如:class Student /声明类Student stArray=new Student40;1.2. 二维数组声明type 或 type 如:double X2实例化2.1.一维数组实例化=new type; int x;x=new int20; 或 int y=new int10;2.2.二维数组实例化可以将二维数组看成是一维数组的数组,即一维数组的每一个元素又是一个一维数组。=new type;double d;/实例化数组对象本身d=new double32 /3行2列d=new double3; /锯齿数组d0=new double5; d1=new double3; d2=new double15;3初始化3.1. type x=; int a=1,5,3,9,200; /a的长度由编译器根据初始值的个数确定3.2.type y=new type;double m=new double32.0,45.1,60;3.3.type kk=,float ff=1,2,3,5,3,2,0,1,8,1,1,3/定义4*3的二维数组3.4.锯齿数组type A=null;A=new type长度;/确定行长度A0=new type长度; /确定列长度例如:long B;B=new long3;/数组共有3行B0=new long2;/第0行有2个元素B1=new long4;/第1行有4个元素B2=new long7;/第2行有7个元素4. 数组元素的访问index 数组首元素的索引为 0, 其后的元素的索引依次为1,2,3,例如: int m=2,190,5 m1 读取索引为1的元素,m0=100 将10 写入索引为0的元素,5. 数组常用属性:int length 表示数组长度。注意:数组一旦定义,其长度不能再改变!。例如double a=new double5, 如果访问 a5=99 则是非法的!说明:对于二维锯齿数组,可以使用length获得第index行的长度,从而可以动态访问它。例如:long B;B=new long3;/数组共有3行B0=new long2;/第0行有2个元素B1=new long4;/第1行有4个元素B2=new long7;/第2行有7个元素for(int row=0;rowB.length;row+)for(int col=0;colBrow.length;col+)/访问元素System.out.println(Browcol);6对象数组:对象数组又称引用型数组,即引用的集合。例1:Strng S; /声明数组引用变量S=new String3; /创建具有三个元素的字符串数组,并将其赋值给引用变量 S数组中的每一个元素都是对字符串对象的一个引用。S0=”Java语言”; S1=”webspher”; S2=”C+程序设计”7.关于数组的一些说明:7.1. 将赋值号”=”用于基本数据类型时,是将值赋值给变量,但它用于对象时,则是将对象指定给引用名称来引用。可以将同一个对象指定给两个引用名称,当对象的值由其中一个引用名称进行操作而变更时,另一个引用名称所引用到的值也会变动。7.2. 对于对象数组,首先要为数组本身分配空间,然后再为每一个数组元素分配空间。7.3. 数组元素的遍历可以使用for(Element : ArrayObject)进行快速访问。例如int kk=new int15;for(int m: kk)/处理元素mString allName=new String10 ;AllName0=new String(“1111”);.For(String name : allName)/处理元素double dd=new double56;for(double rowArray :dd)for(double ele : rowArray)/处理数组元素例2:public class ManString name;int age;public static void main(Strng args)Man manArray=new Man2;/创建对象数组manArray(本身)manArray0=new Man();/实例化数组元素0manA=”江泽民”;manArray0.age=79;/为数组元素赋值manArray1=new Man();/实例化数组元素1manA=”太阳”;manArray1.age=23; /为数组元素赋值for(int I=0;ImanArray.length;I+)System.out.println(“name=”+manArrayI.name+”,”+”age=”+manArrayI.age);输出函数:System.out.print(任意数据类型) /输出任意数据类型的数据System.out.println(任意数据类型) /输出完任意数据类型的数据之后,再换行。思考:1定义一个满足下列条件的类,并创建其对象,然后进行测试。此学生类拥有名字,学号,分数(为一个数组,表示5门课的成绩)属性,并且,此类接受分数输入的方法,计算并返回总分及平均分数的方法。5 用数组实现冒泡排序。6 编写一个显示任意数组的方法(包括一维数组和二维数组)7 给定一个数组,编程找出其中的最大值和最小值,并交换他们的位置。8 设计一个方法,输入整数”星期几”,返回它的字符串表示。例如:输入1,返回星期一(至少用两种方法实现)。9 设计一个二维锯齿数组,用来表示杨辉三角形的前10行。Java应用程序的创建、编译、运行一开发运行一个Java应用程序,需要具备的支撑软件主要是安装J2SDK, 如果应用程序使用.Jar包文件,则需要安装第三方.Jar包文件。1 安装J2SDK1.1.安装java2 SDK首先安装java 程序开发工具java2 sdk (这是sun公司免费的),可从Sun公司的网站下载java 2 SDK V1.4 或V1.5版本,选取一个完整的压缩文件(包括)JVM虚拟机1.2.下载完毕后,点击相应的.exe 文件,进行解压缩。1.3.。以下按提示进行即可。2配置环境变量2.1.设置环境变量JAVA_HOME=c:JSDK1.5;2.2.设置环境变量(类路径)CLASSPATH CLASSPATH=.;%JAVA_HOME%jrelib;%JAVA_HOME%libtools.jar2.3.在环境变量PATH最前面添加下列内容: %JAVA_HOME %bin;2.4.测试:在命令行窗口键入java,如果出现帮助信息界面,则配制成功。二用Java开发Java应用程序的一般步骤1 创建应用程序源文件1.1. 源文件编辑器:可以使用任何文本编辑器:如 记事本,EditPlus UltraEdit 等1.2. 源文件命名规则:一个java源文件由若干个类组成,且只能有一个类是public类。如果有一个public 类,那么源文件的名字必须与这类的名字完全相同,扩展名是java.; 如果源文件没有public 类,那么源文件的名字只要和某个类的名字相同,扩展名是java就可以了。2 编译Java 源文件2.1. 设置环境变量 path 使之包含%JAVA_HOME %bin路径2.2切换到命令行方式:进入java源文件所在的文件夹。Javac .java3 运行java应用程序3.1. 切换到命令行方式3.2. 进入.class文件所在的包文件夹的上一级文件夹。然后键入:java 包名.4运行java程序的其它方式4.1运行.class文件java options class args.例如:java myHello 大连 /带参数 大连 运行myHello.class 程序4.2运行.jar文件java -jar options jarFile args.例如:java -jar myHello.jar /运行myHello.jar 程序4.3常用options说明:4.3.1指定类(.class)文件路径-cp classpath4.3.2。 设置java运行时堆大小 -Xms设置java最小堆尺寸.-Xmx设置java最大堆尺寸例如 java -jar -Xms256m -Xmx1024m LoadData.jar运行java程序LoadData.jar,并设置初始堆大小为512,最大堆大小为1024.类型包装器Wrapper Class在Java中使用基本数据类型来保存语言支持的基本数据类型,是出于性能方面的考虑,因为,使用对象类型会引起系统较大的开销。类型包装器提供了将基本数据类型封装在一个对象内部的机制。类型包装器有:Double,Float,Long,Integer,Short,Byte,Character,Boolean.一 字符包装器- Character构造函数:Character(char c) /ch 用于指定要由创建的Character对象包装字符操作函数:char charValue(); 获得包装器内的char 的值:二 布尔量包装器- Boolean构造函数:Boolean (boolean boolValue ) / boolValue 只能取 true,falseBoolean (String boolString )操作函数:boolean booleanValue(); 获得包装器内的boolean 的值三 数字类型包装器这是使用最多的包装器,它们是 Byte,Short,Integer,Long,Float,Double,所有数字类型的包装器都继承自Number抽象类。1构造函数:Double(double d)Float(float f)Long(long l)Integer(int I)Short(short s)Byte(byte b)2操作函数:double doubleValue()float floatValue()long longValue()int intValue()short
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智慧水务行业当前竞争格局与未来发展趋势分析报告
- 2025年消费金融行业当前竞争格局与未来发展趋势分析报告
- 支护工操作规程课件
- 2024年人工智能及应用公需科目试题及答案
- (2025)物业管理考试题库及参考答案
- 2025年中华护理学会团标标准解读试题(真题及答案)
- 2024年网络数据安全维护知识考试题库与答案
- 2025年浙医二院抗菌药物处方权培训考试试题及答案(内科卷)
- 2024压力性损伤考试题及答案
- 摄影课件的模式
- 完整版交管12123驾照学法减分复习【满分必刷】
- 电网继电保护与故障定位
- 心理危机干预指导手册
- 2022年版初中物理课程标准解读-课件
- 华为MA5800配置及调试手册
- 幼小衔接班20以内加减法练习【完整版】
- 电子秤校准培训课件
- 输配电绝缘子维护与更换
- 基本公共卫生服务项目工作存在问题整改情况范文(通用6篇)
- 销售人员要具备的基本素质
- 运维项目进度计划
评论
0/150
提交评论