Java高级(反射)【Day10】

目标
回顾昨天内容
掌握 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 个小的进程,那么程序运行时,切换的速度就会块很多。
这样要的进程叫做线程。

去食堂吃午饭-----进程(11:20---12:00)
拆分成更小的进程:
(1)下楼(5)
(2)从教学楼到食堂(6)
(3)排队(10)
(4)打菜(5)
(5)打饭(2)
(6)打汤(1)
(7)吃饭(15)
(8)回收碗筷()
(9)离开食堂,结束进程




4、掌握 Java 线程的创建方法

5、了解 Java 线程的几种状态

6、使用反射,拷贝一个对象
"com.ambow.ects.UserBean"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值