由于本周是国庆节假期期间,有足够的时间学习java,于是本周五我进行了java考核。
我的考核官是马忠鹏和王杰,起初一切都很正常,然后崔晨阳来了,于是就变成了三司会审,我感觉压力十分足大。
再加上马梓原在旁边一直“煽风点火”,导致我的考核异常艰难,不过这也能更好的检验我的知识点掌握程度。最终经过漫长的考核,终于通过了本次考核,可以开始下一个阶段的学习,不过在此之前,我需要写一个java考核总结:
一、键盘监听:
首先要实现KeyListener 接口;KeyListener接口里面的三个方法:1、keyTyped方法:当有字符输出时,该方法触发;2、keyPressed方法:当按下某个键时,该方法触发;3、keyReleased方法:当某个键释放时,该方法触发
二、浮点数的比较:
比如double a=3.14,double b=3.14那么通过下面语句能否输出hhh?
if(a==b){
System.out.println("hhh");
}
结果时不可以的,因为符点数比较会导致精度缺失,看上去两个都是3.14,但是后面其实还有很多位小数,可能某一位就会不同。
三、将字符串中的小写字母转换为大写的方法:public String toUpperCase();
将字符串中的大写字母转换为小写的方法:public String toLowerCase();
四、引用类型:接口(interface)、数组([ ])、类(class)
五、基本数据类型和字符串的转换:
1、基本数据类型转字符串:
使用String中的vlalueOf方法,使用过程:
String 接受转换后字符串的名=String.valueOf(基本数据类型名);
2、字符串转基本数据类型
用法:以int为例
int 数据名=Integer.parseInt(字符串名);
六、int与integer的区别
1、intger是int的包装类,int是java的一种基本数据类型;
2、intger变量必须实例化后才能使用,int可直接使用
3、integer实际是对象的引用,当new一个integer时,实际上生成一个指针指向此对象,而int则直接储存数据值;
4、integer默认值时null,int默认值是0;
int是基本数据类型,integer是其包装类,注意是一个类。
七、switch后括号内可以是什么:
JDK1.5之前可以是byte, short, char, int;
JDK1.5到JDK1.7之间可以是枚举类型;
JDK1.7之后可以是String;
无论哪个版本的JDK,都是不支持 long,float,double,boolean 这个一定要注意!
八、switch相对于if-else-if效率高的原因:
这是因为编译器在处理 switch 语句时,会生成一个跳转表,然后根据值之间进行跳转。然而对于 if-else 语句,编译器需要一个一个进行比较,直到找到结果。
九、遍历数组:
for(数组数据类型 接收数据名:数组名)
System.out.ptintln(接受数据名);
十、向窗口中加入图片的方法
十一、1、类修饰符:分为可访问控制符和非访问控制符
可访问控制符:公共类修饰符 public
非访问控制符:抽象类修饰符 abstract ;最终类修饰符 final
2、属性控制修饰符:分为可访问控制符和非访问控制符
可访问控制符:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private protected(用修饰符 private protected 修饰的成员变量可以被该类本身或该类的子类两种类访问和引用。)
非访问控制符:静态域修饰符: static ;最终域修饰符: final ;易失 ( 共享 ) 域修饰符: volatile(易失 ( 共享 ) 域修饰符 volatile是用来说明这个成员变量可能被几个线程所控制和修改。也就是说在程序运行过程中,这个成员变量有可能被其它的程序影响或改变它的取值。因此,在使用中要注意这种成员变量取值的变化。通常 volatile 用来修饰接受外部输入的域。) ;暂时性域修饰符: transient(暂时性域修饰符 transient 用来定义一个暂时性变量。其特点是:用修饰符transient 限定的暂时性变量,将指定 Java虚拟机认定该暂时性变量不属于永久状态,以实现不同对象的存档功能。否则,类中所有变量都是对象的永久状态的一部分,存储对象时必须同时保存这些变量。)
3、方法控制修饰符:分为可访问控制符和非访问控制符
可访问控制符:公共访问控制符: public ;私有访问控制符: private ;保护访问控制符: protected ;私有保护访问控制符: private protected
非访问控制符:抽象方法控制符: abstract ;静态方法控制符: static ;最终方法控制符: final ;本地方法控制符: native(用修饰符 native 修饰的方法称为本地方法。为了提高程序的运行速度,需要用其它的高级语言书写程序的方法体,那么该方法可定义为本地方法用修饰符 native 来修饰;) ;同步方法控制符: synchronized(该修饰符主要用于多线程共存的程序中的协调和同步。)
十二、对多态的理解
多态是继封装、继承之后,面向对象编程的第三大特性
多态表现为父类引用变量可以指向子类对象,前提条件为必须存在继承关系并且要有方法的重写,在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法
多态的调用格式:父类类型 变量名 = new 子类类型();
多态成员变量:编译和运行都看左边(即父类)
多态成员方法:编译看左边,运行看右边
语句Object o = new Student()是合法的,因为Student的实例也是Object的实例,这称为隐式转换但是Student b = o;会出现编译错误,因为Student对象总是Object的实例,但是,Object对象不一定是Student的对象。即使可以看到o实际上就是一个Student对象,但是编译器没有聪明到知道这一点。因此这时就需要使用显示转换,如下所示:
Student b = (St udent) o;
向上转换:将一个子类的实例转换为一个父类的实例,多态本身就是向上转换的过程
向下转换:将一个父类的实例转换为一个子类的实例,此时必须使用转换记号”(子类名)”进行显示转换。
在进行向下转换时,如果父类对象不是子类的一个实例,就会出现一个运行异常ClassCastException,一个好的经验是,在尝试类型转换之前确保该对象是另一个对象的实例,这是可以利用运算符instanceof来实现的。
以上就是本次考核的部分总结,另一部分还在总结中。
网友评论