A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.黑盒测试和白盒测试的区别?黑盒测试比较简单粗暴,不需要写程序,只关心输入和输出的结果是否达到预期.
白盒测试通过代码完成,可以运算可以达到毫秒级别,关注具体的执行流程.

2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射是将类的组成部分封装为其它对象.
反射运用到框架居多,因为通过反射我们在使用框架时可以不需要修改里面的代码只需要修改配置文件就可以创建任意对象和调用任意方法.并且在程序运行的时候去调用这些对象,提高程序的扩展性,实现代码解耦.

3.获取 Class对象有几种方式?他们的用途都在哪?
a)Class.forName("全类名"); 用于配置文件.
b)类名.class; 用于参数传递
c)对象名.getClass; 用于对象获取字节码方式

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
通过getDeclaredFields和getDeclaredMethods,不考虑修饰符都可以获取.

5.注解在程序中都有哪些用途?
a)可以变成文档,通过javadoc命令生成.
b)代码分析,通过代码里标注的注解对代码进行分析(使用反射).
c)编译检查,被标注的代码会自动检查,如果不符合注解的要求则报错,例如:@Override

6.什么是元注解?
元注解是用于注解注解的注解,例如用于给注意设定可以被注解的位置(类,方法,或变量).常用的有@Target和@Retention

7.文件从编译到运行可以分为哪三个时期?
从编译运行有源代码阶段(Source)->类对象阶段(Class) ->运行时阶段(Runtime)

8.思考:想让一个类加载进内存,有几种方式?

a)new 类名
b)反序列化,ObjectInputStream.readObject("反序列化文件名");
c)反射,Class.forName("全类名");

雷锋

回复 使用道具 举报
黄希

1.黑盒测试和白盒测试的区别?
        黑盒测试:不需要写代码,给输入值,看程序能否输出期望值;
        白盒测试:需要写代码,关注程序的执行过程。
       
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
        将类的各个组成部分封装为对象,可以在程序运行期间,动态的操作这些对象。
                例如:
                        获取类的Class对象
                        获取Class对象的构造方法,进行调用,创建该类的实例
                        获取Class对象的成员变量,进行读写操作
                        获取Class对象的成员方法,进行调用
        还可以结合多态实现解耦,提高程序的可扩展性。
                通过反射创建类的对象,赋值给该类的父类对象或该类实现的接口对象。

3.获取 Class对象有几种方式?他们的用途都在哪?
        1、Class.forName("类全名");
                多用于从配置文件读取类全名,获取Class对象
        2、类名.class
                多用于参数传递
        3、对象.getClass()
                多用于获取对象的字节码

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
        先调用Class对象的getDeclaredField()方法,获取指定的成员变量。如果想对该成员变量进行读写操作,需要先调用该成员变量的setAccessible(true)方法,忽略访问权限修饰符的检查。
       
        私有的成员方法对象,通过调用Class对象的getDeclaredMethod()方法进行获取。如果想调用该成员方法,也是需要先调用该成员方法的setAccessible(true)方法,忽略访问权限修饰符的检查。

5.注解在程序中都有哪些用途?
        可以标记在类、接口、方法、成员变量、方法参数等位置,给编译器使用。在程序运行期间,根据预先定义好的代码,通过反射机制,执行特殊操作。

6.什么是元注解?
        元注解是描述注解的注解。
        有4种:
                @Target:描述该注解可以标记在什么位置
                        Element.TYPE        标记在类上
                        Element.METHOD        标记在方法上
                        Element.FIELD        标记在成员变量上
               
                @Retention:描述该注解被保留的阶段
                        常使用RetentionPolicy.RUNTIME,表示该注解保留在.class文件中,可以被JVM读取
                       
                @Documented:描述该注解是否被抽取到API文档中
               
                @Inherited:描述该注解是否能被子类继承

7.文件从编译到运行可以分为哪三个时期?
        Source源代码阶段:将.java文件编译成.class字节码文件
        Class类对象阶段:通过类加载器ClassLoader将.class字节码文件加载到内存中
        Runtime运行时阶段:创建对象
       
8.思考:想让一个类加载进内存,有几种方式?
        1、调用类的构造方法,创建该类的对象
                new 类名(参数);
        2、使用ObjectInputStream对象,调用readObject()方法,将文件内容反序列化为对象
        3、先获取该类的Class对象,调用newInstance()方法,创建该类的对象
        4、先获取该类的Class对象,调用getConstructor()方法,获取该类的构造方法,再调用newInstance(参数)方法,创建该类的对象

