【DAY24】内省,NIO的学习笔记

java.lang.Class
java.lang.reflect.Field
java.lang.reflect.Method
java.lang.reflect.Constructor

//static代码块

Class.forName("",boolean , ClassLoader);

JVM结构

----------------

Ru.ntime Data Area

1.Method Area //方法区。 共享

2.Heap //存放对象和数组.共享

//Data access object.
class StudentDao{
	public void insert(Student t){
		....
	}

	public void update(Student t){
		...
	}
}

class TeacherDao{
	public void insert(Teacher t){
		....
	}

	public void update(Teacher t){
		...
	}

	public Teacher findById(Integer id){

	}

	public List<Teacher> findBySQL(String sql){
		...
	}
}

class BaseDao<T,S,K>{
	private S s1 ;
	private List<S> list ;
	public void insert(T t){
		...
	}

	public void update(T t){
		....
	}

	public T findById(Integer id){

	}

	public List<T> findBySQL(String sql){
		...
	}
}

new BaseDao<Teacher,Student,>();

class BigTeacherDao<T> extends BaseDao<>{
	...
}

class TeacherDao extends BaseDao<Teacher>{
}

getDeclaredMethod();

clazz.getDeclaredFields() = Field[]
clazz.getFields[]		=

内省,javabean.

-------------

java.beans.Instrospector //内省器

java.beans.PropertyDescriptor //属性描述符

java.beans.MethodDescriptor //方法描述符

Object --> FeatureDescriptor -> MethodDescriptor

Object --> FeatureDescriptor -> PropertyDescriptor

class Animal{
private String type ;
//getXxxx/setXxx
}
class Dog extends Animal{
private String name ;
private String owner ;
//get/set
}
class Jing8Dog extends Dog{
private int blood ;
//get/set
}
main{
Jing8Dog d1 = new ..();
d1.setXxxx();
...
//使用内省完成副本创建
}

编写工具类:BeanUtil.copyProperties(Object src,Object target);

NIO

-------------------

1.New IO

2.Buffer //缓冲区

java.nio.ByteBuffer //字节缓冲区

{

private int mark = -1;

private int position = 0;

private int limit;

private int capacity;

}

3.DataInputStream //DataInputStream

4.allocating //直接分配空间

5.wrapping //包装

5.direct vs non-direct //

6.HeapByteBuffer //堆字节缓冲区

7.off-heap

//

ByteBuffer buf = ByteBuffer.allocate(1024 * 1024 * 50);

//

Heap :

JvisualVM中的Visual gc插件安装

------------------------

1.进入jvisualvm中

2.工具 --> 插件

3.选中visual gc.

4.安装.

jconsole

------------------------

1.${java_home}/bin/jconsole

2.查看各方面的信息。

Channel

------------------

1.通道.

2.Socket、File、设备的一个连接机制。

3.ByteBuffer和channel结合一起使用

Builder模式

------------------

1.背景

Xxxx xx = new Xxx();

xx.setxxx();

.....

ByteBuffer.allocate vs ByteBuffer.allocateDirect()方法完成1G文件复制。

--------------------------------------------------------------------

1.动态调整缓冲区大小

时间: 2024-11-03 11:02:15

【DAY24】内省,NIO的学习笔记的相关文章

Java NIO、NIO.2学习笔记

相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录 1. NIO.NIO.2简介 2. NIO中的关键技术 1. NIO.NIO.2简介 Java中的输入流.输出流都是阻塞式的输入.输出.不仅如此,传统的输入流.输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向

Java NIO 缓冲区学习笔记

Buffer其实就是是一个容器对象,它包含一些要写入或者刚读出的数据.在NIO中加入Buffer对象,体现了新库与原I/O的一个重要区别.在面向流的I/O中,您将数据直接写入或者将数据直接读到Stream对象中. 在NIO库中,所有数据都是用缓冲区处理的.在读取数据时,它是直接读到缓冲区中的.在写入数据时,它是写入到缓冲区中的.任何时候访问NIO中的数据,您都是将它放到缓冲区中. 缓冲区实质上是一个数组.通常它是一个字节数组,但是也可以使用其他种类的数组.但是一个缓冲区不仅仅是一个数组.缓冲区提

Java NIO 完全学习笔记(转)

本篇博客依照 Java NIO Tutorial翻译,算是学习 Java NIO 的一个读书笔记.建议大家可以去阅读原文,相信你肯定会受益良多. 1. Java NIO Tutorial Java NIO,被称为新 IO(New IO),是 Java 1.4 引入的,用来替代 IO API的. Java NIO:Channels and Buffers 标准的 Java IO API ,你操作的对象是字节流(byte stream)或者字符流(character stream),而 NIO,你操

【DAY25】NIO的学习笔记

NIO:New IO ----------------- 1.ByteBuffer allocate: 堆分配 allocateDirect  : 直接分配. Channel: mark <= position: <= limit <= capacity flip(): 拍板. limit = position ; position = 0 ; clear(): limit = capactiy | position = 0 | mark = -1; rewind(): 重来,pos =

java NIO FileChannel 学习笔记 FileChannel 简介

java NIO 中FileChannel 的实现类是  FileChannelImpl,FileChannel本身是一个抽象类. 先介绍FileChannel File Channels 是线程安全的.Channel的close方法可以随时执行(正如Channel接口所要求的).任何企图修改filechannel 对应文件大小 或者修改 filechannel position的操作都必须串行执行,第二个操作会一直阻塞直到前一个运行完.不过这些方法,具体还要看如何实现.(下文分析FileCha

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com

NIO学习笔记1

NIO引入了三个概念: Buffer 缓冲区 Channel 通道 selector 选择器 1.java.io优化建议 操作系统与Java基于流的I/O模型有些不匹配.操作系统要移动的是大块数据(缓冲区),这往往是在硬件直接存储器存取(DMA)的协助下完成的.I/O类喜欢操作小块数据——单个字节.几行文本.结果,操作系统送来整缓冲区的数据,java.io的流数据类再花大量时间把它们拆成小块,往往拷贝一个小块就要往返于几层对象.操作系统喜欢整卡车地运来数据,java.io类则喜欢一铲子一铲子地加

Foundation 学习笔记

笔记内容 学习笔记-段玉磊 Stanford course Foundation and Attributed Strings Dynamic binding id 是一个指向任何未知对象的指针,(the consept of dynamic binding) 静态类型化:id 不会发生警告 而NSString *s 会发生警告! Nerver use iD ,因为id只是指针,很危险!! 强制转换需要保护! id保护机制 Introspection 内省机制 ,也就是说通过指定id是什么类型

OpenGL ES学习笔记(二)&mdash;&mdash;平滑着色、自适应宽高及三维图像生成

首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--OpenGL ES的基本用法.绘制流程与着色器编译>中实现了OpenGL ES的Android版HelloWorld,并且阐明了OpenGL ES的绘制流程,以及编译着色器的流程及注意事项.本文将从现实世界中图形显示的角度,说明OpenGL ES如何使得图像在移动设备上显示的更加真实.首先,物体有各种颜色