JavaSE阶段考试总结
- 用生活案例,描述面向对象的概念
答:我去银行取钱,需要有我(用户),银行(接口,有取钱方法待实现),和柜台(中间类,需要"我"对象和钱数(取多少,double类型))作为传参.
- native和volatile作用,java中的例子
答:
- native最终的,被native修饰的方法没有方法体.表示调用了其他语言来实现,如**C,C++等.Object的hashCode()**就是被native修饰的.
- volatile可见性,特征修饰符,用来修饰变量.保证共享变量被修改时直接更新到主存中,其它线程操作已更新的变量.**类似于synchronized(变量)**的用法
- 分析代码运行结果
答:会报错NullPointException:因为switch底层判断时,case "null"实际是param.equals(“null”),而param是null.
- 线程五种状态和常用方法
答:初始,就绪,阻塞,运行和死亡dead.常用方法:yield()礼让,join加入,setpriority()设置优先级,setDaemon()守护线程.start()运行
- 通过反射如何创建对象,执行对象的方法和修改对象的手段.私有的怎么办?
答:
-
得到对象对应的Class对象,用Class对象**.getConstructor()得到Constructor对象**.Constructor对象**.newInstance()得到无参实体类对象**.
-
执行对象方法:用Class对象**.getMethod(方法名字,对应参数.class)获得Method对象**.Method**.invoke(哪个对象,真实传参)**执行.
-
修改字段:Class对象**.getField(字段名**),获得Field对象.Field对象**.set(哪个对象,要修改的值)**.
-
私有的成员有对应的getDeclared方法,不过执行操作前需要对象.setAccessible(true)开启无障碍