`
羽风之扬
  • 浏览: 86091 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第十课

阅读更多
目标
    回顾昨天内容
掌握 Java 反射的实现方法
了解 Java 线程的基础知识
掌握 Java 线程的创建方法
了解 Java 线程的几种状态

1、回顾昨天内容
回顾反射的基本作用,一般在框架中使用。如 Spring
框架中有一个面向切面编程的方法:
   (1)原始方法:当一个类中要用到另外一个类的对象,
直接定义,并创建对象,这样代码固定在类中,无法动态修改
public class UserManagerService {
private UserAction userAction=new UserAction();
}
   (2)灵活方法:在类中不直接创建对象,而是通过 setter
方法,给变量赋值。
public class UserManagerService {
    private UserAction userAction;

//外界创建好对象后,赋值给类属性的方法
public void setUserAction(UserAction userAction) {
this.userAction = userAction;
}
}

   外界由框架帮助我们自动根据 xml 配置来创建出对应的
对象
  <bean id="userAction"
        class="ambow.ecport.action.UserAction">
  </bean> 
 
  如果遇到条件改变,可以通过修改配置文件来改变整个
程序中,对象的引用,不需要修改代码。
  <bean id="userAction"
        class="ambow.ecport.action.ManagerAction">
  </bean>

  动态的配置相当于大家,拿到叫外卖的菜单。
  


2、掌握 Java 反射的实现方法
  Student stu = new Student(); // 正向创建对象
 
  //得到类反向创建
  Class c3 = Class.forName("edu.hpu.javaadv.day9.Student");
  Object stu = c3.newInstance();

  //得到构造方法,反向创建 
   Constructor[] cus = c.getConstructors(); 
  //默认构造
  Constructor cu1 = c.getConstructor();
  //带参构造
  Constructor cu2 = c.getConstructor(new Class[]{String.class,int.class});

  //默认构造反向创建对象
  Object o1 = cu1.newInstance();
  //带参构造反向创建对象
  Object o2 = cu2.newInstance(new Object[]{"马飞",22});

  反射得到一个类中的字段
  Field[] farr = c.getDeclaredFields(); 
  Field f =  c.getDeclaredField(String name)

  反射得到一个类中的方法
  Class c = Class.forName(classname);
  Object obj  = c.newInstance(); 
  Method setMethod = c.getMethod("setName", new Class[]{String.class});
  m.invoke(obj, new Object[]{"王五"});
 
  //正向调用一个方法
  Student stu = new Student();
  stu.setName("王五");

3、了解 Java 线程的基础知识
进程:当前操作系统中,正在运行的程序叫进程,一个
程序是一个进程。(任务管理器中查看)
    所有的进程由操作系统控制。
    (1)一个进程占据一大块内存空间
    (2)一次只有一个当前进程在使用 CPU
(3)当我们切换程序的时候,操作系统要进程切换,

如果一个进程所占用的资源太多,进程间切换很慢!
一般程序要求进程间切换要非常快。
    线程就是解决程序切换速度慢的问题而出现的。
    线程就是小的进程:如:把一个大程序的进程,拆分成
n 个小的进程,那么程序运行时,切换的速度就会块很多。
这样要的进程叫做线程。

 
 










分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics