服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java认证之精辟总结


  3.switch里面只能是short,int,char,byte的.
  4.if (a="a") 编译错, if(a=false)编译ok,原因是a=false的a代表了个boolean值
  6.这种写法outer.inner i = new outer().new inner(); ok!
  7.文件里, 8 默认是int, 8.0默认是double
  8.八进制是 0开头,不是o(英文o)
  9.byte -128~127 ,-128是二进制的多少?????????????
  11. -1>>32还是-1, -1>>>32为什么还是-1???????????????????
  12. char c='c'; string s ="s"; s+=c;结果是 sc!!!
  13. boolean b1=true; boolean b2=true; system.out.println(b1|b2); 结果是true.编译没错!
  ?????java的默认import包有哪些???????
  awt
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1. 所有组件flowlayout会被压缩为它们的最小尺寸
  2. borderlayout的north,south,west,east,center就是这个样子,四个单词大小写区分,必须这么写,否则错?????????
  2.1如果只是add,而不写东南西北中,默认是中
  2.2如果不加component到中,那中就空着
  2.3如果某个方位有个component,如果你还往上面加component,后来的会覆盖原来的
  3. applet,panel默认布局是flowlayout
  4. frame,dialog默认布局是borderlayout
  5. 各种awe类的继承关系,frame,window,component,...??????????
  6. window,frame,dialog不能被嵌入到容器里.注意:window!
  7. action event作用于button和textfeild的回车时刻
  8. item event作用于list,choice,checkbox的选择改变时刻
  9. 如果容器不可见,新layout管理器后前的component将跟随这个新的layout变化,如果容器可见,这些component将不受后来的layout影响
  10.gridlayout里的component尺寸一样
  11.gridbaglayout里,component可以占用多个grid
  12.system.exit();在applet里面不允许调用.
  awt事件
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1.事件类有
  (symantic)语义事件:actionevent,adjustevent,itemevent,textevent
  低级事件:componentevent,containerevent,focusevent,inputevent,keyevent,mouseevent,paintevent,windowevent
  2.监听器:
  actionlistener,adjustlistener,compentlistener,containerlistener,focuslistener,itemlistener,
  keylistener,mouselistener,mousemotionlistener,textlistener,windwoslistener, 共11个listener,
  七个adpter,少的4个是actionlisenter,adjustlistener,itemlistener,textlistener,它们只有一个方法.
  3,鼠标mouselistener有5个方法:clicked,pressed,released,entered,exited
  4.鼠标mousemotionlistener有2个方法:mousedragged,mousemoved
  
  类和对象(class and object)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  0.最外层的类可以声明成final: "$file a":< final class a{}> ok!,但是不能是private和static的.
  1.overload是同类里同样的方法名,override是父子的继承
  2.override的返回结果必须一样,否则编译错哦
  the return type of an overriding method is identical to the return type of the method it overrides.
  2.1 override的modifier可以扩大,但是不能缩小.比如父类private void test(){} 子类:public void test(){} ,没问题;如果反了,就死翘翘了!
  3.super.super(),靠,错的,没这么写的
  4.static和非static之间永远无法override!
  5. 看程序
  public class a{
  void test1() throws baseex{hi();}
  void hi(){system.out.println("say hi,a");}
  }
  class aa extends a{
  void hi(){system.out.println("say hi,aa");}
  }
  class test{
  static void main(string b[]) throws exception{
  a a = new aa();
  a.test1();
  }
  }
  结果是,"say hi,aa",这说明什么?说明,方法永远跟着类的原来面目走;而,变量恰恰相反!
  6.一个非抽象方法死活也别想override成一个抽象方法
  7.override的子类的方法抛出的的异常只能是父类方法抛出异常的子异常类,或者无!
  8.构造器不能是native,final,static,synchronized的,可以是public,private,什么都没有的,呵呵
  9.构造器函数里还可以写return呢,但后面什么都不许有,甚至null(这不是废话吗,哈哈)
  10.构造器不能返回值.这大家都知道,但如果有个"构造器"反值了,别紧张,它就不是构造器喽,只是个普通函数
  11.super();this();这两个函数只能在构造函数里调用.
  12,成员变量声明时候赋值,比构造函数还早.int i=1; ealier than test(){}
  13.方法的参数变量可以是final.
  14. hashcode返回一个int
  15. void wait() throws interruptexception wait扔interruptexception异常
  16. java.lang.void 是void的包装类
  17. byte,interger,double...所有的跟数有关的包装类都是继承于number
  
  接口interface)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1.接口的所有方法默认都是public,abstract和non-static的
  2.接口的所有变量默认都是public,static,final的.所以,接口的变量不能改值,在它的实现类里.
  3.接口的实现类实现的方法必须和接口的方法抛出同样的异常,不许是子类,这和override不一样!同样,如果接口方法没有抛,实现方法也不能抛.
  4.实现类实现的方法必须显式的声明成public,什么都不写都不行,啊!!!
  5.接口不能声明成final,要不它怎么被实现呢(这好像又是废话啊
  6.一个类实现两个接口,如果两个接口有相同的方法,实现类就实现这个方法,没问题的.
  内嵌类inner class)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1.内嵌类可以访问outer类的任何变量,包括私有的.
  2.静态inner类,只能访问outer类的任何static变量
  2.1内嵌类可以是final,abstract的
  3.我靠,方法内的内嵌类不能为static: void test(){ static class a{}} xxxxx!!!!
  4.我靠,方法内的内嵌类也不能带任何modifier,void test(){ public class a{}} xxxxx!!!!
  5.我靠,方法内的内嵌类只能访问方法内的final变量,但是,可以访问outer类的任何变量.
  6.匿名类不能有构造器,但声明时候带参数,相当于构造器的参数传递.
  class abc{}
  class abcd{private abcd(int i){}}
  abc test3(){return new abc(){};}
  abcd test4(){return new abcd(3){};}
  interface iii{}
  iii test5(){return new iii(){};}
  //class bcd extends abcd{} compile error,因为,
  看上面就知道,new iii(){};实际上匿名类实现了iii接口;new abc(){};实际上是匿名类继承了abc.
  8.???
  class a {private a(){system.out.println("a!");}}
  class b extends a{}
  我靠,没错!b实例的时候会主动调用父类a的构造,即使是private的,看来也没问题!!!
  9.内部类可以有synchronized方法,那么锁是这个内部类,跟外部类没一点关系,内外分别的,在锁的问题上.
  10.外部类不能通过this被访问,this这时候应该指的是内部类,享用外部类的成员就直接用,不用加任何限定词
  11.如何用this呢?请看:
  class outer{ int i;
  class inner{
  class innerinner{
  void test(){
  outer.this.i=1;
  }
  }
  }
  }
  看见了吧,类名.this.变量名,可以引用到i,第一次看到吧,嘿嘿,孤陋寡闻.
  12.注意这两种写法都可以
  class outer.inner i = new outer().new inner();
  或者, class o= new outer(); class outer.inner i=o.new inner();
  线程thread)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ?????去看thread的api!!!!
  1.线程启动必须通过start函数.
  2.run函数不许也只能是public的.
  3.线程有优先级从1到10,通过thread.setpriority(int);来改变,不能超过10,否则会出现运行异常
  4.线程优先级默认是5,即norm_priority.????????norm_priority是thread的静态变量吗?
  5.????thread.yeild();是静态方法,所以,使用格式是thread.yield();她强迫当前的进程放弃cup.
  6.sleep(1000),是说线程睡觉1秒,然后,进入ready状态,注意,不是运行状态,它还要等os来调度来获得cup.
  
  java.lang.*;
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1.数组的科隆: int ia[][]={{1,2},null}; int ib[][]=(int[][])ia.clone();
  2.什么是nan?????然后看ceil(nan),floor(nan),...
  3.math.floor(-1.1f);//-2.0
  math.ceil(-1.1f);//-1.0
  math.round(-1.6d)//-2
  4.0=  5.math,interger,boolean...等类型包装类都是final的,不可继承
  6.int round(float); long round(double);唉,round永远返回不了小数点
  7.static double ceil(double)
  8.static double floor(double)注意,ceil,floor的只有这个double版本,什么都转成double!
  9.static double sin(double 弧度); 还有cos,tan
  10. new string; ?可以是byte[];char[];string;stringbuffer
  11. string的一些函数: int length(); char charat(int); st

扫描关注微信公众号