




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础总结-电脑资料Java基础总结-电脑资料「篇一」1.extends关键字用于类的继承。2.在C++中,方法的动态绑定是使用virtual关键字来实现的,而在Java中,动态绑定是默认的形为,不需要添加额外的关键字。<codeclass="hljscs">//c++代码classBase{public:Base{init;}virtual~Base{}protected:virtualvoidinit{cout<<"inBase:init"<<endl;base=""code=""delete=""derived:public=""in=""int=""pb="new"protected:=""public:=""return=""void=""></endl;></code><codeclass="hljscs"><codeclass="hljscs">//javaclassBase{publicBase{init;}protectedvoidinit{System.out.println("inBase:init");}}classDerivedextendsBase{publicDerived{init;}protectedvoidinit{System.out.println("inDerived:init");}}publicclassTest{publicstaticvoidmain(String[]args){Basebase=newDerived;}}/*执行结果:inDerived:initinDerived:init这是因为Java中的类对象在构造前就已经存在了,而c++中只有在构造完毕后才存在。*/</code></code>3.使用关键字super显式调用基类的构造器。4.final关键字(1)对于基本类型,final可以使其成为编译时常量,可以在定义时赋值,也可以在构造函数中进行赋值。(2)对于对象引用,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它改为为指向另一个对象。<codeclass="hljscs"><codeclass="hljscpp">publicclassBat{finaldoublePI=3.14;//在定义时赋值finalinti;finalList<b>list;Bat{i=100;list=newLinkedList<b>;}Bat(intii,list<b>l){i=ii;list=l;}publicstaticvoidmain(String[]args){Batb=newBat;b.list.add(newBat);//b.i=25;//b.list=newArrayList<b>;}}</bat></bat></bat></bat></code></code>(3)如果用final修饰方法,可以防止任何继承类修改它的含义。类中所有的private方法都隐式地指定为final。(4)如果用final修饰类,表示不能再继承这个类。Java基础总结-电脑资料「篇二」1.Java完全采用动态内存分配方式。每当想创建新对象时,就需要使用new关键字来构建此对象实例。2.在构造器中,如果为this添加了参数列表,那么就有了不同的含义。这将产生对符合此参数列表的某个构造器的明确调用。(1)尽管可以用this调用一个构造器,但却不能调用两个,而且必须将构造器调用置于最起始处。(2)除构造器外,编译器禁止在其他任何方法中调用构造器。<codeclass="hljscs">publicclassPerson{intage=0;Stringname="";Person(inta){age=a;System.out.println("age:"+age);}Person(Stringn){name=n;System.out.println("name:"+name);}Person(inta,Stringn){this(a);=n;System.out.println("both!");}}</code>3.finalize方法一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。<codeclass="hljsjava">publicclassFinalizeDemo{publicstaticvoidmain{Cakec1=newCake(1);Cakec2=newCake(2);Cakec3=newCake(3);c2=c3=null;System.gc;//InvoketheJavagarbagecollector}}classCakeextendsObject{privateintid;publicCake(intid){this.id=id;System.out.println("CakeObject"+id+"iscreated");}protectedvoidfinalizethrowsjava.lang.Throwable{super.finalize;System.out.println("CakeObject"+id+"isdisposed");}}/执行结果:CakeObject1iscreatedCakeObject2iscreatedCakeObject3iscreatedCakeObject3isdisposedCakeObject2isdisposed*/</code>4.在定义类成员变量的地方可以为其赋值,在C++中是不能这么做的。在类的内部,变量定义的先后顺序决定了初始化的顺序。Java基础总结-电脑资料「篇三」1.通配符(1)通配符的上界<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsphp">?extendsmyClass其中“?”就是通配符,其上界为myClass,这句话代表myClass或其子类。Listapples=newArrayList;Listfruits=apples;</code></code></code>(2)通配符的下界<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsvbnet">?supermyClass表示通配符的下界为myClass,这句话代表myClass的超类型直至Object。List<fruit>fruits=newArrayList<fruit>;List=fruits;</fruit></fruit></code></code></code>(3)无界通配符?等价于Object。Java基础总结-电脑资料「篇四」1.package必须是文件中除注释以外的第一句程序代码。2.每个文件只能有一个public类,但是也可以完全不带public类,在这种情况下,可以随意对文件命名。3.类的名字必须与文件名相同。4.除了public、private、protected之外,Java有一种默认的访问权限,当没有使用前面的访问指字词时,它将发挥作用。这种权限通常称为包访问权限。在这种权限下,同一个包中的类可以访问这个成员,而包之外的类,是不能访问这个成员的。<codeclass="hljscs">packagetestcontrol;publicclassMyTest{publicintmIntPublic=22;protectedintmIntProtected=33;privateintmIntPrivate=44;intmInt=55;voidprintForAll{System.out.println(mIntPublic);System.out.println(mIntProtected);System.out.println(mInt);System.out.println(mIntPrivate);}}</code><codeclass="hljsavrasm">packagetestcontrol;//同一个包下的子类classMyTestDerivedextendsMyTest{voidprintForAll{System.out.println(mIntPublic);System.out.println(mIntProtected);System.out.println(mInt);//Syste.out.println(mIntPrivate);}}//同一个包下的非子类publicclassMyTestNotDerived{publicstaticmain(String[]args){MyTestbjMyTest=newMyTest;System.out.println("AccessPermissionTestinsamepackage:1");System.out.println(objMyTest.mIntPublic);System.out.println(objMyTest.mIntProtected);System.out.println(objMyTest.mInt);//System.out.println(objMyTest.mIntPrivate);System.out.println("AccessPermissionTest:2");objMyTest.printForAll;System.out.println("AccessPermissionTestinDerived:3");objDerived.printForAll;}}</code>Java基础总结-电脑资料「篇五」1.用于描述Java源代码,使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。使用时在@后面跟注解的名字。2.预定义的三个注解(1)Override标识某一个方法是否覆盖了它的父类的方法。(2)Deprecated标注一个类成员时,编译器会发出警告信息。(3)SuppressWarnings就是抑制编译器产生警告信息。3.自定义注解注解的定义和接口差不多,只是在interface前面多一个。@”。<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljscs">public@interfaceMyAnnotation{}</code></code></code>上面的代码是个最简单的注解,这个注解没有属性。当然也可以定义有属性的注解。<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljscs">public@interfaceMyAnnotation{Stringvalue;}</code></code></code>可以按如下格式使用MyAnnotation<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsjava">@MyAnnotation("abc")publicvoidmyMethod{}</code></code></code>这里有一个约定,如果没有写属性名的值,而这个注解又有value属性,就将这个值给value属性,如果没有,就出现编译错误。除了可以省略属性名,还可以省略属性值,这就是默认值。<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljscs">public@interfaceMyAnnotation{publicStringvaluedefault"xyz";}</code></code></code>可以直接使用MyAnnotation<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsjava">@MyAnnotationpublicvoidmyMehtod{}</code></code></code>4.元注解(对注解进行注解)为注解提供了4种注解:(1)Target先看下面代码<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsjava">@Target({ElementType.METHOD})@interfaceMyAnnotation{}@MyAnnotaion//wrong!publicclassClass1{@MyAnnotation//right!publicvoidmyMethod{}}</code></code></code>target所指的目标就是Java的语言元素,如类、接口、方法等。(2)Retention设置注解是否保存在class文件中<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsruby">@Retention(RetentionPolicy.SOURCE)@interfaceMyAnnotation{}@Retention(RetentionPolicy.CLASS)@interfaceMyAnnotation2{}@Retention(RetentionPolicy.RUNTIME)@interfaceMyAnnotation3{}</code></code></code>其中第一段代码的作用是不将注解保存在class文件中,也就是说像“//”一样在编译时被过滤掉了。第二段代码的作用是只将注解保存在class文件中,而使用反射读取注解时忽略这些注解。第三段代码的作用是将注解保存在class文件中,也可以通过反射读取注解。(3)Documented在默认的情况下使用javadoc自动生成文档时,注解将被忽略掉,如果想在文档中也包含注解,必须使用Documented为文档注解。(4)Interited在默认情况下,父类的注解并不会被子类继承,如果要继承,就必须加上Inherited注解。<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsjava">@Inherited@interfaceMyAnnotation{}@MyAnnotationpublicclassParentClass{}publicclassChildClassextendsParentClass{}</code></code></code>在以上代码中ChildClass和ParentClass一样都已被MyAnnotation注解。5.使用反射读取注解我们使用反射可以得到类的方法、方法的参数以及其它的类成员等信息。如果要得到某一个类或接口的注解信息,可以使用如下代码:<codeclass="hljscs"><codeclass="hljscs"><codeclass="hljsvbnet">Annotationannotation=MyClass.class.getAnnotaion(MyAnnotation.class);如果要得到全部的注解信息:Annotation[]annotations=MyClass.class.getAnnotations;或Annotation[]annotations=MyClass.class.getDeclaredAnnotations;getDeclaredAnnotations得到的是当前成员所有的注解,不包括继承。</code></code></code>##并发1.定义任务线程可以驱动任务,因些你需要一种描述任务的方式,这可以由Runnable接口来提供。实现Runnable接口并编写run方法。。2.Thread类将Runnable对象转变为工作任务的传统方式是把它提交给一个Thread构选器。Java基础总结-电脑资料「篇六」1.在程序设计中经常用到一系列类型(基本类型),它们需要特殊对待。Java基础总结基本类型具有的装类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。<codeclass="hljsjava">publicclassAutoBoxingTest{publicstaticfinalIntegerCONST_A=1;publicstaticfinalIntegerCONST_B=Integer.valueOf("2");publicstaticfinalIntegerCONST_C=newInteger(3);privateIntegerstatus;publicvoidsetStatus(Integerstatus){this.status=status;}publicvoiddisplayStatus{if(status==CONST_A)System.out.println("ItsCONST_A");elseif(status==CONST_B)System.out.println("ItsCONST_B");elseif(status==CONST_C)System.out.println("ItsCONST_C");elseSystem.out.println("Invalidstatus!");}publicstaticvoidmain(String[]args){AutoBoxingTestabt=newAutoBoxingTest;abt.setStatus(1);abt.displayStatus;abt.setStatus(2);abt.displayStatus;abt.setStatus(3);abt.displayStatus;}}/执行结果:ItsCONST_AItsCONST_BInvalidstatus!原因:在自动装箱和调用Integer.valueOf(String)时,返回的Integer是从IntegerCache中获取的,所以都是同一个对象。延伸一下,如果一边是包装类,一边是基本类型时,使用<、>、<=等比较,都会时行值比较。*/</code>Java提供了两个用于高精度计算的类:BigInteger、BigDecimal。<codeclass="hljscs">importjava.math.BigInteger;publicclassMainClass{publicstaticvoidmain(String[]argv)throwsException{BigIntegerbigInteger1=newBigInteger("123456789012345678901234567890");BigIntegerbigInteger2=newBigInteger("123456789012345678901234567890");//addbigInteger1=bigIntger1.add(bigInteger2);System.out.println(bigInteger1);//subtractbigInteger1=bigInteger1.subtract(bigInteger2);System.out.println(bigInteger1);//multiplaybigInteger1=bigInte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游泳救生员职业资格考试思维导图与试题及答案
- 2024年游泳救生员资格试题及答案详尽解析
- 2024年篮球裁判员时间管理试题及答案
- 电力安全作业课件
- 2024年天津市公务员考试行测历年真题试题试卷答案解析
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- 深入认识模具设计师资格考试的本质试题及答案
- 农作物种子繁育员考试常识的重要性强调试题及答案
- 2024年3月国家公务员考试国考铁路公安结构化面试真题试题试卷及答案解析
- 2024年裁判员考试安全知识试题及答案
- 【MOOC】以案说法-中南财经政法大学 中国大学慕课MOOC答案
- 2025年中考数学一轮复习 -第六章 圆-第二节 与圆有关的位置关系
- 大学物理(一)知到智慧树章节测试课后答案2024年秋湖南大学
- 中建质量样板策划实施方案
- 湖北省武汉市2025届高三第一次模拟考试数学试卷含解析
- 2025届新高考语文古诗文理解性默写汇编(新高考60篇含答案)
- 《数字中国建设整体布局规划》解读报告
- 《石油化工金属管道布置设计规范》SHT3012-2011
- 2024年大学物理磁场教案设计示范
- 国开汽车学院《项目管理》形考作业1-4答案
- 医学影像科提高诊断报告与手术后符合率持续性改进PDCA
评论
0/150
提交评论