还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
序本视频假定读者已经掌握了语言!C所以有关变量,数据类型,运算符,流程控制,函数,指针等知识本视频中就是没有讲得,因为这些知识我已经在语言中讲过了C语言视频我暂时还没有录制,没有语言基础得同学瞧本视频会有不小得难度!当然如C CJa v a果您已经学习了其她语言,掌握了有关变量,数据类型,运算符,流程控制,函数,指针等知识,瞧此视频应该没什么难度吧!没有学过语言得推荐瞧谭浩强先生得书籍!C本人得只希望接受您对我视频教学错误得指正,对于您学习中出现得问题,对不起,我没有qq时间通过来帮您解决!实在就是抱歉!q q年月日200971730郝斌注意本资源[郝斌]自学视频教程共集Ja v a107郝斌,现在瑞德学校担任教学组长,曾在雅博等公司担任项目总监年开发经验,擅长、数据结构、数据库.具有四年培训经验.6C/C++Java.郝斌:自学好辛苦,不过好在最后我还就是学出来了,教学好几年了,感触颇多,如今录制了一些教学视频,把自己得心得发布出来,希望对那些没钱培训得朋友有所帮助视频目录概述」1—J ava概述2_Java_2概述—3—J ava3得卸载4—Java得安装5_Java—环境变量得设置6—常见命令文件名与类名不同时编译运行得问题7dos—复习上节课9类与对象10_变量命名规则数据类型运算符格式化输出流程控制8_内存分配11_访问控制符」12_访问控制符_13_2—构造函数14得使用15_UltraEdit—复习26—函数得重载17构造函数18_19_t his30_s ta tic匚复习2两示例_求个数—只生成一个对象—22_static1两示例—求个数一只生成一个对象_23_stati c2—继承得由来与继承得访问控制权限_241—继承得由来与继承得访问控制权限25_2中得方法S t ri n g equ als线程进程一个程序加载数据后得一次运行线程一个程序得不同得执行路径T estThread lj ava「单线程程序一步步执行,执行完上一步才执行下一步,[多线程创建线程后,多个线程之间交替执行thre ad:时间片轮转算法创建线程得方法一继承Thread【注意】、中得方法得功能就就是创建一个新得线程,并自动调用该线程得1Thread startrun方法,直接调用方法就是不会创建一个新得线程得;run、执行一个线程实际就就是执行该线程方法中得代码;2ru n、执行完、;后并不表示所对应得线程就一定会立即得到执行,、;执3a as ta r t aa a ast a rt行完后只就是表示线程具有了可以立即被执行得资格,但就是由于想抢占执行得线aa cpucpu程很多,并不一定会立即去执行所对应得线程.cp uaa、一个对象能且只能代表一个线程,一个对象不能调用两次方法,4T h r e ad Thre ad s ta rt否则会抛出、、异常j avala n g llleg a1Thread S tateExcept io n创建线程得方法二实现接口Runnable{}〃使类具有了Cla ss Ai mp1e mentsRunna b1e Ar un;A a a=n ew A;//创建一个线程,将作为运行对象Th rea dt=new Th readaaaa;T start得常用方法Thread//设置当前线程得名字P ub1ic finalvoid s etName〃返回当前正在执行得线程对象得引用P ublicstat i c Threa dcu rre n tThr ead//返回当前线程得名字Pub1ic fi n a1St r i n g ge t Na me线程得状态切换线程控制线程控制得基本方法判断线程就是否还活着HsAlive获取优先级getP r io r ity线程休眠Thr ead sleep等待另一个线程运行完自己再运行一个线程用到另一个线程得结果线程得串行化Join线程让步,让出当前线程进入就绪队列Yield CPU,线程等待W ait唤醒一个/所有线程N oti fy/Notify All优先级小一大,默认1—105线程得休眠线程得挂起与恢复线程得结束线程得同步卖票本质就就是多个线程访问一个资源,线程同步就就是保证资源多个线程处理资源过程中不出现错误问题线程没处理完,语句没有执行完,就切换到另外一个线程,票数大于〃必须只有一个线程访问If0{买一张票;票数减一;}三个售票点;ABC同步Synch roni zeds tr{}//Sy nc hroni zed修饰一个方法———霸占正在调用该方法得对象修饰一个方法内部得某个代码块引入得目得就就是让售票代码与一-代码,能要么都执行要么都不执行;Synchron ized tickets;生产与消费本质就就是多个线程共享一个数据,若线程不同步就会出现问题;、Test PCjava【注意】一个类一旦继承类或者实现接口,都不能把异常抛给调用者,Thread Runnable因为V cc_房口中沿过这样曾R容器/集生产者Syn StackProducer消费者Consumer资源Collecti得区别Push;List Set重写toString方法得必要性Pop;实现C o1lection接口都要进行重写J类得使用注意区别接口Coll e ct io n s Collec t ion为实现接口得类提供随机排列等方法,接口中并没有这些方法C ollect io n接口--解决一个类存在多个属性,中排序时,选择哪一个作为排序标准只有一个parable Lis t pare;方法T【注意】不用自己调用,类会自动调用该方法Colle ctions接口Set集合内部就是以哈希表为存储结构得,对比L ist类Set TreeS e t类HashSet要保证集合无重复需要重写方法与方法equa1sh as hC ode系统默认得只要就是不同内存相同内容就返回,我们要达到得目得就是内存E qu alsfa Is e不同,内容相同也返回True公司已有得类等类,已经在内部重写了与方法S UNI ntegerEquals hashCod e[,t o S tring,]什么类需要重写E quals与has hCode方法-----------------只有hashSet类为什么需要重写与方法?方法近似于对象内存地址得十六进制表示Equals hashCode hashCode_______________图、肉\工阖二二n AlI薪丈对象卡就是一种树得存储结构[Trees1aa夕;二生所以一接口哈希码b par a b le接口数组、链表、树I te rato r就是否存在下一个元素hasNext移动到下一个元素Next一般不使用R e mo ve图形化用户界面GUI提示得优点在于跨平台,并不就是得强项,也不就是重点,在真正实际得应用java GUIj ava中很少用写界面java组件:如菜单、按钮、标签等pone nt、所有组件得父类Java awtponent容器:有一种特殊得组件专门用来包含其她得组件所有容器得父类Java awtcontainerComponentContainerboraeruayouTF ram常用得方法ePanel不能单独存在必须添加到其她容器中布局管理器每一个容器都有一个默认得布局管理器,如果要自己设置组件得位置需要setLayoutnull默认东西南北中得排列Frame Border Lay out默认流式布局Panel F1o wLay ou tn ewFlowLayo u tFlowL ayo outRIG HT,20,40格子排列G ridL ayo ut几种布局形式东西南北中得排列默认中间,每个区域只能放一个Borde rLayout流式布局J FlowL ayout格子排列j GridL ayout由络编程端口号一台计算机从网卡接受过来得数据到底应该交给本地得哪个网络程序来处理得,这就是由端口号来决定得端口得范围0-1024-65535协议TCPUDP基于得编程U DPsocket;I mportjava net*Dat ag ra mSocket5678D atagram Packe t基于得编程TCP so cket【我得编程心得】关于学习编程语言一些心得基础需要耐心得学习,但学习编程得重点在于多写代码,多应用,这样才会有更多得独立思考,发现问题解决问题,巩固提高,不用过多得纠结于基础知识与语法面向对象得继承反映得就是现实中得一般到特殊得关系26_为什么没有多继承27_Java复习28_+supe r_1_复习29+s up er_2重写父类方法」30_重写方法示例31_—多态得语法知识32—复习33—多态注意事项与实际应用示例34—接口36—1抽象类与35—fina1接口_37_2面向对象复习38——编译运行含有包层得类」39编译运行含有包层得类40__2同包与不同包类得相互访问41_—复习与不同包之间得相互访问」42复习与不同包之间得相互访问43__2包得生成44J ar如何使用包与包得总回顾45_J ar—异常概述46_
1.异常概述47_2—复习58—为什么需要异常49方法得介绍60_p r int S ta ckTrace可处理可不处理得异常与必须得进行处理得异常51_处理异常得两种方式52_53_finall y自定义异常与常见错误解析54_th rows_1自定义异常与常见错误解析55_throws_2—异常复习56—异常57方法介绍58_ToSt rin g_1方法介绍59_ToString_260_equ aIs_16l_e quals_2—复习62类得常量字符串得用法63_S t ring equa1s==类得常用方法介绍字符串与整数得相互转化64_String—复习67常用方法举例65_St ri ng与得区别66jpri ntf pri ntln68_S tri n g Buff e r—数组69_线程_701—复习71—创建线程得第二种方式82线程常用方法得介绍73_自学视频源代码java—线程得控制74—线程同步问题得产生原因75—复习76闲聊78_—复习79买票程序讲解77_生产消费程序演示」80_展望92_awt—生产消费程序演示81_2—布局管理器84—复习86103gui—事件处理85—十个按钮得设计87计算器可运行包得生成110_jar—复习内部类匿名类129—复习92—什么叫流流得分类四大基本抽象流91三个文本框得相加运算示例88_字节流字符流得使用与它们得区别93缓冲流得使用94—一将一个长整型数写入字节数组再从字节数组读出程序讲解95流流96_p ri nt0bject—容器得介绍与使用137复习99_接口接口98_pa rabl eSe t接口101_I terato r与方法得使用难点100_e qualsh as hCode—泛型103接口得使用102_Map—网络编程基础知识编程104UDP编程与下得服务器程序得讲解105_TCP TCPWEB复习大纲—上106_Ja vaSE复习大纲一下107Java SE概述Jav a特点Java虚拟机Java JVM每台计算机上都有独特得虚拟机;java一次编译到处运行;应用领域J av aJ2SE J2ME[J2EE基础知识Jav a命令Dos中得注释Java标识符关键字数据类型常量整型常量、浮点常量、字符常量不同类型变量得存储范围数据类型转化运算符仔术运算符关系运算符;逻辑运算符成值运算符被算符运算符得优先级流程控制脾序*择〔循环函数得重载面向对象编程(上)面向过程得设计思想/面向对象得设计思想类得定义:静态属性(成员变量);动态可执行得操作(成员方法);对象得定义程序得执行过程(执行过程得内存管理堆栈等)Data segment(堆)存(栈)存(数据段)存放(代Heap StackCode segment内存放对象引用放对象静态变量,字符码段)存放代码串常量]侬世夕郁如叫刀工口」尖¥前寻门阿贝vr r1v ate/|、KI rI1rI1P vai e()、类得内部访问1在一个类得内部,所有得成员可以相互访问,访问控制符就是透明得;访问控制符就是针对类外部访问而言得;类内/类外===============()、同一个包中外部访问(同包不同类/同包不同类-继承)通过类得对象名访问类得内2部成员通过类名访问类得内部成员===============包内/包夕卜===============⑶、包函数调用得过程:压栈过程-------不同包继承访问不同包无任何关系的类构造函数构造函数得定义与作用:类创建对象构造函数得返回值问题(构造函数没有返回值)构造函数数据成员得赋值——对象被创建时会对其中各种类型得成员变量自动初始化赋值多个构造函数可能带来得冲突(如果不定义程序就会默认提供,定义后就不再提供)关键字(理解成当前对象得引用或指针)this一个类得出多个对象,成员变量放在内存得不同区域,但就是方法只有一个且放在代码段n ew一--成员方法如何区别就是哪一个对象掉用自己-―每一个非静态方法中都隐含一个指针t his关键字(成员属于类)static非私有静态属性或方法可以直接用类名访问,类得对象也可以直接访问;静态方法不可以访问非静态成员;非静态方法可以访问静态成员;应用创建对象计数;单态模式只能创建一个对象(见例子);Static Tes t S t ati c_2java面向对象编程(下)继承()e xt en ds()子类内部可以访问父类非私有得成员;1()子类得外部(子类出来得对象),通过子类对象名只能访问从父类继承过来得非私2new有成员(反过来父类对象访问子类得成员同理,子类把等修饰符也继承过来了)pub1ic()通过子类得类名访问父类得成员3总之一-私有不能被继承(私有成员逻辑上已经被继承过来得,只就是不能访问,因此继承耍慎重否则浪费内存空间)不同包得继承问题继承原则:区别汽车与车轮得关系(包含关系)父类/基类一-子类/派生类super只允许单继承(允许多继承)接口可以一定程度上解决单继承得缺陷java C++得使用(见、、、)Super TestSu per_l java/T estSu p er_2jav a/Tes tSup e r_3jav a得应用一-一情景父类有很多很多属性,子类继承过来如果一个个进行初始化就会太麻Supe r烦,可以使用调用父类得构造器进行初始化总结Super、每个子类构造方法得第一条语句,都就是隐含地调用()如果父类没有这种形式得构1sup er,造函数,那么在编译得时候就会报错、如果显示得写出;语句,则必须保证该语句就是第一条语句,否则会出错2super、()如果不写,则编译器会自动添加,所以此时如果父类没有无参得构造函数就会出3super;错、既可以显示写;前提就是父类必须有无参得构造函数也可以显示写(实参);4super super前提就是父类必须有带参得构造函数、调用父类得构造函数得语句必须借助于不能直接写父类得类名,这与不同,5super,C++、一个构造函数中不能写多个(参数列表)语句;6super();Supe rf方法得重写子类要比父类得权限大(否则多态无法实现)T est S tu dent jav a多态(一个父类得引用类型变量既可以指向父类对象也可以指向子类对象,它可以根据当前时刻指向得不同,自动调用不同对象得方法,这就就是多态)多态得作用:同一段代码做不同得事情(」、)Tes tPolyj ava通过父类得引用只能指向子类从父类继承过来得成员;父类得引用永远不可能直接赋给子类得引用;只有当在父类引用本身指向得就就是一个子类对象时,才可以把父类引用强制转换为子类引用抽象类(美])得由来:比如“植物”抽象词abstract Laeb.s t r^k tabstrac t clas sA(();//没有方法体得方法叫做抽象方法,抽象方法没有方法体a bstract pub1ic void f}有抽象方法得类一定就是抽象类,抽象类不一定有抽象方法;可以定义一个抽象类得引用(多态抽象类),但不可以创建一个抽象类对象Fi nal:修饰售个类:表示不能被继承成%属性:表示属性必须被赋值,且只能被赋值一次,通过两种方式、成员方法:可以继承但不可以重写接口(特殊得抽象类)抽象方法与常量属性得集合interface接口与抽象类得区别抽象类就是一个类可以被继承,接口不能被继承只能被实现用关键字(实现)im p1e ments接口内得方法没有{},不允许有非抽象方法包、Javac-d Te s tPa ckagejavaJav amyPa ckage cyT es tPacka ge得路径Path ex e得路径C1a sspathclass命令DOS设置类得路径\、、同包不同类得访问s etclas spa th=c\D oc ume nts andsett i n g启动类、两个一起编译J ava ca j ava bjava同包非私有成员都可以不同包得访问共有得类得共有成员才可以被另外一个包得类访问Import公有类保证可以在另一个类中创建对象,公有方法除了内部类普通类只能用或者什么都不修饰public如何生成包jar放在一个文件夹中下、*进入当前目录如何使用包DOS jarc vf xxxjar jar、Impo rt zhangsa n1i diA;、、、;Se tcl as spat h=c\d ocuments ands ett ting\t jar面向对象得特点封装访问控制符:只有priva te一个对象只含有属性得空间Th ispr ivate继承只允许单继承,私有成员无法被继承java重写:方法名与参数列表与返回值必须一样多态放在、包中得类不需要引入,其她得类都需要手动引入javalangObject类得方法--------1o S tring方法一个类默认继承Obj ect该方法返回“类名哈希码一一该对象在内存堆中得地址”、类得对象名-一实际输出得就是该对象得方法所返回得字System outprin t1ntoS tri ng符串重写方法得意义为了实际需要toS tring与String Stri n gBuffer得类JAVA St r ing Buff er门晚类与一期一样,也用来代表字符串,只就是由于得内部实现S t81^©151:S tringBuff e r方式与不同,所以在进行字符串处理时,不生成新得对象,在内存使用St ring Strin gBu f f er上要优于类String所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用要更加适合一些StringBu f fer在类中存在很多与类一样得方法,这些方法在功能上与类中Str i ngBuffe rS tringS tri ng得功能就是完全一样得但就是有一个最显著得区别在于,对于对象得每次修改都会改变对象自身,这点StringBuffe r就是与类最大得区别S tring另外由于就是线程安全得,关于线程得概念后续有专门得章节进行介绍,所Stri ngBuffer以在多线程程序中也可以很方便得进行使用,但就是程序得执行效率相对来说就要稍微慢一些对象得初始化1S trin g Buf f er对象得初始化不像类得初始化一样提供得有特殊得语法,而通常情况StringBuffer Str i ngJava下一般使用构造方法进行初始化.例如;S trin g Buffer s=n ew Stri ngBuffer这样初始化出得对象就是一个空得对象.St rin gBu f fer如果需要创建带有内容得对象,则可以使用St ringBu f fer;Str ingBu ff er s=new Strin g Bufferab c”这样初始化出得对象得内容就就是字符串匕Str i ngBuffer be”.需要注意得就是,与属于不同得类型也不能直接进行强制类型转换,下面S tring Buffe r Strin g得代码都就是错误得//赋值类型不匹配StringBu f fer s=abc;StringBuf f er s=Stri n gBuffer,5abc;//不存在继承关系,无法进行强转对象与对象之间得互转得代码如下S tringBu fferS tring;S trings=a be”St ri ngB u ff er sbl=n ew StringBuf ferC123H;;转换为StringB uffers b2=new StringBuffers//St ri ngStringBuffer;转换为String si=s b1to S tring//St ringB ufle r Stri ng、得常用方法2St r ingBu ffer类中得方法主要偏重于对于字符串得变化,例如追加、插入与删除等,这个也就是StringBuffer与类得主要区别St ringBuff erSt ring、方法aa ppe ndpubli cS tri ngB u ffera ppendb oolean b该方法得作用就是追加内容到当前对象得末尾,类似于字符串得连接调用该方Str i ngBuffer法以后,对象得内容也发生改变,例如StringBuff er;StringBuf fer sb=new StringBuf fer“abc”、s bappe nd tru e;则对象得值将变成“九s ba bet rue使用该方法进行字符串得连接,将比更加节约内容,例如应用于数据库语句得连接,String SQL例如;Str ingBuffers b=newSt ringBuffer;Stringu sc r=t cstStringpwd=123”;s bappend seiect*f romu ser Inf owhere us ema me=、a ppend user、ap pend“andpwd=、append pwd;这样对象得值就就是字符串s b“select*f rom userI nf owh ere us ername=test andpwd=123”、方法b deleteChar Atpub1i cSt ringBuf fer deleteCha r Atint index该方法得作用就是删除指定位置得字符,然后将剩余得内容形成新得字符串例如StringB uf fer sb=new StringBuffer64Test”;、;sb de lete CharAt1该代码得作用删除字符串对象中索引值为得字符,也就就是删除第二个字符,剩余得内容sb1组成一个新得字符串所以对象得值变为叮S bst”.还存在一个功能类似得方法deletep ub1ic Str ingBuf ferde1ete i nt sta rt,in tend该方法得作用就是删除指定区间以内得所有字符,包含不包含索引值得区间.例如start,endS tringBuffersb=n ewStr ingBufferT est String;、sb de1ete1,4;该代码得作用就是删除索引值包括到索引值不包括之间得所有字符,剩余得字符形成14新得字符串则对象得值就是“sb TString、方法c insert该方法得作用就是p ub lieStringBuffer insertintof fset,b oo1eanb在对象中插入内容,然后形成新得字符串例如StringBuffer;StringBuffersb=new StringBuffer“TestSt ring”;sb^inse rt4,f a1se该示例代码得作用就是在对象得索引值得位置插入值,形成新得字符串,则执行以sb4fa Ise后对象得值就是“sbTestfa1seS tring”、方法d rever sepub1icStr ingBufferr everse该方法得作用就是将对象中得内容反转,然后形成新得字符串.例如Str ingBuffer StringBuffersb=new Strin gBuffe r“abc”;sb re verse;经过反转以后,对象中得内容将变为sb“cba”.方法e setCharAtpub1ic voidset CharAti nt index,ch ar ch该方法得作用就是修改对象中索引值为位置得字符为新得字符例如index cho;StringBuffersb=new StringBuffer abc、;sb setCh arAt1,D则对象得值将变成“sb aDc\、方法f trimToSizcp ub1ic vo idtrimToSize该方法得作用就是将•对象得中存储空间缩小到与字符串长度一样得长度,减少StringBu ffer空间得浪费总之,在实际使用时,与各有优势与不足,可以根据具体得使用环String StringBuffer境,选择对应得类型进行使用。
个人认证
优秀文档
获得点赞 0