传智播客java培训2010年4月16日JAVA高新技术总结(1)

本文分享了JAVA培训经历,强调JAVA基础知识的重要性,特别是反射等高级概念的应用,并通过具体案例展示如何运用反射操作对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传智播客java培训2010416JAVA高新技术总结(1

今天晚上有一个小小的成就,因为帮助同寝室的同学解决了一个.js方面的问题,学了JQuery也算是没有白学。室友很优秀,虽然只有高中学历,但是完全不比我们班上的本科生差,他有自己的梦想,也有自己的人生规划,同时,最值得我学习的就是,他有着与一般人所没有的坚持和严格的作息时间,他可以做到说十二点睡觉就睡觉,不拖沿。

今天晚上白天的课是ORACLE安装和基本SQL的讲解,所以留着明天把SQL多表查询之后一起进行总结,今天回寝室删悼了以前安装好的ORACLE之后,安装并不顺利。但今天,我又听到了老师讲到的案例故事,一个同学去笔试其实很大我一部分题都是JAVA基础方面的内部,该同学说:其实只有把JAVA基础学打牢固了,其实还是不难!听到这句话,也不是我想临时报佛脚,我也一直都有把JAVA基础的高级部分深入的学习一下,特别是,比如反射,AOP,注释,在后期的学习中有着致关重要的影响,因为框架的使用中,都用到了这些知识,如果对这些知识的了解和掌握了,就可以很轻松的理解这些思想。所谓万丈高楼从低而起,基础是真的很重要,这也是我学这么久的JAVA以来,以及以前的学习过程中体会到的。

1.自动装箱,装箱。  

享元模式 :有很多个小的对象他们有很多的属性相同,把他们变成一对象,那些不同的属性变得方法的参数,作为外部状态,相同的属性作为内部状态。

2.反射

1.当我们想到用什么来封装一个人的与有共性时,我们会想到用一个Person类来封装人的名字,性别,身高等属性以及方法。但是,又想一样,是不是所有的方法都有他们的共性呢?有没有这样一个类,用来封装所有类的共有属性呢?有,JAVA提供了这样一个类,就Class。这就是我们要学习反射时,要操纵的一个类。

2.得到一个类的Class对象有三种方法:(以Person为例),使用的机会都很高,第三种是我们在反射中经常说到的!

a) Person.class

b) Person p = new Person(); p.getClass();

c) Class.forName(Person);

3.所有的基本类型,包装类型以及void都有自己的 class对象。包装类与基础类型的class对象不相同。共享一个class对象。总之,只要在程序中出现的类型都有class与之对象。

4.文凭的重要性!!张老师说的话真是句句精辟,这样才是人类灵魂的工程师噻!虽然他说是想学校多招学生,但他同时更提到的是学历对于学生的重要性!感慨万千!!

5.Constructor类 

a) 代表一个类中的一个构造方法。

1. Constructor[] cns = Class.forName().getConstructor();

a) 根据传入参数来选择。这儿用到了JDK1.5新特性,动态传参。

b)   反射的使用会降低程序的性能。

c)   一个类生成的对象共享一个FieldReflectPoint 有两个属性x,y

ReflectPoint pt1 = new ReflectPoint(3,6);

    ReflectPoint pt2 = new ReflectPoint(3,7);

    Field field = pt1.getClass().getField("y");

System.out.println(field.get(pt2));//输出7

System.out.println(field.get(pt1));//输出6

从上面的案例可以证明,class对象在同一类生成对象的是共享的。

 

//利用反射改变对象的属性的方法

         // Field对象代码一个域对象,类型一个类中的属性,这儿的数据得到了一个类中的所有的域对象

Field[] fields = pt3.getClass().getFields();

for (Field f : fields) {

// f.getType()得到属性的类型

if (f.getType() == String.class) {

// System.out.println(f.get(pt3));

// 得到值

String oldValue = (String) f.get(pt3);

// 替换

String newValue = oldValue.replaceAll("b", "a");

// 重新赋值

f.set(pt3, newValue);

}

}

}

 

//利用方法去调用一个对象的方法,以字符串为例:

//利用反射调用String的方法

String str1 = "abcd";

String s2 =  str1.substring(0,3);

//Method是对方法的封装

//getMethod访求第一个参数是方法名,第二个代表参数的类型,同时是可变长度

Method method = String.class.getMethod("substring", int.class,int.class);

//调用方法

String s3 = (String) method.invoke(str1,0,3);

 

不知不觉就一点了呵!睡觉,明天还得继续奋斗!加油,冉平!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值