基础javase notes计算机概述dos命令环境变量_第1页
基础javase notes计算机概述dos命令环境变量_第2页
基础javase notes计算机概述dos命令环境变量_第3页
基础javase notes计算机概述dos命令环境变量_第4页
基础javase notes计算机概述dos命令环境变量_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上课遇到问题,先做好笔记,下课提问晚自修练习上课的内容上14:00-14:30(每天按排3人,并自做PPT材料 一、计算机概述(了解何软件的计算机称为机。常见的形式有台式计算机、笔记本计算机、大型计算机CPU、主板、内存、电源、主机箱、硬盘、显卡、键盘、鼠标,显示DOS(DiskOperatingSystemWindowsLinuxUnixMacAndroid应用软件 QQ聊天YY语言扫软件开发(理解DOS命令:需要一些常见DOS命令(掌握d:回车盘符切换 mdmakedirectory):rd(removedirectory):cd(changedirectory)改变指定 cd..:退回到上一级cd\:deldelete):删除文件,删除一堆后缀名一样的文件*.txtexit:dos命令行clsclearscreen)三、Java语言概述(了解1995523日,JAVA1996年,1997JDK1.0,JDK1.11999年,JAVA2000年,JDK1.4200493018:00PM,J2SE1.5Java示该版本的重要性,J2SE1.5JavaSE2005年,JAVAJAVAEE,JAVASE200612月,SUN2009年04月20日,Oracle以74亿收购Sun。取得java 20109月,JDK7.020117月,甲骨文公司发布java7的正式版。(2)Java有很多小特点,重点有两个开源,跨平台(一次编译,到处运行(3)Java语言是跨平台的,请问是如何保证的呢?(理解)四、JDK,JRE,JVM的作用及关系(掌握JRE:java运行环境。 JRE=java虚拟机+类库(辅助java虚拟机运行的文件)JDK:java开发工具集。 JDK= java开发工具+jre.notepadnotepad++EclipseMyEclipse五、JDK(掌握jdk 介绍bin:java sum公司自带的一个数据库。 java虚拟机的文件夹lib src: 源代码文件。java语言是开源的。java开发工具:javac.exe:启动javajava源文件进行编译。javacjava源文件java.exe:启动javaclass文件。 class文件六、环境变量path环境变量(掌握path保证javac命令可以在任意 同理可以配置qq等pathB:classpath环境变量(理解classpath保证class文件可以在任 下运classpathsetsetset变量名=set变量名=setpath=新值七、注意事项A:JDK,JRE,JVM分别是什么B:Java语言是跨平台的吗?JVM是跨平台的吗?C:path和classpath的区别path环境变量中配置的路径去找classpathjava关键字、标识符、注释、常量、变量、一、关键字(掌握JavaA:gotoconst二、标识符(掌握B:不能是java常见名规则(见名知意 tD:三、注释(掌握软件:用户帮助文档 文档注释与多行注释的区别:文档注释的内容可以用于生成一个开发者文档。jajace如何使用javadocjavadocjavadoc-d java的源文件。软件 数据+指 +说明文java程序模拟QQjava编译器会忽略注释 实现方式://注释的内容 实现方式:/* 文档注释 实现方式:/**注释的内容一般单行注释都是在写在代码的右边,}该类是用于模拟QQ@version 0416java基础班publicclassQQ的登陆过程:要用户用户名与校验用户名与publicstaticvoidmain(String[]{System.out.println("请输入用户名与");System.out.println("校验用户名与");System.out.println("展示好友列表..");}}四、数据类型(掌握A:基本数据类型:48java┏数值型━┳━整数型:byteshortint ┗━浮点型:float 数据类型 java的数据类型分基本数据类型(原始数据类型)和基本八大类,图中可以很清楚的看到;这种类型的数据变量在之后java就会立刻分配给他内存空间。如:shorta;java会在可使用的内存空间寻找一个占两个字节的块给aC/C++(具体的值),这类变量时不会分配内存 整数 1个字节,最小值:-128 2个字节,最小值:-32768,最大值:32767 4个字节,最小值 ,最大值 8个字节最小值 最大 8个字节,最小值:4.9E-324,最大值:1.7976931348623157E308 2个字节,最小值:0,最大值:65535 一个字节或者节。(java规范 如果boolean用于一个基本类型变量时是占节,如果用于一个数据类

整数默认是intdouble。长整数要加L或者l。Ff五、数据类型转换(掌握booleanB:byte,short,char--int--long--float--C:byte,short,char之间不相互转换,直接转成int目标数据类型被转换的数据floatf1=12.345f;floatf2=byteb1=3;byteb2=byteb3=b1+b2;byteb4=3+4;byteb=(byte)130;ASCIISystem.out.println("o"+'a'+1);System.out.println('a'+1+"o");七、作业(刘意546对应的二进制,八进制,十六进制的值。OK了。不用浪费太多时间。byteb1=3,b2=4,b; =八、作业(钟太潋 oworld打印根据java自动类型提升规则,同样道理char提升为int。就把’a’代表的数字体现了出来。a表示的是97 97+1就是98 ++,在后的区别++前先自增,后运算。后++shorts3ss+2s+=2,s=s+2;由于s+2运算时会自动提升式的类型,所以结果是int型,再赋值给short类型shorts1=1;s1+=1;由于+=java语言规定的运算符,java编译器会对它进行特“&”和“&&”一、运算符(掌握B:+b:**a++或者++ainta=intb=inta=intb=intx10;10intxshorts=1;s=s+1;shorts=1;s+=1;C:千万==写成了&:false|:true则^:相同则falsetrue。!:true则falsefalse则位运算符(了解B:**采用第变a,b,ab:28truefalse。true1就是结果。二、键盘录入(掌握import位置:在classScannersc=newintx=三、流程控制语句四、if语句(掌握if(比较表达式语句体}true还是true,就执行语句体B:if(比较表达式}else}true还是if(1}elseif(}else}1true还是

D:elseif,是不会出现比较表达式的。C:获取三个数中的最大值(if语句的嵌套)F:xy的值并输出if所有的三元运算符能够实现的,if语句的第二种格式都能实现。五、练习键盘录入一个分数,然后根据分数输出对应的等级。100-90A等级89-80B等 E级importjava.util.Scanner;classIfDemo{publicstaticvoidmain(String[]args)Scannersc=new//intscore=sc.nextInt();if(score<0||score>100)}elseif(score>=90&&score<=100}elseif(score>=80&&score<90}elseif(score>=70&&score<80}elseif(score>=60&&score<70}else}}}键盘录入用户名与,如果用户名与分别是root,admin,那么提示登录成功,importjava.util.Scanner;classDemo2{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);Stringuser=sc.next();System.out.println("请输入:");Stringpassword=sc.next();if("root".equals(user)&&"admin".equals(password)){ }}}六、作业(3:shorts1ss1;有没有问题?如果有怎么解决?shorts=1;s+=1;有没有问题?如果有怎么解决?intx=1,y=if(x++==2&{x}intx=1,y=if(x++==2&&{x}intx=1,y=if(x++==1|{x}intx=1,y=if(x++==1||{x}booleanb=elseif(b)elseif(!b)13:编写代码实现如下内容:if语句实现 A B C D60以下E14:把今天讲过的其他案例再练一、顺序语句(if…else、switch) 执行语句}elseif(}if第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。条件表达式无论写成什么样子,只看最终的结构是否是true或者falseswitchswitch(表达式case1:1;case2;n+1;}switch:switch语句。JDK5以后可以是枚举JDK7break:switch语句switch1,switch语句选择的类型只有四种:byte,short,int,char2,case之间与defaultcase,没有匹配的casedefault3,switch语句停止的条件是遇到了break关键字或者结束switch4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。5,switchcase中的值必须要与switch表达式的值具有相同的数据类型。而且switchbyte吗?long吗?String吗?可以,不可以,JDK7以后可以执行流程注意事项B:default可以省略吗caseC:break可以省略吗会出现一个现象:case。E:switch语句的结束条件a:break就结束了Strings=sc.nextLine();ifswitchboolean类型的判断for,while,do...while掌握for}如果这里是true如果这里是false,循环就结束e:ba:boolean类型a:输出10 b:1-10c:10-1d:1-10e:1-100的和,1-100的偶数和,1-100f:5=万位十位=个位+++=whilewhile(判断条件语句}}while循环可以和forB:whileforwhileC:forwhilefor语句的那个控制条件变量,在循环结束后不能在使用了。while的可以继续使用。forwhile适合次数不明确的D:do...whiledodo{a:do...whileb:for和while必须先判断条件是否是true体循环使用的注意事项(死循环break、continue、return(掌握B:outer:for(intouter:for(intinter:inter:for(intj=0;j<5;j++){breakouter;}}for(intx=1;x<=10;x++){if(x%3==0){//}}2次:Java基础班7次:Java基础班13次:JavaB:return,程序就不会在继续往后执行。一、函数jvm调用。voidreturnreturn关键二、数组publicpublicstaticvoidselectSort(int[]{for(intx=0;x<arr.length-1;{for(inty=x+1y<arr.lengthy++)//为什么yx+1?//都用x{{inttemp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}}}publicstaticvoidbubbleSort(int[]{for(intx=0;x<arr.length-1;{{{inttemp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}}publicstaticinthalfSeach(int[]arr,int{intmin,mid,max;min=0;max=arr.length-1;mid=(max+min)/2;{{min=mid+1;elseif(key<arr[mid])max=mid-1;return-mid=}return}publicstaticvoidreverseArray(int[]{for(intstart=0,end=arr.length-1;start<end;start++,end--{}}publicstaticvoidswap(int[]arr,inta,int{inttemp=arr[a];arr[a]=arr[b];arr[b]=temp;}遍历:toString() 排序:sort() 一、面向对象A.B. A.成员变量:它属于对象,它随着对象的创建而创建,随着对象的而局部变量:voidshow(intfor(intfor(int}}}这时候id,i,j者是在方法内的,全是局部变j当里层forfor结束,jifor循环执行它的生命周期开始,当外层for结束,jid在方法被调用时开始,方法结束时,id.位置成员变量属于对象,它在堆内,堆内的实体,当没有指向其时,才回收清理局部变量存在栈内存中,当不在使用时,马上就会被释byte、short、int、longbooleanString类类型数组四、构造函数:构造函数是在对象建立时由jvm调用,给对象初始化。一般函数是对象建立后,当 五、构造代码块给对象进行初始化。对象立就运行并且优先于构造函数1:构造代码块和构造函数的区别,构造代码块是给所有对象进行统一初始化,构造函数六、thisthis关键字this问题:存在着同名的成员变量与局部变量时,在方法内部默认是局部变量的数据,如this一个类存在着同名的成员变量与局部变量时,在方法内部默认是局部变量的数据,我们可以通过this关键字指定成员变量的数据。thisthisthis七、super关键字super关键字代表的是父类的空间supersuper关键字可以在子super、this关键字调用调用构造函数的时候,不能同时出现在同一个构造函数。(因八、staticthissuperstatic随着类的加载而加载,静态会随着类的加载而加载,随着类的而。说1:类变量生命周期最长,随着类的而1:优点:对对象的共享数据进行单独空间的,节省空间例如7(n份)非静态成员变量是在每个对象中都一份数(1份)静态成员变量只会在方法中一份数据非静态成员变量是在堆内存中。 。static2:定义一个求数组和的功能函数1遍历2classArraysprivateArrays()}1:publicstaticvoidprint(int[]arr)for(intx=0;x<arr.length;x++)if(x!=(arr.length-1))System.out.print(arr[x]+}else}}}2:publicstaticintgetSum(int[]arr)intsum=for(intx=0;x<arr.length;x++){sum+=arr[x];}return}3:publicstaticintgetMax(int[]arr)intmax=for(intx=0;x<arr.length;x++)if(arr[max]<arr[x]){max=x;}}return}4:publicstaticintgetIndexMax(int[]arr)intmax=for(intx=0;x<arr.length;x++)if(arr[max]<arr[x]){max=x;}}return}5:publicstaticintgetIndex(int[]arr,intsrc)intindex=-for(intx=0;x<arr.length;x++)if(arr[x]==src){index=x;}}return}publicstaticvoidtest(int[]arr)for(intx=0;x<arr.length-1;x++)if(arr[x]>arr[x+1]){inttemp=arr[x+1];arr[x+1]=arr[x];arr[x]=temp;}}}publicstaticvoidselectSort(int[]arr)for(intx=0;x<arr.length-1;x++)for(inty=1+x;y<arr.length;y++)if(arr[x]>arr[y]){inttemp=arr[y];arr[y]=arr[x];arr[x]=temp;}}}}//publicstaticvoidreverseSort(int[]arr)intstart=intend=arr.length-for(intx=0;x<arr.length;x++)if(start<end)inttem=arr[start];arr[start]=arr[end];arr[end]=tem;}}}publicstaticinthalfSearch(intkey,int[]arr)intmin=intmax=arr.length-intmid=while(min<max)mid=(min+max)/if(key>arr[mid]){min=mid+1;}elseif(key<arr[mid]){max=mid-1;}elsereturn}}return-}}classDemo6publicstaticvoidmain(String[]args)int[]arr={3,4,5,2,3,7,4}}九、mainpublicstaticvoidmain(String[]public保证该类在任何情况下,jvm都对其方法可见static被jvm调用,不用创建对象,直接类名。voidjvmjvm返回值。mainjvmStringargs可以在dos窗口中执行javaDemo5 oworld 给类Demo5的main方法传递2个参数,参数与参数之间通过空格隔开。可以在dos窗口中执行java 给类Demo5的main方法传递2个十、instanceofinstanceof关键字的使用格式:对象instanceof类名instanceof十一、final(最终finalfinalfinal关键字修饰一个类型变量时,其重新指向新的对象final修饰一个类的时候,该类不能被继承。常量的修饰符:publicstaticfinal.十二、superthissuperthis语句为什么不能同时存在,super 一 (抽象 修饰 修饰final不能与static二、interfaceinterface接口名}classimplements接口}A.类实现接口可以通过implements实现,实现接必须把接口中的所有方法实现,publicstaticfinal的,即静态常量既然是常量,那么定接口中的成员变量都是属于常量,默认的修饰符publicstatic接口中的方法都是抽象的方法,默认的修饰符: java三、多态多态:父类类型变量指向了子类的对象或者是接口的类型变量指向了接口实现类的对象。(一个对象具备多种形态)总结:多态情况下,子父类存在同名的成员时,默认都会父类的成员.只有存在非静成员变量:编译看左边,运行看左边(型变量所属的类。静态成员函数:编译看左边,运行看左边多态用于形式参数类型的时候,可以接收类型的参数classpublicintage=publicvoidteach()}}classextends{publicintage=20;publicvoidteach()}publicvoidyGame()}}//向上爹k爹=newSystem.out.println(k爹.age40k爹.teach();//讲解论语//k爹.yGame();//这是儿子才能做//向下k=()k爹;System.out.println(k.age20k.teach();//讲解论语k.yGame();四、作业一、内部类内部类的class文件名:外部类$内部类.class成员内部类的方式(普通的方法方式一:在外部类提供一个方法创建内部类的对象进行。格式:外部类.内部类变量名new外部类().new内部类,比如是一个类有心脏,心脏的功能在直接的其他内容。这时就将心脏定义在类中,作为内部类存在。,外部类内部类的属publicpublicclassOuterintclassintpublicvoidprint(){}}publicvoidnew}publicstaticvoidmain(String[]args)new }}}成员内部类细privateprivateclass//intpublicvoidprint(){}}classclassstaticclassinter{staticintnum2=2;publicvoidprint(){}}}publicclassTestpublicstaticvoidmain(String[]args){Oeroi=newOer();}}2、如果内部类中包含有静态成员,那么java规定内部类必须为静态的静态内部类的形式:Outer.Innerin=newOuter.Inner();特点:如果内部类中包含有静态成员,那么java规定内部类必须为静的Outer.Innerin=new内部类与外部类存在同名的成员时,在内部类中默认是内部类的成员,私有的成员内部类只能通过在外部类提供一个公共的方法进行。在其他二、局部内部类A.注意:局部内部类只能所在函数的f /*内部类定义局部位置上,只能该局部中被final修饰的常量classintpublicvoidmethod(finalintfinalintclassvoidshow(){}}new}}publicclassTestpublicstaticvoidmain(String[]args)new}}三、内部new父类或者接口(){执行代码A.interfaceinterface}voidclass/*classpublicvoidshow(){}}publicvoidprint(){newInter().show();}publicvoidnewpublicvoidshow() }}}publicclassTestpublicstaticvoidmain(String[]args)new}}B.show1、show2方法。内部类的实现classclassclasspublicvoidshow2(){System.out.println("show1");}publicvoidshow1(){System.out.println("show2");}}publicvoidnewnew}}C.使用内部类实interfaceinterface}voidvoidclassInnerinner=newInner()publicvoidshow2(){System.out.println("show1");}publicvoidshow1(){System.out.println("show2");}publicvoidprint(){}}}publicclassTestpublicstaticvoidmain(String[]args)new}}1.使用内部类时,如果需要调用内部类的两个方法或者两个方法以上。可以使四、Throwablejava|——Throwable(java的错误和异常ThrowablepublicString)publicvoidpublicpublicclassTestpublicpublicstaticvoidmain(String[]args)Throwableable=newThrowable("异常信息");System.out.println(able.toString输出该异常的类名System.out.println(able.getMessage(输出异常的信息able.printStackTrace();//打印栈信息}}java.lang.Throwable异常信息publicvoidatpublicStringjava.lang.Throwable异常信息publicString包机制、修饰符、jar一、包机制在java中采用包机制处理开发者定义的类名问题。package包名。javacPackDemo1.javajavaPackDemo1在当 下找不到有pack目录,更加找不到 下面自己在当 Javapagk.PackageDemo1命令。(包其实就是文件夹). 防止类文件包机制的问题解决:import语句。import包名.;使用*classimport语句可以是多条二、修饰protectedprivate他类包中的子类也可以三、JarjarjavaactiveFile,zipjarclassjar命令.1:jar工具存放于jdk的bin 2:jar工具:主要用于对class文件进行打包(压缩)3:dos中输入jar查看帮助day10cntest.jar文件(cnjavacd编译class文件夹)jarcvftest.jar详细命令1:jarcftest.jarcn在当 2:jarcvftest.jarcn3:jartftest.jar显示jar文件中包含的所 4:jartvftest.jar显示jar文件中包含的所有 5:jarxftest.jar解压test.jar到当前 6:jarxvftest.jar解压test.jar到当前 ,显示详细信息7:可以使用WinRaR进行jar解压8test2.jarjarcvftest2.jarDemo3.classDemo4.class2jdkrt.jarjartvfrt.jar3:jartvfrt.jar>d:\rt.txt---------| ---------------|Error 错误,错误一般都是由于jvm或者是硬件的问题。一般都不会通过---------------|Exceptiontry-catch}catch(){}trytry-catch块外面的代码可try块中出现了异常的代码,那么在一个try块中出现异常代码后面的2.(throw如果一个方法的内部抛出了一个编译时异常对象,那么必须要在方法抛出如果调用了一个抛出编译时异常类型的方法,那么调用者必须要进行处理,否一个方法如果遇到了throw关键字,那么该方马上停止执行throw与throwsthrow关键字一次只能抛出一个异常对象,throws一次可以抛出多种异常类型-----|Throwable----------|Error错误错误一般都是由于jvm或者是硬件的问题。一般不通过代码处----------|Exception---------------|运行时异常(RunTimeException以及RuntimeException子类) 方法内部抛出了一个运行时异常对象,那么方法可以抛出也可以不抛出---------------|编译时异常(非运行时异常,受检异常) finallyfinallytry块使用,System.exit(0);//0jvm0jvmObject、一、ObjecttoString方法(略publicpublicStringint{publicbooleanequals(Objectobj){if(objinstanceof )obj;}returntrue;}return}publicinthashCode()return}}二、StringStringString(byte[]bytes)使用一个byte数组构建一个字符串.byte数组的是字符对应的String(byte[]bytes,intoffset,intlength) byte字节数组构建一个字符串对象,[] String(char[]value,intoffset,intcount) 使用一个char字符数组构建一个字符串对象,int charcharAt(intindex)(角标越界)intindexOf(Stringstr)获取特定字符的位置(overload)intlastIndexOf(intch)booleanendsWith(Stringstr)booleancontains(CharSequences)booleanequals(ObjectanObject)booleanequalsIgnoreCase(StringanotherString)char Stringrece(charoldChar,charnewChar)替Stringsplit(Stringregex)Stringsubstring(intStringsubstring(intbeginIndexintendIndex)截取字串StringtoUpperCase()转大写StringtoLowerCase()Stringtrim()去除空格1:自己实现一个trim练习2:获取上传文件名"D:\\ 练习3:将字符串对象中的字符反序。三、StringBuffer增 删delete(intstart,intend)deleteCharAt(intindex)查toString()indexOf(Stringstr)改rece(intstartintendString 使用给定String中的字符替换此序列的子字符串startend1setCharAt(intindexchar reverse()一、StringBuffer字符串缓冲类:字符的一个集合容器。StringBuffer?StringBuilderStringBufferStringBuilder相同点:都是字符串缓冲类,底层都是了一个字符数组用于数据的。StringBufferStringBuilder是线程非安全的,操作StringBufferjdk1.0StringBuilderjdk1.5的时候出现。推荐使用:StringBuilder二、Systemarraycopy(ObjectsrcintsrcPosObjectdestintdestPosint src-srcPos-dest-destPos-length-要的数组元素的数量 exit(int jvm,0表示正常退出jvm0 建议jvm尽快的启动回收器回收 StringjavaHome=PropertiespSystem.getProperties获取所有的系统属性//StringosName=Runtime三、date类(淘汰Datedate=newDate();Calendarcalendar=Calendar.getInstance(); SimpleDateFormatdateFormat=newSimpleDateFormat("yy年MM月ddStringtext=dateFormat.format(newDate());Stringtext2="1111年11月11日 Datedate=dateFormat.parse(text2);Mathabs(double ceil(doublea) 向上取整。floor(doublea)向下取整round(doublea)四舍五入Randomrandom=new"+;//1、实现一个四位的chararra','A','中','雨','共StringBuildersb=newStringBuilder();Randomrandom=newRandom();for(inti=0;i<4;i++){intindex=random.nextInt(arr.length);}12-15一、只能同一种类型的元素。除了Object类型的数组以外数组中元素与元间的内存地址是连续的。集合:集合任意对象数据的容器。----------| ----------------|List List----------------|Set SetColllection增加add(E 删除两个集合集元 containsAll(Collection<?>c) 如果此collection包含指定collection中的所有元素,则返回true 如果Collection不包含任何的元素,则返回true,否则返回false. 需求:实现于登陆功能。登陆:提示用户输入用户名与,如果用户名与一致匹配上集合中的某个元素,那么登陆成功。(强制要求使用迭代器去实现)importjava.util.ArrayList;importjava.util.Collection;importjava.util.I importclassEmployeeprivateStringprivateStringpublicEmployee(StringuserName,Stringpassword)this.userName=this.password=}publicEmployee()//TODOAuto-generatedconstructor}publicStringgetUserName()return}publicvoidsetUserName(StringuserName)this.userName=}publicStringgetPassword()return}publicvoidsetPassword(Stringpassword)this.password=}publicStringtoString()return"Employee[userName="+userName+",password="++}}publicclassTest2staticScannerscanner=newstaticCollectionEmployees=newpublicstaticvoidmain(String[]args)while(true)System.out.println("请选择功能:A() Stringoption=scanner.nextLine();}elseif("b".equalsIgnoreCase(option))}else}}}publicstaticvoidreg(){StringuserNamescanner.nextLine();Stringpassword=scanner.nextLine();Employeee=newEmployee(userName,System.out.println("集合的元素}publicstaticvoidlogin(){StringuserName=scanner.nextLine();Stringpassword=scanner.nextLine(); torit=Employees.itor();booleanflag=false;while(it.hasNext())Employeeuser=(Employee)}}}}}---------|Collection-------------| List-------------| Set有序:在集合中所谓的“有序”不是指自然顺序,而是指添加进去的顺序与的顺序一二、Listadd(intindexE addAll(intindex,Collectionremove(int ,set(intindexE get(int indexOf(Object 查找指定元素第一次出现的索引值,回-1表示lastIndexOf(Objecto) 则返回-1表示.subList(intfromIndexint tor add(E set(E publicclassTestpublicstaticvoidmain(String[]args){ArrayListlist=newArrayList();Object[]for(inti=0;i<arr.length;i++){}for(int} torit=list.listI }}}}---------|Collection List------------------|ArrayList ArrayList的底层是了一个Object数组去实现的,特点:查如果操作的数据时查询比较多,增删比较少,这时候则应该使用ArrayList. 比如:图| |Vector了解 SetArrayList0.5倍。classintStringdoublepublicBook(intid,Stringname,doubleprice)this.id=id;=name;this.price=price;}publicStringtoString()return"{书号:this.id+"书名:}publicbooleanequals(Objectobj){Bookbook=(Book)obj;returnthis.id==book.id;}publicinthashCode()return}}publicclassDemo9publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();list.add(newBook(110,"java编程思想",86));list.add(newBook(112,"java技术",64));list.add(newBook(110,"java神书",86));list.add(newBook(119,"深入javaWeb",32));ArrayListnewList=clearRepeat(list);System.out.println("新集合的元素是:newList);}publicstaticArrayListclearRepeat(ArrayListArrayListnewListnewArrayList(); torit= Bookbook=(Book) //,

}}return}}---------|Collection List------------------|ArrayList ArrayList的底层是了一个Object数组去实现的,特点:查------------------|LinkedList |Vector了解 Set三、LinkedList addLast(E removeLast()1堆栈数据结构特点: A.机试题目使用LinkedList模拟堆栈与队列的数据结堆栈数据结构特点:先进后出,后进先出。队列的特点:先进先出,后进后出。//LinkedListpubliclist=new}publicvoidadd(Objecto){}publicObjectreturn}publicintreturn}} 模拟了队列的数据结构方classLinkedListlist list=new}publicvoidadd(Objecto){}publicObjectreturn}publicintreturn}}publicclassDemo11publicstaticvoidmain(StringargsTeamListlist=newTeamList();intsize=for(inti=0;i<size ;i++){}}}四、---------|Collection List------------------|ArrayList ArrayList的底层是了一个Object数组去实现的,特点:查------------------|LinkedList ------------------|Vector(了解 Vector的底层也是使用一个Object数组去实现的,但 Set五、作业练习 classStringintpublic(Stringname,intage)=this.age=}publicStringtoString()return"[name="+name+",age="+age+}}publicclassTestpublicstaticvoidmain(String[]args){LinkedListlist=newLinkedList();list.add(new("",19)); (" (" }publicstaticvoidsort(LinkedListfor(intp1=()list.get(i);p2=()list.get(j);list.set(i,list.set(j,}}}}}练习2:定义一个LinkedList一副牌,再定义一个方法可以洗牌的classStringcolor;StringpublicPoker(Stringcolor,Stringnum)this.color=color;this.num=num;}publicStringtoString()return}}classpublicstaticvoidmain(String[]args){LinkedListlist=createPoker();}publicstaticvoidshufflePoker(LinkedListlist){Randomrandom=newRandom();for(intintindex=random.nextInt(list.size());intindex2=random.nextInt(list.size());Pokerp1=(Poker)list.get(index);Pokerp2=(Poker)list.get(index2);list.set(index,p2);}}publicstaticLinkedListcreatePoker(){LinkedListlist=newLinkedList();String[][]for(intfor(intlist.add(new}}return}publicstaticvoidshow(LinkedListfor(int}}}}classUserStringuserName;Stringpassword;publicUser(StringuserName,Stringpassword)this.userName=this.password=}publicStringtoString()return"User[userName="+userName+",password="+password+}publicbooleanequals(Objectobj)//TODOAuto-generatedmethodstubUseruser=(User)obj;}publicinthashCode()//TODOAuto-generatedmethodreturnthis.userName.hashCode()+}}publicclassTest2publicstaticvoidmain(String[]args){HashSetusers=newHashSet();Scannerscanner=newwhile(true)StringuserNamescanner.next();Stringpassword=scanner.next();if(users.add(newUser(userName,password}else}}}}一、map如果需要成对存在的数据,那么就要使用双列集合----Map集合-----------|Map 实现了Map接口的集合类具备的特点:的数据都是以键值对的形式存在的,键(key)不能重复,值(value)可以重复 | | Map接口的方法增put(KkeyV map集合,keykeynullputAll(Map<?extendsK,?extendsV>删containsKey(Objectkey)get(Objectkey)一、(map集合)----------|Map双列集合的根接口:如果是实现了Map接口的集合类具备的特点:的 底层也是依赖于哈希码去实现的,的位置是根据键的哈希码算 底层也是使用了树数据结构去实现的,特点:是会根据键数据进行排序-----------|HashTable(了解): 底层也使用哈希表实现的,实现原理与HashMap一致,HashMap的原理往HashMap元素的时候,首先hashMap会调用键的hashCode方法得到一个哈希情况一:如果根据键的哈希码值算出的位置目前没有任何元素,那么该元素可以情况二:如果根据键的哈希码值算出的位置目前已经有其他元素了那么还会调equalstrue,那么该元素被视为重复元素,不允许添加,equals方法返回的是false,该元素TreeMap添加元素的时候,如果键不具备自然顺序的特性,那么键所属的类就必Comparable接口。TreeMap添加元素的时候,如果键不具备自然顺序的特性,而且键所属的类就没Comparable接口,那么必须要在创建treeMap对象的时候传入一个比较器对象-----------| ---------------| List------------------|ArrayList底层是了一个Object数组实现的。特点:查询速度快,增删 ------------------|Vector 底层也是了一个Object数组实现的,实现的原理与ArrayList是一致的,但是是线程安全的,操作效率低。---------------| Set 底层是使用了一个哈希表的。特点:存取速度快------------------| 底层是使用了树数据结构实现的,特点:会对到中的元素进行排序.然顺序的特性进行排序。Comparable接口。TreeSet添加元素时,如果元素不具备自然顺序的特性,而且元素所属的类没有Comparable接口,那么就必须要在创建TreeSet对象的时候传入比较器对象。class类名implements}三、CollectionsCollectionCollectionsCOllectionCollections1list 2listintint 4listSetsynchronizedSet(Set<T>s)ListsynchronizedList(List<T>list)forforfor循环的格式: 变量 :遍历的目标}使用增强for循环的前提:只有实现了I ble接口的对象或者是数组对象才能使用。增强for循环要注意的细节:for们手动获取迭代器而已,所以在使用增强for循环的遍历元素的过程中使用集合forfor循环只能用于遍历集合的元素,不能增删元素。而迭代器的遍历方式可以使用迭代器的方法增删元素。forfor循环TreeMap<Integer,String> tree=newTreeMap<Integer,String>();tree.put(110,"");tree.put(109,"tree.put(120,"tree.put(115,"//使用增强for循环遍历map集合、。Set<Entry<Integer,String>>entryes=tree.entrySet();for(Entry<Integer,String>entry: System.out.println("键:"+entry.getKey()+"值:}二、可变参数。数据类型 javajava对于基本类型的数据也使用了对应的类进行了描述,我们把描述基本类型变量的类称 基本数据类型设计出对应的包装类型的好处:可以让基本数据类型也使用上方法,让功

获取而不会创建新的Integer对象。 ---------->把一些常用的数据事先创建好,然后贡献给大家一起使用:享元模式。Integeri1=127;Integeri2=System.out.println("是同一个对象吗 四、枚举.解决方案:自定义类,限制着别人随意创建对象。jdk1.5sun/*classpublicstaticfinalGenderman=newGender("男");publicstaticfinalGenderwomannewGender("女");Stringvalue;privateGender(Stringvalue){this.value=value;}}enumStringprivateGender(Stringthis.value=}}classStringprivate publicGenderget() }publicvoid (Gender) }publicStringtoString()return":"++":"+ }}ctrlshift ctrlshift publicclassDemo6publicstaticvoidmain(String[]args)p=new();="狗娃"; }}五、正则表达式.任何字符(与行结束符可能匹配也可能不匹配\d数字:[0-\D[^0-\s空白字符:\S\w单词字符:[a-zA-Z_0- a-zA-Z0-9\WSystem.out.println(".System.out.println("\\D代表了非数字:"+("@".matches("\\D")));System.out.println("\\s代表了空白字符:"+("\n".matches("\\s")));X?X,一次或一次也没有X*X,零次或多次X+X,一次或多次X{n}X,恰好n次X{n,XnX{n,mXnm:"+("System.out.println("*零次或多次System.out.println("+至少一次System.out.println("{n}n次System.out.println("{n,}n次System.out.println("{n,m}至少出现n~m次:"+ [abca、bc(简单类[^abc]a、bc(否定[a-zA-ZazAZ,两头的字母包括在内(范围一、IOIO流技术:解决设备与设备之间的数据传输问题。 比如:内存-----硬盘 内存, 键盘----->内存IO导出报表,上传大头照、音频文件、切水果 FileFile(Stringpathname)指定文件或者文件夹的路径,创建一个File对象File(Fileparent,Stringchild)指定父路径与子路径构建一个File对象。File(Stringparent,String File 分隔符:System.out.println("存在吗:"+file.exists());File false renameTo(Filedest) true操作文件:如果源文件与目标文件在同一级路径下,那么renameTo方法的作用是重命名, 下,那么renameTo的作用就是剪切。命名,如果源文件夹与目标文件夹不在同一级下,renameTo不起作用(不能用于剪delete()true,失败返回false。deleteOnExit()在虚拟机终止时,请求删除此抽象路径名表示的文件或 是否是一 getAbsolutePath() 0L。 ()staicFile[] 作会返回null。 对(File类实例包含隐藏文件。对于文件这样操作会返回null。A.classJavaFileFilterimplementsFilenameFilter{publicbooleanaccept(Filedir,Stringname){returnname.endsWith(".java");}}publicclassDemo8publicstaticvoidmain(String[]args)FiledirnewFile("F:\\0416\\day02\\代码\\day02");}publicstaticvoidlistJava2(FileFile[]files=dir.listFiles(newJavaFileFilter());for(Filefile:files){}}}疑问:windowswidnows真的在同时运行多个应用程序吗?宏观角度,windows确实在同时运行多个应用程序。cpu在做一个快速的切换动作,由于切换的速度比较快,所以我们没有感进程:正在运行的程序称作为一个进程。进程负责了内存空间的划分。线程:线程负责了代码的执行,线程是进程中的一个代码执行路径。多线程:在一个进程中有多个线程在执行不同的任务代码。java程序在运行的时候,jvmmain方法的代码执行完毕。笔试题目:一个java2个线程,主线线程,回收器线程cpuThreadrunrunrunmainmain方法里面的所run方法中的所有代码。调用线程的start方法开启线程,一个线程一旦开启就会执行runrunrun方法相当于调用了一个普通的方法而一、批处理文件常见批处理文件令echotiltleechooff表示在此语句后所有运行令都不显示命令行本color@与echooff相象但它是加在每个命令行的最前面表示运行时不显示这一行令(只pause运行此句会暂停批处理的执行并在屏幕上显示Pressanykeytocontinue...的提示,等rem表示此命令后的字符为解释行(注释(相当于程序中的注释)或者%注释的内容%%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(Tab)分隔的@ECHO REMsetjava java-classpath.\libarary.jarcn. 二、设计模式单列设计模式懒汉模式–通常被称为延迟加载。注意存程安全问题classclassSingleprivatestaticSinglesnewSingle()privateSingle()}publicstaticSinglegetInstance()return}}classclassprivatestaticSingleprivate}publicstaticSinglesynchronized(single){single=new}}}return}}publicpublicclassDemo1publicstaticvoidmain(StringargsCarbmw=CarFactory("BMW");CarbenzCarFactory("Benz");}publicstaticCarCarFactory(StringcarName)if("BMW".equals(carName))returnnew}elseif("Benz".equals(carName))returnnew}elsethrownewRuntimeException("车型有误}}}classCarvoid}classBMWextendsCar{publicvoidrun(){}}classBenzextendsCarpublicvoidrun(){}}importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;importimportclassprivateintprivateStringpublicStudent(intid,Stringthis.id==}public}publicintgetId()return}publicvoidsetId(intid)this.id=}publicStringgetName()return}publicvoidsetName(Stringname)=}publicStringtoString()returnthis.id+"-}} privateint }publicStringtoString()return}}publicclassDemo1publicstaticvoidmain(String[]args)throwsException{Objecto=getInstance();}publicstaticObjectgetInstance()throwsException{FileReaderfileReader=newFileReader("src/info.txt");BufferedReaderbufferedReader=newBufferedReader(fileReader);Stringline=bufferedReader.readLine();Classclazz=Class.forName(line);Constructorc=clazz.getConstructor(null);Objectc1=c.newInstance(null);String[]datas=Fieldf=clazz.getDeclaredField(datas[0]);f.set(c1,}}return}}有多个观察者时,不可以依赖特定次序SwingGUI框架也是如此。publicpublicclassWeatherStationprivateStringString[weathers下雨","下雪","下冰雹","staticList<BookWeather>list=newRandomrandom=newpublicvoidnewThread(){publicvoidrun()try{}catch(InterruptedExceptione){}}}}publicvoidweatherweathers[random.nextInt(4)];System.out.println("天气:"+weather);}publicStringgetWeather()return}publicpublicimplementsBookWeatherString (S=}privateWeatherStationstation(Stringname,WeatherStationthis.station=}//下雨","","下冰雹","publicvoidnotifyWeather()Stringweather=}elseif("下雪".equals(weather)){System.out.println(name+"");}elseif("下冰雹带着头盔上班"}elseif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论