黑马程序员-----简短的补充,java基础提高
来源:互联网 发布:java image类用法 编辑:程序博客网 时间:2024/05/01 18:23
ASP.Net+Android+IO开发S、.Net培训、期待与您交流!交通灯管理系统:
dao -->data access object ---->crud(对数据库的增删改查)
1、java的泛型类:
如果一个类的实例对象中的度要使用同一个泛型参数,即类中定义的方法使用同一种类型,并且这一个类型在类定义时指明
定义格式为class GenericDao<T>{
public void add(T t){}
public T getById(int id){}
public void deleteById(int id){}
public void update(T t){}
public List<T> findById(int id){}
}
这样我们在使用该类对象时,我们就可以通过改变T的类型的就可以使用该类;注意:泛型类型不能用在静态方法中,但是可以public static <T> getById(int id)();
GenericDao<People> dao = new GenericDao<People>;
2、类加载器:java vm提供了三个类加载器,可以看我附加的图片可以看到这三个加载器的关系,这三个类加载器符合树状结构,同时可以知道每个加载类的都有自己的管辖范围。类加载器有将类的字节码加载到内存中的功能。
类加载器的委托机制:当某个加载器加载类时,如果它有父类的加载器时,它不会先找是否找到时,它会将请求委托给父类,父类如果还有父类时,它会在委托给上级,当上级找不到时,它会交给子类,一直退回到发起者时,这是还没找到时,就会抛出异常
自己的类加载器的说明:要编写一个类加载器时,就必须实现ClassLoader类,有构造函数可知我们可以现指定该类的一个父类(类加载器),同时还要重写它的一个方法findClass,因为ClassLoad类使用模板方法设计模式实现的,所以我们只要提供如何找到对应的字节码就可以传递参数来实现,并由父类的方法实现委托机制
模板方法设计模式:父类中提供一个loadClass,父类中定义好执行流程,而局部流程父类不知道,由子类来完成,这就是模板方法设计模式
下面编写的类加载器主要功能就是将通过自定义的类加载器将类的字节码文件找到并通过解迷算法获得类的真实字节码,将真实字节码加载到内存中去
@SuppressWarnings("deprecation")
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
String classFileName = classDir+File.separator+name+".class";
try {
FileInputStream fis = new FileInputStream(classFileName);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
cypher(fis, bos);
fis.close();
byte[] bytes = bos.toByteArray();
return defineClass(bytes, 0, bytes.length);//将解密的字节码写入字节码中
}catch(Exception e)
{
throw new Exception(e);
}
return super.findClass(name);//调用上一级类加载器
}
3、代理,java中的代理就是通过代理,并对原有的功能进行提升,当用户使用代理就可获得功能更强的类。AOP面向方面的编程。在java虚拟机中只能生产有接口的类的子类,如果一个类没有实现接口,我们可以用CGLIB库实现。代理我们可以在源代码前,代码后,代码前后,或者在异常处理中
- 黑马程序员-----简短的补充,java基础提高
- 黑马程序员-Java语法基础(补充)
- 黑马程序员--Java语言基础补充
- 黑马程序员--Java语言基础补充2
- 黑马程序员—java基础之GUI与前期补充
- 黑马程序员—基础篇之初识java语法补充
- 黑马程序员——对基础的补充
- 黑马程序员——java基础 io 流 (提高流的读写效率)BufferedReader,BufferedWriter
- 黑马程序员 反射的补充
- 黑马程序员__ADO.NET基础(补充)
- 黑马程序员 基础 泛型补充
- 黑马程序员--------java提高-- 多线程
- 黑马程序员——Java基础知识补充
- 黑马程序员------java基础
- 黑马程序员-Java基础
- 黑马程序员----JAVA基础
- 黑马程序员--Java基础
- 黑马程序员-Java基础
- 学习新技术的10个建议
- 今天下午闲着无聊就用一个小时配置了Hadoop(本机的伪分布式配置 ),稍稍总结一下。
- 学习hibernate总结
- 【读书笔记】并发编程需要注意的几个典型问题
- C++拷贝构造函数详解
- 黑马程序员-----简短的补充,java基础提高
- HDU 1116
- 哈,今天终于在电脑上吧oracle给装上了
- Python socket编程
- 带exists运算符的关联子查询(重点)
- Linux下几种RTP协议实现的比较和JRTPLIB编程讲解
- Xml+Xslt测试工具
- Linux中的硬链接和软链接
- JEECG 命名规范