直通车培训-java复习笔记_第1页
直通车培训-java复习笔记_第2页
直通车培训-java复习笔记_第3页
直通车培训-java复习笔记_第4页
直通车培训-java复习笔记_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

前 3 3运行原 3 3基础知 4配置环 4Java中基本概 4定义,关键字和类 4注释的三种形 4““{} 4标识 5数据类 5命名规 5表达式和控制 6变量和作用 6操作 6数字类型之间的转 7强制类型转 7转换的二种类 7控制 7循环语 8数 8 数 8创建数 9初始化数 9数 9数组拷 10对象和 10面向对象与面向过 10对象的概 成员变量和局部变 成员方 12This关键 12控制 12构造方 13数据和方法的隐藏―――封 13方法的重 14高级语言特 14封装 14继承 15 15父类(SuperClass)和子类(SubClass)的关 16系统构造一个对象的顺 16多态 17方法的覆盖 17多态的分 17运行时多态的三原 18关系运算符 19静态变量,方法和 19Singleton模 21final关键 21final变量不能被改变 21final方法不能被改写 22final类不能被继承 22String 22抽象 23接口(模板方法模式 24Object 26封装 27内部 28内部类的分 28成员内部 28局部内部 29静态内部 29内部 30集 30集合接口类层 31集合类层 32五个最常用的集合类之间的区别和联 32比 34反 36异 36异常的基本概 36捕获异 37处理异 37捕捉多个异 37finally............................................................................................8-异常调用 38异常层 38一些未检查的异 38写你自己的异 38抛出你自己的异 39图形用户接 39线程 10-线程原 10-线程实现的两种形 10-线程的生命周 10-Thread的方 10-共享数据的并发处 10-使用互斥锁的注意事 10-标准I/O流与文 对文件的操 处理跨平台 对象的序列化接 I/O流基 流的分 I/O输入输 前JAVA简单(JavaC++语法的一个“纯净”版本可移植性(一次编译到处运行分布式(Java把打开套接字连接等繁琐的网络任务变得非常容易健壮性(JavaJava采用的指针模型可以消除重写内存和数据的可能多线程(多线程编程的简单性是Java成为流行的服务器端开发语言的主要原安全(用Java可以构建防和防篡改的系统动态(Java运行原先编 *.java文件――――>*.class文运 *.class――加载――>JVM(JAVA虚拟机基础知配置环LINUX系统(修改环境配置文件vi WindowsCLASSPATH=.;Java中基本概在最顶层只包括一个public类型的类/接口,文件名与类/接口名同并以.java作为文件后缀。包(package,在源文件中thisidentify只能放在第一行,且最多只能是一行)一个将类和接口组织在一块的实体,在文件系统中 /文件夹型式定义,关键字和注释的三种形 一或多行注释/**文档注 “{}JavaJava标识遵守JAVA名规范_”或“$数据类8163264-128-2^152^15--2^312^31--2^632^63-2)32643)164) 注:1)char16位整数,String”或“l0前缀为“0x命名规表达式和控制变量和作用类 黙认 '\u0000' *Allreference 操作 正数:>>X2次方 bif(a<3&&(b=a)==0)b数字类型之间的转byte——→short——→int——→char——→int---→float——→long---→long---→int——→注:1)intfloat32float要有几位表示幂的位数,在精度位数上int要小,所以有可能会有损失。longdouble同理;charshort16char0~2^16,的范围为-2^15~2^15-1,charshort强制类型转x=9.997;intnx=(int)x;转换的二种类doublea=1.0fint=‘j’;doubleconverValue(intvalue){returnvalue;}数值计算转换-控制if()…..elsecasevariable:……..casevariable:……..}注解:switch()childbyteshortcharintcasebreak时顺序执行下面的语句。循环语for(inti=0;i<n;i++){}do{} →加分loop:for(inti=0;i<n;i++){for(intbreakloop;//---------------→loop为只能用在循环语句中循环//}}}intx=a+++b++; intx=6;x=~x;//---------------- 6011011001再转成补码(取反加一)10111=-7数数组一组相同类型(可以是类)数据的集合一个数组是一个对象一个数组没有创建一个对象数组能以下列形式int[]i或intCar[]c或Car*C++中只能Car创建数创建基本数据类型数 int[]i=new创建数据类型数组Car[]c=new初始化数初始化、创建、和分int[]i=newint[2];i[0]=0;i[1]=初始化、创建、和在同一时int[]i=Car[]c={newCar(),new数int[][]i1=newint[][]i2=newi2[0]=newint[2],i2[1]=new*C++int[][]=newint[][3];int[][]i1=new数组长 →数组的属性int[]i=newintlen=i.length;//len=5;Student[][]st=newStudent[4][6];len=st.length;//len=4;len=st[0].length;//len=char[]i={'a','b'};i=new char[]i={'a','b'};i=char[]i=newchar[2];i=newchar[]i=newchar[2];i=数组拷System.arrayCopy(Objectsrc,intsrcPos,Objectdest,intdestPos,int对象和Everythingisan为什向对象各司其职各尽所能定义方法:实现定义构造方法:1.分配空间2.初始化属性3.调用某一个构造方法ClassNamecn=newClassName();对象变量:、句柄的是对象的地址(栈空间参数传递:简单类型参数:值传 对象类型参数:地址传属性:隐 方法:该公开的公 方法:可以公对象的概什么是对象:EVERYTHINGISOBJECT(万物皆对象)有什么(属性能够做什么(方法publicclassStudent{privateString privateint privatepublicvoid }成员变量和局部变(New出来的均有初值)null。局部变量不允许范围内定义两个同名变量。实例变量和局部变量允许命名,但在局部变量的作用域内局部变量优先实例变量是使用this.variableName对于型类型变Carcart=newcartcart如果没有New回收会很快回收这个对象简单的收集器原,每个对象都包含了一个计数器,GarbageCollection运行时检查对象的这个计数器收集器会在整个对象列表中移动巡视,一旦它发现其中一个计数成为0,就释放它占据的空间。,成员方 例如:publicStringgetName(){returnname;voidJava该对象的值,方法中并不能改变对象变量,但能通过该变量调用对象的方法This关键this是个隐式参数,代表被构造的对象;publieclass{privateStringpublicvoidsetName(Stringname){ →为成员变量}}*Super关键字也是个参数,代表被构造对象的父类。控制符权 构造方格式为:publicClassName(){}构造方法也可以是其他的限制符――privateprotected private一般用singleton* publicstudent(stringname,int}publicstudent(inta,string}数据和方法的隐藏―――封publicclassprivateString →数据的隐privateintpublicString →方法尽量公return}publicintgetAge(){returnage;}}有些方法也需要隐,比如ClassSingleton{PrivateSingleton(){}PublicstaticSingletonSingleton=new}Returnsingleton;}}方法的重Overloading在一个类中可以定义多个同名方法,各个方法的参数表一定不同。在程序的编译过程中根据变量类型来找相应的方法。Overloading被认为是编译时的多态。Overloading只是为方便程序员编程的解决方法,编译之后的方法名publicvoidaa(inta,doubleb)throwsIOException{}privateintaa(doublea,intb){}protecteddoubleaa(Stringa,Stringb){}overloading。teach(intteach(Stringa){}OverloadingSystem.out.println(“%5.2f,%10.3f”,num,num2); 高级语言特事物的内部实现细节隐对外提供一致的公共的接口――间接隐藏数可JAVA继承特子类能否到父类的成员private:本类内部可以不能继承到子(default):本类内部可以,同包其他类也可以;能否继承到子类?不一定protected:本类内部可以,不同包的子类也可以,同包其他类也可以public:任何地方都可以能继承到子类从严到宽强制类型转 和子类父类的非属性(不同包的子类无法default修饰符)和方法可以默认继ClassSonextends}如果子类父类的有参构造方法必须在子类构造方法第一行使用super(参数)PublicclassBMWcarextendsCar{PublicBMWcar(){Super(intalength);super是一个对父类的}}系统构造一个对象的顺1(上一层类、2super()this()}A(int}多态方法的覆盖1.对于方法的限制修饰词,子类方法要比父类的权限更高。父类为public,那么子类为private则出现错误。多态的分Carc=newCar编译时类型 Bus运行时类型 实际运行是heep中的对象,调用实际的方法。猫,小鸟,狗都是动物,都可以安上动物的InterfaceClassCarimplementsAnimal{}ClassBirdimplementsAnimal{}ClassDogimplementsAnimal{}Animala=newCar();Animalb=newAnimalc=newpublicclassAnimal{publicstaticvoidmain(String[]}}classMyClass{priavatevoidm();}classSubextendsMyClass(){publicvoidm();}classMyClass{ void}classSubextendsMyClass(){publicvoidm();}5.0新classMyClass{privatefinalvoidm();}classSubextendsMyClass(){publicvoidm();}运行时多态对象不变(改变的是认识对于对象的调用只能限于编译时类型的方法,如调用运行时类型方法报错。ala=new)aldog。对于语句:Dogd=(Dog)a。将d强制为a类型,此时d为Dog(),此时d就可以调用运行时类型。注意:ad指向同一对象。关系运算符上面语句是判定a是否可以贴Animal。如果可以贴则返回true,否则返回ainstanceofAnimalainstanceofDogTrue,Animala=newCar();If(ainstanceofDog){Dogb=(Dog)a;}elseif(ainstanceofCar){Carc=(Car)a}Staticintdatadata为类变量,为一个类的共享变量,属于整个类。ClassM{staticintdata;}Mm1=newM();Mm2=newM();m1.data++1,m2.data1Static定义的是一块为整个类共有的一块区域其变量可以通过类名去类名.变量名与通过对象变量是等价的Publicstaticvoid表明此类方法为类方法(静态方法this.datasuper.data是不可用的。JVM可以直接调用它,主方法为静态方猜想:JVM ClassName通过命令行的”java类名”取得,所以类名不用加.class扩展名public publicstaticvoidmain(String[]arg){Supers=newSub();}}class{staticpublicvoidshow(){System.out.println("in}classSubextends{staticpublicvoidshow(){System.out.println("in}执行结果是 in静态内部 →只能是成员内部classpublicstaticclass}只被执行一次Publicstaticvoidmain(String[]args){System.out.println(C);//CarClassJVM并执行静态代//}Singleton模StaticSingletonSingleton私有的构造―――singletonnew利用类属性(静态变量)在系统中唯一的特性,建立这样一个唯一的并控制这个所指的空间是不变的。publicclassConnectionFactory{privatestaticConnectionconn;privateconn=new}publicConnectiongetInstance(){returnconn;}}publicclassConnectionFactory{privatestaticConnectionconn;conn=new}publicstaticConnectiongetInstance(){returnconn;}}final关键final变量不能被改变final修饰一个属性(变量)的时候,此时的属性成为常量。JAVA命名规范中常量全部字母大写:FinalintJAVApublicstaticfinal的组合方式对常量进行标识(固定格式。Final对于final变量,如果在的时候和构造的时候均不进行赋值,编译出错final变量进行赋值的时候,此时在构造之前系统设置的默常量(这里的常量指的是实例常量:即成员变量)①在初始化的时候通过显式赋值。FinalintClassFinalintPublic}}final方法不能被改写finalPublicfinalvoid为了保证方法的一致性(即不被改变final定义。final定义的方法,那么在子类中继承同一个方法。如果一个方法前有修饰词private或static,则系统会自动面加上final。即privatestaticfinal方法。Final和 final类不能被继承finalfinalfinal保StringfinalStringString的:publicfinalclassString无法继承,强不变模字符串池―――――――――――――>池化思 数据库连接池,EJBpublicclassTestStringpublicstaticvoidmain(String[]args){Strings1=newString(“abc”);Strings2=s1;System.out.println(s1);System.out.println(s1==s2);}}heapintern()返回池地址应该使用StringBuffer(线程安全的)或者StringBuilder(线程不安全的Stringstr=”o:nihao:happy”;}抽象(抽象)如果将一个类 一个类中包含有抽象方法必须为抽象类抽象类不能实例化,但仍可以 用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,privatevoidprint(){};此语句表示方法的空实现。voidprint()(模板方法模式接口是抽象类的另外一种形式(没有实例变量的抽象类在一个接口中所有方法都是抽象方法final注:1)接口中的方法自动被置为public,因经,在接口中方法并不需要提public关键字。但在实现接口时,必须把方法为public接 抽象 普 常 存常标 没有方法,属性,只为了做编译类型的标简单工厂模式(接口和多态的实际使用publicinterfaceCar{publicvoidbrake();publicvoidgrade();publicvoidengineer();}publicclassBMWimplementsCar{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicvoidbrake()//TODOAuto-generatedmethodstubSystem.out.println("BMWcar'sbrake()");}publicvoidengineer()//TODOAuto-generatedmethodstubSystem.out.println("BMWcar'sengieer()");}publicvoidgrade()//TODOAuto-generatedmethodstubSystem.out.println("BMWcar'sgreade()");}*@param}PublicclassBanzimplements}PublicclassPublicstaticCarfactory(Stringname){ReturnnewBMWCar();返回一个}ReturnnewBanzCar();}}}toString方法的问题,而是用接口作为编译时类型能接口就是接口,尽管本质上是抽象类,但是总归不是类,接口没有父类,Object类JVM会解析类型为CONSTANT_InterfaceMethodref_info的常量池的,会按java.lang.Object因此,toString方法,用反射是看不到这个方法的,而是虚拟机在作方法调用连接时,Object类中的方法.虚拟机就是这么工作的.ObjectObject的方法finalize方法:当一个对象被回收的时候调用的方法toString()toString()。toString()。StringA=newString(“o”);StringB=newString(“o”);因为此时AB中存的是不同的对象JAVA中的特殊类,Stringfinal类,一个字符串的值不可重复。因此在JAVAVM(虚拟机)中有一个字符串池,专门用来字符串。如果遇到Stringa=”o”时(注意没有NEW,不是创建新串系统在字符串池中寻找中然后将”o”在字符串池中的地址返回a如果系统再遇到Stringb=”o”,此时系统可以在字符串池中找到“o”则会把地址返回b此时a与b为相同。Stringa=”o”;true。故如果要比较两个字符串是否相同(而不是他们的地址是否相同a调equal:equala.equal(b)abstudenta=new的简洁,便于命名规范和划分层次结构PUBLICDEFAUT*JAVApublieclass内部类的分内部类(图形是要用到,必须掌握成员内部在内部类中实例变量:this.属在内部类外部类的实例变量:外部类名.this.属性。在外部类的外部内部类,使用out.inner.内部类作为外部类的成员,可以外部类的私有成员或属性(即使将外部类为PRIVATE,但是对于处于其内部的内部类还是可见的)用内部类定义在外部类中不可的属性。这样就在外部类中实现了比外部类的private还要小的权限。outerinner的内部类。编译完成后outer.classouter$inner.class两类。Outero=newOuter();局部内部局部内部类不仅可以外部类实例变量,但可以外部类的局部常量在类外不可直接局部内部类(保证局部内部类对外是不可见的。静态内部static定义。静态内部类只能外部类的静态成员Outer.Innerin=newprivate来进行定义。class{}interfaceMachine{}robotclassRobotextendsPeopleimplementinterfaceMachine{void}{void}classRobotextends{privateclassMachineHeartimplements{publicvoidrun(){System.out.println("heart}publicvoidrun(){System.out.println("Robotrun");}MachinegetMachine(){returnnewMachineHeart();}}class{publicstaticvoidmain(String[]{Robotrobot=newRobot();Machinem=robot.getMachine();}}内部内部类是一种特殊的局部内部类,它是通过类实现接口IAIAI=new注:一个内部类一定是在new的后面,用其隐含实现一个接口或实现一个因内部类无构造方法,所以其使用范围非常的有限。集List:有顺序的,元素可以重复 排序:Comparable 特点:查询效率高,增删效率低LinkedList:底层向循环链表实现的Vector:List特点:重量级,占据的系统开销线程安HashSetSet接口equalshashCode方法返回相同的整数不同对象哈希码尽量保证不同(提高效率)SortedSetSet唯一性保证:根据排序规则,compareTo0,就可以认定两个对象Map:元素是键值对key:唯一,不可重复value:可重复遍历:先迭代遍历key的集合,再根据key得到value 线程不安全允许key或者value是nullHashtable:重量级线程安全不允许key或者value是Properties:Hashtable的子类,keyvalueSortedMapkey集合是指一个对象可以容纳了多个对象(不是,这个集合对象主要用来管理一系列相似的对象。集合接口类package↑↑↑||Set:集合类中不允许有重复对象SortedSet:Set接口同,但元素按升序排列List:Map:(key-value对)了唯一关键字辨识和对应的值SortedMap:Map集合类层↑↑↑Collection接口的方法:add(Objecto)addAll(Collectionc)contains(Objecto)containsAll(Collectionc)remove(Objecto)removeAll(Collectionc)equals(Objecto)toArray(Object[]五个最常用的集合类之间的区别和ArrayList: HashTable:ObjectArrayList具有数组的查询速度快的优点以及增删速度LinkedListArrayListLinkedList(与ArrayListVector)Vector(保证线程的安全。面试经验(知识点java.util.stack(stack即为堆栈)Vectorstack的父类是最不应该为Vector的。因为Vector的底层是数组Vectorget方法(意味着它可能访pushgetStack类以后不要轻易使用。Set-HashSet(interatorHashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不Objectfinalize(),toString(),equals()hashCode()。HashSet底层用的也是数组。add(Objecto)hashCode:inthc=o.hashCode();hashCode为整数值。n6I=0a[0]I=1,位置。如果equals()返回的值为true,则说明数据重复。如果equals()返回的值为hashCode不同。如果我们能够使两个相同的对象具有相同hashcode,才能在equals()返回为真。studenthashcode。因为String类是自动覆盖的,所以当比较String类的对象的时候,就不会出现有string对象的情况。JDKhashCodehashSethashcode()equals(),hashcodeequals()返回值为equals(),从而影响程序执行的效率。我们要保证相同对象的返回的hashCodehashCode尽可能不同(因为数组的边界性,hashCode还是可能相同的publicintreturn}这个例子保证了相同和的记录返回的hashCode是相同的hashSethashSet的底层是数组,其查询效率非常高。而且在增加和删除的时候由于运用hashCode的比较开确定添加元素的位置,所以不存在元素的偏移,所以效率hashSet查询和删除和增加元素的效率都非常高。数相同的情况就越小。HashSet这种算建立许多无用的空间。比Collections类(工具类―――全是static方法)PublicstaticintbinarySearch(Listlist,Objectkey)PublicstaticvoidSort(List paratorcom)Publicstaticvoidsort(Listlist)ComparatorIntcompare(Objecta,Objectb)Booleanequals(Objecto)importjava.util.*;publicclass publicstaticvoidmain(String[]arg){ArrayListal=newArrayList();p1=new("dudi");p2=new("cony");p3=new("aihao");for(Iteratorit=al.iterator();it.hasNext();){p=()it.next();}}}class {publicStringpublic(Stringname){=name;}publicintcompare(Objecta,Objectif(ainstanceof&&binstanceof){pa=()a;pb=()b; }return}publicbooleanequals(Objecta){return}

PublicintcompareTo(ObjectClassimplements PublicintcompareTo(Objecto){Comparablec1=(Comparable)this;Comparablec2=(Comparable)o; }}}MainCollections.sort(list*注意:程序员和类库之间是的关系,而不是上下级关系,以前的类可以是通过接口调用后来的类。7.11.反 Constructorcon=c.getConstructor(String.class)Objecto=con.newInstance(“liucy”);ClassnewClass=Student.class; Objecto=newClass.newInstance();//产生对象MethodnewMethodnewClass.getDeclaredMethod("study");//得到这个类的方确定一个对象的类获得一个类的修改符、变量、方法、构器函数、和父类的相类信息找出哪些常量和方法是从一个接口的创建一个在运行时才知道名称的类调用对象的方法异异常的基本概异常事件改变程序流程当一个异常事件发生时,一个异常被抛出exceptionexceptionhandler捕获异常捕获异try/catch的代码块trycatchtry块中的其他代码catchtrycatch如try块内抛出的异常没有在catch从句中指定,则该方立即退出处理异1.如何控制try的范围:根据操作的连动性和相关性,如果前面的程序代码块抛try中。throw(消极)trycatch(积极)excepiton或者RuntimeException对子类方法抛出的异常出父类方法throws指令的范围。如父类方法不捕捉多个异catch从句catchcatch从句内容建议按异常类型的子类->catchfinallyfinally从句中的代码;finally{异常调用哪个方法调用的代码发生异常,返回到调用方法的地方main异常层答:1)于Error的类代表不常用的环境(通常是硬件层面Error中恢复正常所有的Java异常都于RuntimeExcepiton也称为未检查异常未检查异常无须捕获↑↑ 一些未检查的异答:1) 如:除java.lang.NullPointerExceptionReferences便使用java.lang.ArrayIndexoutofBoundsException如:调用一个有十个元素的Array的第十一个元素的内容java.lang.NumberFORMatException写你自己的异答:1)ExceptionException的一个子类衍生出自2)习惯为每一个异常类提供一个默认的构造器以及一个包含详细信息的构抛出你自己的异答:1)throws修饰符,以通知调用者可能会抛出一个2)图形用户接GUI设置事件 流式布 Panel的默 东西南北中Frame JButton:按钮 JPopup:弹出式菜显示JoptionPane里面有很多静态方法可以弹出线程原OSCPUThread 注意:凡是JVM外部的资源时,都不能直接的,都需要一个的对java.lang.Thread:classMyThreadextendspublicvoid notifySleep子线程结Blockedinobject’slock或OtherwiseRunNew}}publicclassTestThread{publicstaticvoidmain(){Threadt1=newMythread();}}java.lang.RunnableClassMyThread implementsRunnable{ voidrun(){}}publicstaticvoidRunnablemyThread=newMyThread();Threadt=newThread(myThread);}start方法时,JVMOS线程的生命周7(有的书上也只有认为前五种状态:而将被调度程序选一条真理 只有runable状态的线程才有机会执行代码Thread的方publicstaticvoidsleep(longthrows括号中以毫秒为单位,使线程停止一段时间,间隔期满后,线程不一定立即恢复Catch(InterruptedExceptione){e.printStackTrace(e);}Publicfinalvoidjoin()throwsPublicstaticvoidOSPublicfinalBoolean共享数据的并发处两个线程修改共享资源时会出现数据的不一致为避免这种现象采用对的线monitor(锁标记记时才能这个资源,没有锁标记便进入锁池。Synchronizedpublicvoidpush(charc){}}Synchronizedpublicsynchronizedvoidpush(charc)}Synchronizedpool使用互斥锁的注意事ClassPublicvoid}Publicsyncronizedvoid}}ClassBoyextendsThread{Publicvoidrun(){}}统一排列锁顺序(解决不同方法中对多个共享资源的1的方法2的方法2.线程间通信(也就是线程间的相互协调pool使用Object类中wait()的方法,在运行状态中,线程调用wait(),此时表示线程CPU的占用,同时进入这个对象的等待池。等待池notifyAl():将从等待池中移走所有等待那个对象的线程并放到锁池中,只有锁)而中断的地方开始继续运行wait()CPU的占用noif():()断的地方开始继续运行java.ioVectorHashTable之所以是线程安全的,是因为每个方法synchronized修饰。Static方法可以加synchronized,锁的是类对象。但是Vector是jdk1.0 ArrayList是jdk1.2所以实际应用还是使一个柜台一定数量的产品,I/O流与文对文件的操File类(java.io.File)可表示文件或者 (在JAVA中文件和 File下的方法是对磁盘上的文件进行磁盘操作,但是无法文件的内容JAVA中是两个不同的概念。前者是OS的文件系统中,随着虚拟机的关闭,这个创建的对象也就了。而创建一个文件才是在系统中例如:Filef=newFile(“11.txt”);//11.txt //FileBooleancreateNewFile创建文件Booleanmkdir()//创建Booleanmkdirs(Booleandelete()BooleandeleteOnExit();在进程退出的时候删除文件,这样的操作通常用在临时String[]List():返回当前File对象下所以显文件 名(相对路径File[]ListFiles():返回当前File对象所有Files对象,可以用getName()来到 还是文件String File String exists()处理跨平台对于命令:Filef2=newOS的文件系统的分隔符是不相同。filesepartor属性,返回当前平台文件分隔符。FilenewD=newFile("aa"+File.separator+"bb"+File.separator+"cc");FilenewF=newFile(newD,"mudi.txt");}catch(Exception对象的序列化接Serializable接口没有方法,是标识接口。Serializable有些临时变量生命周期不需要超过虚拟机的生命周期,需要加上:transient关键字,这个属性不被序列化。I/O流基Input/Output:指出了JVM的边界,与外界进行数据交换。注意:输入/JVM流的分抽象父类:BufferedInputStreamByteArrayInputStreamDataInputStreamJAVAFileInputStreamIOFilterInputStreamPipedInputStream管道流 print()和RandomAccessFile支持随机文件抽象父类:Reader,Writer I/O输入输出OutputStreamOutputStreamos=null;Stringa="o";byte[]b=a.getBytes();os=newFileOutputStream("D:\\aa.txt");}catch(IOExceptionioe){try{}catch(IOExceptione)//TODOAuto-generatedcatchblock}}}InputStreamintread():从流里读出的一个字节或者-1;(实际读了多长intread(byte[]):将数据读入到字节数组中,并返回所读的字节数;(期intread(byte[],int,int)intvoidclose():关闭流,如使用过滤器流,关闭栈顶部的流,会关闭其余intavailable():返回可从流中的字节数skip(long):booleanvoidvoidOutputStream答:1)read()voidvoid

温馨提示

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

评论

0/150

提交评论