回复 使用道具 举报
===迷人的反派角色林传伟=====
1.黑盒测试和白盒测试的区别?黑盒测试不需要编写代码,
白盒测试需要编写代码,关注程序的执行过程

2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射就是将类中的各个组成部分封装成对象,反射是框架设计的灵魂.有两点好处,一是可以在程序的运行中操作这些对象,二是可以解耦,提高程序的拓展性

3获取 Class对象有几种方式?他们的用途都在哪?
有三种
Class.forName() 通常用在获取配置文件
类名.class 用于参数的传递
对象.getClass() 对象获取字节码

4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Field getDeclaredField(String name)
Method getDeclaredMethod(方法名)

5.注解在程序中都有哪些用途?
生成文档,通过代码里标识的注解生成doc文档
代码分析,通过代码里的注解对代码进行分析
编译检查,如@Override

6.什么是元注解?
用于描述注解的注解
@Target 描述作用位置
@Retention 描述注解被保留阶段
@Documented 描述是否被抽取到文档中
@Inherited 描述注解是否被子类继承

7.文件从编译到运行可以分为哪三个时期?
源代码阶段
Class类对象阶段
Runtime运行时阶段

8.思考:想让一个类加载进内存,有几种方式?
通过注解
通过配置文件
直接加载
回复 使用道具 举报
彭东亮
1.黑盒测试和白盒测试的区别?
黑盒测试:通过手动点击输入等操作来运行程序,效率低下,不容易发现错误;
白盒测试:通过编写代码来实现所需要测试程序,效率高,能精确定位到错误。
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
反射将类中的各个组成部分,有成员变量,成员方法,构造方法等封装称其他对象,
使用反射有利于降低代码的耦合性,提高代码的拓展性;可以在程序运行过程中,操作这些对象,而不改变类中的任何代码;
3.获取 Class对象有几种方式?他们的用途都在哪?
有三种:(1)类名.class;多用于参数传递;(2)Class.forName(),将字节码文件加载进内存,返回Class对象;多用于配置文件;(3)对象.getClass;多用于对象的获取字节码文件方式。
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
使用暴力反射,来忽略权限修饰符安全检查,或者使用Field[] getDeclaredFields()/Field getDeclaredField(String name) 来获取所有或者指定的成员变量,而不考虑修饰符;Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)/ Constructor<?>[] getDeclaredConstructors()来获取所有或者指定的成员方法,不考虑修饰符;
5.注解在程序中都有哪些用途?
注解可以声明在包,类,字段,方法,局部变量,方法参数等前面,用于对元素进行说明注释;
6.什么是元注解?
用于描述注解的注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码阶段,Class类对象阶段,Runtime运行时阶段
8.思考:想让一个类加载进内存,有几种方式?
三种
通过Class.forName()方法将字节码文件加载进内存;
序列化操作
类加载器
回复 使用道具 举报
1.黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。白盒测试:需要些代码的,关注程序具体的执行流程。

2.将类的各个组成部分封装为其他对象,主要是应用框架上。因为可以在程序运行过程中操作这些对象,可以解耦提高程序的扩展性。

3.Class.forName("全类名"):多用于配置文件。类名.class多用于参数的传递。对象.getClass()多用于对象的获取字节码的方式。

4.获取私有的成员变量可以通过getDeclaredFields()获取私有的成员方法getDeclaredMethods()私有也可以通过暴力反射setAccessible(true)

5.编写文档生成文档doc文档,代码分析使用反射,编译检查Override。

6.元注解:用于描述注解的注解

7.Source源代码阶段,Class类对象阶段,Runtime运行阶段

4.反射,类加载器,反系列化
回复 使用道具 举报
刘慧梅
1.黑盒测试和白盒测试的区别?
输入值,看程序输出的值是否和预想的值一致
需要写代码,注重具体的执行流程
2.什么是反射?反射在程序中的应用场景,我们为什么要使用反射?
3.获取 Class对象有几种方式?他们的用途都在哪?
class.forName(),主要用于配置文件
类名.class(),主要用于参数的传递
对象.getClass(),用于对象获取字节码
4.如何获取Class对象中被私有的成员变量对象和成员方法对象?
Class字节码对象.getDeclaredConstructor()
Class字节码对象.getDeclaredConstructors()
Class字节码对象.getDeclaredMethod()
Class字节码对象.getDeclaredMethods()
5.注解在程序中都有哪些用途?
说明程序,代码分析
6.什么是元注解?
用来描述注解
7.文件从编译到运行可以分为哪三个时期?
Source源代码,Class类加载,Runtime运行
8.思考:想让一个类加载进内存,有几种方式?
反射,序列化,类加载器

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马