教学-讲稿达内总结java总览_第1页
教学-讲稿达内总结java总览_第2页
教学-讲稿达内总结java总览_第3页
教学-讲稿达内总结java总览_第4页
教学-讲稿达内总结java总览_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

CoreCoreCore 面象 Java类型,变量与堆对 构造器(构造方法)的作用:对象的创建过程 java方法参数的传递规则:基于值的传递,是变量值的-------------------------- 6控制修饰 7继承中的语法现 Java static静态关键字,修饰:属性,方法,类,代码 finalclass

接口,相当于纯抽象类(cpp纯虚类 String字符 正则表达式:负责的字符串匹配处理规则,应用广 String对正则表达式的支 StringBuilder和 线性表:List,表示有先后次序的对象集合,歌曲列 散列表 HashMap(关键字:值),关键字key是唯一不重复的,查找 集合框架(CollectionandMap,集合与,容器类 Java泛型简 Collections集合的工具类,Arrays数组的工具 2)同步化(线程安全的 2类-定义在类的的类,根据位置分为4 3时间日 Java (pwdlsmkdirrm RandomAccessFile操作文件内容,文件任意位 RandomAccessFile操作文件内容,文件任意位 IO流(InputStream, 文件输入流FileInputStream继承了 文件输出流FileOutputStream继承了 DataOutputStream对基本的输出流功能扩展,提供了基本数 BufferedInputStream和 JavaIO总 Java多线程编 Java创建一个线 Sleep的打断唤 Sleep的打断唤 Java中同步的 JavaSocket编程TCP协议编 TCP服务端编程( TCP客户端编 Java反 面象1)Object(对象),Object本意:东西,是指一个具体事物实2)面象,面向客观事物之间的关系OOA面象分析/OOD面象设计A类型:名词概念,如:客人,菜品,B(变量):具体概念实例的代词,如:,特价C对象(东西):具体概念的实例,如:这个人,一盘大盘D行为(方法E多态:行为/,在具体情形下发生了变化的现象 打:F封装:任何对象实例都是尽可能封装,E继承:Java类型,变量与堆对Java类,是事物类型的.如:<馆管理系统>中的概念:书书的特征:书号,书名,,作者,价格Book{longid;StringStringisbn;//书号doubleprice;},堆也是一块Java使用内存区域,使用方式:BJava局部变量在栈中分配,是按照变量的类型分配对象在堆中分配,按照类的属性(实例变量)分配空间C变量类型与分配变量分为:基本类型和类基本类型变量的空间大小:就是基本类型的空间大小,值是基本类型变量的值是一个对象的地址值,变量通过地址了一个堆Java系统管理:变量占用空间以及值的管理,都是透明的.对象的属性默认自动初始化的.自动初始化为"零"值,为在null上调用属性或方法,会发生运行时异常坐标是int类型. >|||| .|||构造器(构造方法)的作用:对象的创建过程的如:月饼实例的创建,使用面和馅创建. ----->月饼(对象 Java中的构造器:在类,方法名与类名一致的方法叫构造方法,构造方法不能返回值类型.构造方法可以包含参数,参数一般是创建对象实例{intint/**构造器*/publicPoint(intxinty){this.x=x;this.y=y;}}new运算:thisthis是对当前对象的,是运行期间当前对象本身.this()是调用本类的其他构造器,可以使用构造器的重用,*this()必须写在构造器的第一行构造方法重载参数不一样的构造器案例:Point.java=方法名+方法重载:ab也可以说:方法名一样,java案例默认构造器,无参数默认构造器如果提供构造器,Javac将不再提供默认构对象的方法表示对象的功能依赖于对象存在.案例:Point.java如p1.distance()方法也经常重载,重载:方法名一样,参数不一样重载体现了,方法签名(方法的识别关键字=方法名+方法重载:方法名一样,char[]chs=int[]ary=System.out.println(chs);//ABC//println(char[])System.out.println(ary.toString@34ADCDSystem.out.println('A');//Aprintln(char)打印字符System.out.println(65);//65//println(int)打印整数方法重载就是:动词的多意现象,,,打酱油,打车洗衣服,洗手,洗保存联系人,保存,保存过的地java方法参数的传递规则:基于值的传递,是变量值的案例:*变量的值a基本类型的值是其本身b变量的值是一个地址值,是被对象的首地址.为了避免参数传递的副作用,建议一切结果使用继 用来表达概念上具体化延续的具体概念***关于继承中的构造器:*子类构造器中,this()必须写在子类构造器第一行关于对象的实例化过程加载以后是一个对象,类型是Class。获得这个类对象:Student.classClass6控制修饰*一般自然现象:都是尽可能的封装典型,文件名要与Public类一致.如果有其他类,就只能是默认修饰7继承中的语法现象*方法覆盖:子类覆盖了父类“相同方法签名”的方法。8类型转换(是变量的类型的转,Circlec=new s )Shs=(Sh)news=new//s的是Rectangle不是圆实例JavaBean不是语范,是性编程规范,用这个规范写的类使用方便。有时候JavaBean的类也称为:POJOPlanOldJavaa必须有包c有用get ()和set ()的Bean属性。如:getName()和setName(Stringn)的Bean属性为:name,name无关.boolean类型的get方法可以有两种形式:getMarried()static静态关键字,修饰:属性,方法,类,代码,(属性,方法,类静态属性,static修饰的属性,是在类的加载期间初始化是属于类的,全体类的实例共享的变量,使用类名属性.实例变量:属于对象的属性static方法,使用static的方法,属于类的方法,一用来表示工具方法.在类加载以后就可以自己调用,不需要创建任何finalfinalJavaStringfinalMathfinal,afinalbfinalcfinalfinalstaticJavafinalstatic修饰的变量作为常量。常量不是class抽象类-- Clientadd(Client Event[]}接口,相当于纯抽象类(cpp纯虚类publicinterfaceSystem{Clientadd(ClientnewGuy);Eventadd(Evente,Clientguy);Event[]todayEvents();} 也是 ,Java类默认继承于Object!继承了Object的属性和方法如:toString(), hashCode(),equals()toString()方法,经常有系统默认调用,活动当前对象的文本描述,Object默认返回:全限定名@hashCode:JavaObject啥都是东西继承了Object的属性和方法如: toString()方法,经常有系统默认调用,活动当前对象的文本描述,Object默认返回:全限定名@hashCode:equals是用来比较两个对象是否相等的方法。区别:相等与对象相等.equals()equals在Object类中,默认的比较规则是:比*a自反性:对于任何非空值trueb对称性:对于任何非空值x和y,当且仅当y.equals(x)返回true时,x.equals(y)truec传递性:对于任何非空值x、y和z,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)应返回true。d一致性:对于任何非空值x和y,多次调用x.equals(y)始终返回true或始终返回false,e对于任何非空值x,x.equals(null)都应返具有相同的hashCode()值具有不相同的hashCode()值chashCode()值要稳定(一致性BhashCode()值是当前堆对象地址转换的一个整数OID对象的唯一,在工程项目中一般采用数据库来生成OID,也就是数据库中的“主键”StringStringchar[]+操作(toUpperCase类:数据+char数组只是数据,一串字符就是字符串charStringStringBuilder1字符串"字面量"都是String类型实例Stirng就是一个StringAPI有一个实现原则:对象内容不变也就是说:String对象不变.String字面量(直接量),如果相同,一个String对象的,常量连接的结果也被优化Strings=newString的比较equals( 除外字符串中的字符有序号,0开始.API方法:substring(intstart)正则表达式:负责的字符串匹配处理规则,应用广泛学习建议1要能够读懂"正则表达式2能够写出简单的"正则表达式3不要过多的分配学习时间!可以应用于:javagrepvi1字符集1234]1,2,3,4[^12][1-5][a-f]a-f]\d:[0-.:\w:[0-9a-zA-\s:匹配空白\t\nr\b2{m,n}数词?:+:*:3^$用户名规则号 :\d{2}){2}$IP地址String对正则表达式的支持.matches()]")Integer.parseInt()转换到字符串到整数:如23String.matches()]")Integer.parseInt()转换到字符串到整数:如23StringBuilderString=char[]+操作(创建新对象)StringBuilder=char对char[]操作(处理当前数组内容)StringBuilder的char[]数组内容可变,如果长度不够,利用变长算法,自动扩容长度.StringBuilderStringBuilder方法:append,insert...都返回当前StringBuilder对象本身的。"A"+"B"Strings=s1+s2;Java实际上才是如下代码运行:Strings=s1+s2+s3+s4;被优化为Strings=newStringBuilderbuf=newStringBuilder();StringBufferStringBuilderAPIStringBuilderJava5 非线程安全非同 线程安全同线性表List,表示有先后次序的对象集合,ArrayListObject线性表操作(增删改查)StringBuilder=char[]+操作(增删改查))Vector(1.0)ListList集合的实现LinkedList采向循环链表实线性表的应用蛇可以走,继续向当前方向走一步也可以向指定方向走一步不能反向蛇可以吃,一个坐标上的东西.(以后再考虑)3蛇在一个面板中运行,面板控制行列坐标,HashMapHashtable(1.2以前)容量:散列表中散列数组大小:散列桶:散列值相同的元素的"线性集合加载因子:就是散列数组加载率,75%性能比较理想就是:元素数量/散列数组大小,如:7/10=70%散列查找:Key计算散列值,根据散列值(下标)找到散列桶,Key,如果一样,就返回value散列表中Key不同Value散列表容量:散列表中散列数组大小:散列桶:散列值相同的元素的"线性集合加载因子:就是散列数组加载率,75%性能比较理想就是:元素数量/散列数组大小,如:7/10=70%散列查找:Key计算散列值,根据散列值(下标)找到散列桶,Key,如果一样,就返回value散列表中Key不同ValueHashMap(关键字:值),关键key是唯一不重复的,,,默认的容量16默认加载因子(加载率key检索查找value,HashMapVSAHashMap新,非线程安全,查锁,BHashtable(1.2以前)线程安全,检查锁,集合框架(CollectionandMap,集合与,容器类List元素有先后次序的集合,index位置,元素可以重复继承与Collection接口,实现类:ArrayList,Vector,LinkedListSet元素无续,不能重复添加,是数学意义上的集合,Collection接口,实现类HashSet(KeyCollection集概念,没有说明元素是否重复和有序,使用集合的跟接口,很少直接使用,其他集合都是实现类:ArrayListHashSetMap描述了:(key:value)成对放置的集合,key不重复,Value可以重复key重复算一个.实现类HashMap(散列表算法实现)TreeMap(二叉排序树实现,Key排序).Map适合检查查找.Java泛型Java5以后语法现象,在编译期间期检查的类型约束.集合的迭代(遍历算法)(模仿了数鸡蛋的方式迭代操作:列表的全部,将牌全部Iterator中的方法模式化设计,专门配合whileIterator的实例可以从集合对象获得,是这个集合的一个元素序列视图,默认包含一个操作游标,在第一个元前,hasNext()方法,()并且返回这个元素.使用while配合这个两个方法,可以迭代处理迭代时候可以使用迭代器remove()方法删除刚刚迭代的元素在迭代过程中,不能使用集合方法(add,remove,set)更改集合Collections集合的工具类Arrays1)排序,二分查找,打乱,比较大Comparable可以比较的用于类实现,实现这个接口表示:这个类的实例可以比较大小的.可以可以进行,默认排序. 的实现必须与equals()的结果一致,就是相等的对象比较结果一定是0!Comparator比较工具,用于临时定义比较规则,不是默认比较java longLongbyteByteshortShortfloatFloatdoubleDoublecharCharacter"2.718"->2.718自动包装(autoboxingunboxing)(java5以后可以):Integeri=2;//i=newInteger(2);Objecto=System.out.println(oinstanceofDouble);//trueinta=i+1;//a=Value()+1;包装类对象是不变的,与字符串类似(不变模式)Integera=1;Integerb=2;a=a+b;toStringequalshashCode1集合补集合,默认的规则是浅表(浅层)Aclone()B使用构造器Mapmap=newMapmap2=newHashMap(map);Listlist1=newArrayList();Listlist2=new同步化(线程安全的Listlist=new//synchronizedList可以将非线程安全的list转换以后就相当于VectorHashMapmap=newHashMap();//synchronizedMap可以将非线程安全的mapmap=aList(只读的String[]names==list=newArrayList(list);//为全功能ListSetset=newHashSet(list);//为Set集bString[]ary2=(String[])Collection与CollectionsCollection抽象的集合概念,Collections集合静态工具类,(sort,打乱(洗牌)等Map的迭代Map[Key:Value]Akey:valueBKeyCValue案例:2类-定义在类的的类,根据位置分为4成员类:在类体中,不使用static,具有类的成员特Dated=new类是对原类的一个继承,同时创建了实例,{}就是继承3时间日时间类的本质Datelong+Calendarlong+ javaGMTDatelongCalendar是历法的的抽象.历法:公历,农历,历,...GregorianCalendar是历法的实现,(历)算法实现的Calendercal=DateCalendarnewDa Calendar提供丰富的时间计算方法add()set()等如:计算商品的促销日期specialDate:输入:商品生产日期,返回:商品的促销日期,日期输出:的本质是Date转换为格式化的String:java.text.SimpleDateFormatfmt="yyyy-MM-dd"如yyyy-MM-ddHH:mm:ss"析为日期类型,经常用于处理日期输入.fmt.format(Date可以把日期格式化为字符串时间日时间类的本质Datelong+Calendarlong+ javaGMTDatelongCalendar是历法的的抽象.历法:公历,农历,历,...GregorianCalendar是历法的实现,(历)算法实现的Calendercal=DateCalendarnewDa Calendar提供丰富的时间计算方法add()set()等如:计算商品的促销日期specialDate:输入:商品生产日期,返回:商品的促销日期,日期输出:的本质是Date转换为格式化的String:java.text.SimpleDateFormatfmt="yyyy-MM-dd"如yyyy-MM-ddHH:mm:ss"析为日期类型,经常用于处理日期输入.fmt.format(Date可以把日期格式化为字符串异常行为(方法,过程)Userreg(Stringpwd,String)throwsUserExistException;Userlogin(String,Stringpwd)throwsNameOrPwdException;trycatchfinallytrycatchtrycatch捕获catch代码块是异常处理代码。需要提供合理的处理,异常的处理语义含糊.根据业务逻辑适当选用。finally代码块,不管是否出现异常,总会执行的代码块。异常捕获再抛出是一种把底层异常进行封装,转换为另外 |-- 中会大量使用自定义异常,一般从Exception继承。异常类命名要有实际意义,一般都手工继承父类的构造器。Java (pwdlsmkdirrmFile类的用途:用于表示文件 File代表文件系统中对文件 任务:A检查当前文件夹中是否包 ,CdemoDdemo文件夹的内容Etest.txtFtest.txtStringgetName()StringgetPath()booleanexists()booleandir.isFile()booleanmkdir()booleanmkdirs()booleandelete();booleancreateNewFile()throwIOExceptionFile[]listFile()FileFilter(ls|greppatten)File[]listFile(FileFilter)A任务:src/corejava/day07中的.javaRandomAccessFile操作文件内容,文件任意位Java文件模型,bytebybyte 4142000000ffd6 打开文件,"rw写入方法raf.write(int)将整数的"低八位"写入到文件中,指针自动移动到下一个位置,准备再次写入*文件名的扩展名要明确指定,没有默认扩展名现象!任务:A在demo文件夹中创建raf.datBC'A'D2554E写入GBK'中RandomAccessFile操作文件内容,文件任意位Java文件模型,bytebybyte 4142000000ffd6 打开文件,"rw写入方法raf.write(int)将整数的"低八位"写入到文件中,指针自动移动到下一个位置,准备再次写入*文件名的扩展名要明确指定,没有默认扩展名现象!任务:A在demo文件夹中创建raf.datBC'A'D2554E写入GBK'中d6d0Filedemo=newFile("demo");}Filefile=newFile(demo,}newRandomAccessFile(file,"rw");raf.write('A');//0041->00000041->41inti=0x7fffffff;//7fffff 007fff 7fffffffStrings中byte[]gbk=//gbk={d6,d0}intb=raf.read()从文件中一个byte(8位)填充到的低八位,240,返回值范围正数:0~255,如果返回-1表示到了文件末尾!每次后自动移动文件指针,准备下次.1:A只读打开文件,移动到int数据位置B连续4个byte,拼接为int(反序列化)RandomAccessFileraf=inti=0;i=raf.readInt();序列化与基本类型序列int-> long->8序列化:nbyte序列叫序列化:n如0x7fffffff7fffffff反序列化:将nbyte转换为一个数据的过程:nbyte->数据如:[7fffffff] ->0x7fffffffIO(InputStream,InputStream,OutputStream都是抽象类InputStream抽象了应用程序数据的方式OutputStream抽象类应用程序写出数据的方式EOF=EndofFile=-1intb=in.read()一个byte无符号填充到int低八位,-1是EOFin.read(byte[]buf)数据填充到buf中out.write(intb)byteb的低八位写出out.write(byte[]buf)将缓冲区buf都写入到流out.write(bytebufintstartintsize)buf的一部分out.flush() 文件(Byte序列输入流-->--输出流-->文件 FileInputStream继承任务1:文件并且按照HEX输出,每10byte为一行任务2:文件内容为一个byte数组3:byteHEX输出,10byte为一行任务4:byte数组转换为hex字符串FileOutputStream继承任务:A在demo文件夹中创建out.datBC'A'D2554E写入GBK'中DataOutputStream对基本的输出流功能扩展,, 应用程序--过滤器-->输出流-->文件(Byte) fffffffdDataInputStream对基本的输入流(InputStream)功能扩展提供基本类型的输入方法,就是基本类型的反序列化DataInputStream是过滤器,只是功能扩展,不能直接文件readInt()readDouble()... DISdis.readInt()文件(Byte序列)--输入流-->过滤器-->应用程序[7fffffff]read()readInt()0x7fffffffBufferedInputStream一般打开(in/out)文件,都加上缓冲流,IO 应用程序--过滤器-->过滤器-->输出流-->文件(Byte) write()write(byte[])fffffffdFileInputStreamfis=newFileInputStream(file);BufferedInputStreambis=newBufferedInputStream(fis);DataInputStreamin=newDataInputStream(bis);FileOutputStreamfos=newFileOutputStream(file);BufferedOutputStreambos=newBufferedOutputStream(fos);DataOutputStreamout=newDataOutputStream(bos);文件实现与优 文件(Byte序列输入流-->--输出流-->文件 字符串的序列化(文字的编码方案Stirng字符串本质上是char[]char[]byte,char16位无符号整数,unicodeutf-16be编码方案,16char2byteutf-16beunicodechar[]byte[]的编码方案能够支持65535个字符编码,英文浪费空间byte[]=[00,41,00,42,4e,UTF-81~N方案,1字符串的序列化(文字的编码方案Stirngchar[]char[]byte序列就是字符串的编码,就是字符串的序列化问题char16位无符号整数,unicodeutf-16be编码方案,16char2byteutf-16beunicodechar[]byte[]的编码方案能够支持65535个字符编码,英文浪费空间utf16be=[00,41,00,42,4e,UTF-81~N方案,1中文3个byteutf8=[4142e4b8utf-8:是将unicode编码

温馨提示

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

评论

0/150

提交评论