反射(类!我叫你,你敢答应吗)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010423091/article/details/47142029

定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。

public class Person {
    String name;
    int age;
    public Person(String name,int age) {

        this.name=name;
        this.age=age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "name:"+name+'\t'+"age:"+age;
    }

}
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@SuppressWarnings("all")
public class SetPerson {
    private String clazzName;
    private Class clazz;
    private Object obj;
    //获得该类的class对象,并创建对象
    private void set(String className) throws Exception{ 
        this.clazz=Class.forName(className); //获得该类的class对象
        Constructor con= clazz.getConstructor(String.class,int.class); //获得类的构造器
        obj= con.newInstance("张三",20); //创建实例
    }
    //设置年龄
    private void setAge(int age) throws Exception{
          Field f= clazz.getDeclaredField("age"); //获得类属性
         f.setAccessible(true);//就是这么霸道
         f.set(obj, age);

    }
    //调用方法
    private void invoke(String name) throws Exception{
        Method m = clazz.getDeclaredMethod("setName",String.class);
        m.invoke(obj, name);
    }
    //来秀秀
    public void show(String className,int age,String name){
        try {
            set(className);
            System.out.println(obj);
            setAge(age);
            System.out.println(obj);
            invoke(name);
            System.out.println(obj);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
    //嗯 你才是老大 大哥你好
    public static void main(String[] args) {
        SetPerson setp=new SetPerson();
        setp.show("com.refect.text.Person", 19, "汪皓");
    }
}
展开阅读全文

你敢吗?抛砖引玉的问题,值得一看

07-13

路过的技术牛人,想请教一个问题。我想用fork产生3个子进程,分别执行不同的任务。并且给他们设定不同的优先级,让他们按照优先级执行。rn我的代码在下面。进程1,child1的优先级是14.child2的优先级是10.child3的优先级是-3.按道理应该是子进程child3先执行。rnrn#includern#includern#includern#includern#includern#includernrnrnvoid main()rnrn pid_t father,child1,child2,child3;rn int prio;rn father=getpid();rn setpriority(PRIO_PROCESS,0,20);rn //nice(10);rn printf("the father ID is : %d\n",father);rn prio=getpriority(PRIO_PROCESS,0);rn printf("the father priority is %d\n",prio);rn child1=fork();rn if(child1==0) rn setpriority(PRIO_PROCESS,0,14);rn prio=getpriority(PRIO_PROCESS,0);rn printf("the child one ID is : %d\n",getpid());rn printf("the child one priority is %d\n",prio);rn rn else if(child1>0)rn child2=fork();rn if(child2==0) rn setpriority(PRIO_PROCESS,0,10);rn prio=getpriority(PRIO_PROCESS,0);rn printf("the child two ID is : %d\n",getpid());rn printf("the child two priority is %d\n",prio);rn rn else if(child2>0)rn child3=fork();rn if(child3==0) rn setpriority(PRIO_PROCESS,0,-3);rn prio=getpriority(PRIO_PROCESS,0);rn printf("the child three ID is : %d\n",getpid());rn printf("the child three priority is %d\n",prio);rn rn else if(child3>0) rn printf("my ID is %d\n",getpid());rn printf("my prio is %d\n",getpriority(PRIO_PROCESS,0));rn rn rn rn rnrnrnrn执行结果是:rn先执行1,再 2,再3rn 论坛

170道Java工程师面试题,你敢挑战吗?

03-24

1、面向对象的特征有哪些方面?rn2、访问修饰符public,private,protected,以及不写(默认)时的区别?rn3、String 是最基本的数据类型吗?rn4、float f=3.4;是否正确?rn5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?rn6、Java有没有goto?rn7、int和Integer有什么区别?rn8、&和&&的区别?rn9、解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。rn10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?rn11、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?rn12、用最有效率的方法计算2乘以8?rn13、数组有没有length()方法?String有没有length()方法?rn14、在Java中,如何跳出当前的多重嵌套循环?rn15、构造器(constructor)是否可被重写(override)?rn16、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?rn17、是否可以继承String类?rn18、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?rn19、String和StringBuilder、StringBuffer的区别?rn20、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?rn21、描述一下JVM加载class文件的原理机制?rn22、char 型变量中能不能存贮一个中文汉字,为什么?rn23、抽象类(abstract class)和接口(interface)有什么异同?rn24、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?rn25、Java 中会存在内存泄漏吗,请简单描述。rn26、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰?rn27、阐述静态变量和实例变量的区别。rn28、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?rn29、如何实现对象克隆?rn31、String s = new String("xyz");创建了几个字符串对象?rn32、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?rn33、一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?rn34、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?rn35、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?rn36、Java 中的final关键字有哪些用法?rn38、数据类型之间的转换:rn39、如何实现字符串的反转及替换?rn40、怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?rn41、日期和时间:rn42、打印昨天的当前时刻。rn43、比较一下Java和JavaSciprt。rn44、什么时候用断言(assert)?rn45、Error和Exception有什么区别?rn46、try里有一个return语句,那么紧跟在这个try后的finally里的代码会不会被执行,什么时候被执行,在return前还是后?rn47、Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?rn48、运行时异常与受检异常有何异同?rn49、列出一些你常见的运行时异常?rn50、阐述final、finally、finalize的区别。rn51、类ExampleA继承Exception,类ExampleB继承ExampleA。rn请问执行此段代码的输出是什么?rn52、List、Set、Map是否继承自Collection接口?rn53、阐述ArrayList、Vector、LinkedList的存储性能和特性。rn54、Collection和Collections的区别?rn55、List、Map、Set三个接口存取元素时,各有什么特点?rn56、TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?rn57、Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?rn58、线程的sleep()方法和yield()方法有什么区别?rn59、当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?rn60、请说出与线程同步以及线程调度相关的方法。rn61、编写多线程程序有几种实现方式?rn62、synchronized关键字的用法?rn63、举例说明同步和异步。rn64、启动一个线程是调用run()还是start()方法?rn65、什么是线程池(thread pool)?rn66、线程的基本状态以及状态之间的关系?rn67、简述synchronized 和java.util.concurrent.locks.Lock的异同?rn68、Java中如何实现序列化,有什么意义?rn69、Java中有几种类型的流?rn70、写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。rn71、如何用Java代码列出一个目录下所有的文件?rn72、用Java的套接字编程实现一个多线程的回显(echo)服务器。rn73、XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?rn74、你在项目中哪些地方用到了XML?rn75、阐述JDBC操作数据库的步骤。rn76、Statement和PreparedStatement有什么区别?哪个性能更好?rn77、使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?rn78、在进行数据库编程时,连接池有什么作用?rn79、什么是DAO模式?rn80、事务的ACID是指什么?rn81、JDBC中如何进行事务处理?rn82、JDBC能否处理Blob和Clob?rn83、简述正则表达式及其用途。rn84、Java中是如何支持正则表达式操作的?rn85、获得一个类的类对象有哪些方式?rn86、如何通过反射创建对象?rn87、如何通过反射获取和设置对象私有字段的值?rn88、如何通过反射调用对象的方法?rn89、简述一下面向对象的"六原则一法则"。rn90、简述一下你了解的设计模式。rn91、用Java写一个单例类。rn92、什么是UML?rn93、UML中有哪些常用的图?rn94、用Java写一个冒泡排序。rn95、用Java写一个折半查找。rn96、阐述Servlet和CGI的区别?rn97、Servlet接口中有哪些方法?rn98、转发(forward)和重定向(redirect)的区别?rn99、JSP有哪些内置对象?作用分别是什么?rn100、get和post请求的区别?rn101、常用的Web服务器有哪些?rn102、JSP和Servlet是什么关系?rn103、讲解JSP中的四种作用域。rn104、如何实现JSP或Servlet的单线程模式?rn105、实现会话跟踪的技术有哪些?rn106、过滤器有哪些作用和用法?rn107、监听器有哪些作用和用法?rn108、web.xml文件中可以配置哪些内容?rn109、你的项目中使用过哪些JSTL标签?rn110、使用标签库有什么好处?如何自定义JSP标签?rn111、说一下表达式语言(EL)的隐式对象及其作用。rn112、表达式语言(EL)支持哪些运算符?rn113、Java Web开发的Model 1和Model 2分别指的是什么?rn114、Servlet 3中的异步处理指的是什么?rn115、如何在基于Java的Web项目中实现文件上传和下载?rn116、服务器收到用户提交的表单数据,到底是调用Servlet的doGet()还是doPost()方法?rn117、JSP中的静态包含和动态包含有什么区别?rn118、Servlet中如何获取用户提交的查询参数或表单数据?rn119、Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?rn120、如何设置请求的编码以及响应内容的类型?rn121、解释一下网络应用的模式及其特点。rn122、什么是Web Service(Web服务)?rn123、概念解释:SOAP、WSDL、UDDI。rn124、Java规范中和Web Service相关的规范有哪些?rn125、介绍一下你了解的Java领域的Web Service框架。rn126、什么是ORM?rn127、持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些?rn128、Hibernate中SessionFactory是线程安全的吗?Session是线程安全的吗(两个线程能够共享同一个Session吗)?rn129、Hibernate中Session的load和get方法的区别是什么?rn130、Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分别是做什么的?有什么区别?rn131、阐述Session加载实体对象的过程。rn132、Query接口的list方法和iterate方法有什么区别?rn133、Hibernate如何实现分页查询?rn134、锁机制有什么用?简述Hibernate的悲观锁和乐观锁机制。rn135、阐述实体对象的三种状态以及转换关系。rn136、如何理解Hibernate的延迟加载机制?在实际应用中,延迟加载与Session关闭的矛盾是如何处理的?rn137、举一个多对多关联的例子,并说明如何实现多对多关联映射。rn138、谈一下你对继承映射的理解。rn139、简述Hibernate常见优化策略。rn140、谈一谈Hibernate的一级缓存、二级缓存和查询缓存。rn141、Hibernate中DetachedCriteria类是做什么的?rn142、@OneToMany注解的mappedBy属性有什么作用?rn143、MyBatis中使用#和$书写占位符有什么区别?rn144、解释一下MyBatis中命名空间(namespace)的作用。rn145、MyBatis中的动态SQL是什么意思?rn146、什么是IoC和DI?DI是如何实现的?rn147、Spring中Bean的作用域有哪些?rn148、解释一下什么叫AOP(面向切面编程)?rn149、你是如何理解"横切关注"这个概念的?rn150、你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?rn151、Spring中自动装配的方式有哪些?rn152、Spring中如何使用注解来配置Bean?有哪些相关的注解?rn153、Spring支持的事务管理类型有哪些?你在项目中使用哪种方式?rn154、如何在Web项目中配置Spring的IoC容器?rn155、如何在Web项目中配置Spring MVC?rn156、Spring MVC的工作原理是怎样的?rn157、如何在Spring IoC容器中配置数据源?rn158、如何配置配置事务增强?rn159、选择使用Spring框架的原因(Spring框架为企业级开发带来的好处有哪些)?rn160、Spring IoC容器配置Bean的方式?rn161、阐述Spring框架中Bean的生命周期?rn162、依赖注入时如何注入集合属性?rn163、Spring中的自动装配有哪些限制?rn164、在Web项目中如何获得Spring的IoC容器?rn165. 大型网站在架构上应当考虑哪些问题?rn166、你用过的网站前端优化的技术有哪些?rn167、你使用过的应用服务器优化技术有哪些?rnrnrn你能答对几道呢?也可以加我好友一起讨论。rn 论坛

没有更多推荐了,返回首页