- 浏览: 97200 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
jameswolf:
补肾啊!冬天多喝,但是补只是后招,别漏才是真理,呵呵
朋友告诉我的神粥秘方 -
wa327114652:
很想学习,但能再详细点吗?
for java beginner 5-2 - 自己实现枚举-下 -
superlittlefish:
不错,简单易懂.一直在看你的blog,感觉反射写的挺好的.让我 ...
for java beginner 15 下java反射在框架里的应用 读取properties文件
java 反射 的基础基础 Class的理解
反射 在 1.2 的时候就有了,
基本上所有的框架都会用到.
有的小东西 e.g. junit 也用到了,
反射无处不在的
要了解 反射 必须必须必须了解一个 类 类的类 Class
类-->描述一类事物,规定你应该有什么属性,不应该有什么属性
至于属性的具体值是什么,无所谓!由具体对象决定
User类--> 规定了你有姓名,年龄等属性的一类东西
生活里还有一类东西,就是我们编程时用的 类
这一类东西, 我们用 Class 来抽象
那么Class类 规定了编程时用的类 应该有些什么东西呢???
最最起码要规定
你应该有一个名字吧
你应该有一个包名吧
你应该有一堆属性信息
你应该有一堆方法信息
父类是什么
实现了什么接口
等等。。。
.................
=========================
Person p1 = new Person();
Person p2 = new Person();
上面人人都知道
那么下面呢??
Class clazz1 = ?;
Class clazz2 = ?;
这几个问号该怎么办呢??
Class clazz = new Class(); //JAVA里没有这种规定
Class代表内存里的一堆 字节码 的抽象
Class clazz = 字节码 ; 这是对的
解释一下什么是 字节码?
当程序去compile 这一行代码时
Person p1 = new Person();
JVM需要去 disk 上加载Person 的字节码 *.class 文件 到内存里
把p1指向那一堆 字节码,改属性就是改 这堆东西的内容.
当然一个程序不仅仅是需要一堆 Person 字节码,
还需要其他的,比如 Date Math 等,
那么 内存就有三堆 字节码,
★也就是 三个 Class的实例 !!!
我们可以这样写
Class clazz = Person.class ;
Class clazz = Date.class ;
可以这么简单的理解
Class 是一堆一堆 字节码 的抽象 [码里有名字,包名,属性信息,方法信息..]
clazz 是一堆字节码的 引用
Person.class 代表一堆实实在在的 字节码
Person p1 = new Person();
p1代表什么呢??
代表那一堆 字节码 生成 的对象,
那么这有没有方法得到 那堆 字节码呢?
有!!p1.getClass();
现在有两种方法 得到 字节码:
Class clazz1 = Person.class;
Class clazz2 = p1.getClass();
还有一种方法
Class.forName("java.lang.String")
这也可以得到一份 字节码
[直接内存里拿,内存里没有就用 类加载器去加载]
总的有三种方法!!!
Class clazz1 = Date.class;
p1.getClass();
Class.forName("java.lang.String");
最后一种用法最最广: 你给我名字好了,我自己去找那份字节码,不用写死!
[记得动态Form么?就是在XML写好的类名字]
最后一种写法有两个用途:
1 返回一份字节码
2 把那份字节码 import 到 JVM 里
整个JAVA里有9个预定义的 Class实例
就是9份 字节码
8个基本 加 一个void
Class clazz = void.class;//呵呵,从来不会有人用,但是是对的
int.class == Integer.TYPE;
======================
=======================
反射 在 1.2 的时候就有了,
基本上所有的框架都会用到.
有的小东西 e.g. junit 也用到了,
反射无处不在的
要了解 反射 必须必须必须了解一个 类 类的类 Class
类-->描述一类事物,规定你应该有什么属性,不应该有什么属性
至于属性的具体值是什么,无所谓!由具体对象决定
User类--> 规定了你有姓名,年龄等属性的一类东西
生活里还有一类东西,就是我们编程时用的 类
这一类东西, 我们用 Class 来抽象
那么Class类 规定了编程时用的类 应该有些什么东西呢???
最最起码要规定
你应该有一个名字吧
你应该有一个包名吧
你应该有一堆属性信息
你应该有一堆方法信息
父类是什么
实现了什么接口
等等。。。
.................
=========================
Person p1 = new Person();
Person p2 = new Person();
上面人人都知道
那么下面呢??
Class clazz1 = ?;
Class clazz2 = ?;
这几个问号该怎么办呢??
Class clazz = new Class(); //JAVA里没有这种规定
Class代表内存里的一堆 字节码 的抽象
Class clazz = 字节码 ; 这是对的
解释一下什么是 字节码?
当程序去compile 这一行代码时
Person p1 = new Person();
JVM需要去 disk 上加载Person 的字节码 *.class 文件 到内存里
把p1指向那一堆 字节码,改属性就是改 这堆东西的内容.
当然一个程序不仅仅是需要一堆 Person 字节码,
还需要其他的,比如 Date Math 等,
那么 内存就有三堆 字节码,
★也就是 三个 Class的实例 !!!
我们可以这样写
Class clazz = Person.class ;
Class clazz = Date.class ;
可以这么简单的理解
Class 是一堆一堆 字节码 的抽象 [码里有名字,包名,属性信息,方法信息..]
clazz 是一堆字节码的 引用
Person.class 代表一堆实实在在的 字节码
Person p1 = new Person();
p1代表什么呢??
代表那一堆 字节码 生成 的对象,
那么这有没有方法得到 那堆 字节码呢?
有!!p1.getClass();
现在有两种方法 得到 字节码:
Class clazz1 = Person.class;
Class clazz2 = p1.getClass();
还有一种方法
Class.forName("java.lang.String")
这也可以得到一份 字节码
[直接内存里拿,内存里没有就用 类加载器去加载]
总的有三种方法!!!
Class clazz1 = Date.class;
p1.getClass();
Class.forName("java.lang.String");
最后一种用法最最广: 你给我名字好了,我自己去找那份字节码,不用写死!
[记得动态Form么?就是在XML写好的类名字]
最后一种写法有两个用途:
1 返回一份字节码
2 把那份字节码 import 到 JVM 里
整个JAVA里有9个预定义的 Class实例
就是9份 字节码
8个基本 加 一个void
Class clazz = void.class;//呵呵,从来不会有人用,但是是对的
int.class == Integer.TYPE;
======================
package com.ncs; public class ReflectTest { public static void main(String[] args) throws Exception { String str = "hubin"; Class clazz1 = str.getClass(); Class clazz2 = String.class; Class clazz3 = Class.forName("java.lang.String"); System.out.println(clazz1 == clazz2); //true System.out.println(clazz1 == clazz3); //true //所以,在内存里 字节码 都是一份的, System.out.println(clazz1.isPrimitive()); // false 不是基本类型 String肯定不是基本类型 System.out.println(int.class.isPrimitive()); // true 这个是基本类型 System.out.println(int.class == Integer.class); //false int是一分字节码 Integer 也是另一份字节码 System.out.println(int.class == Integer.TYPE); //true 这是SUN给我们弄的 那个TYPE 得到包装类基本类的 字节码 System.out.println(int[].class.isPrimitive()); // false 你这个数组了 System.out.println(int[].class.isArray()); // true 这可以判断数组 //void 也是TYPE //总之,只要在源程序里出现的类型 //都有自己的Class实例对象 //e.g. int[] void //void 也是类型, 这个类型表示没有类型 } }
=======================
发表评论
-
pull解析器通用解析XML与生成XML
2013-02-23 14:52 0pull解析器,简单易用,android都在用,肯定有他的优 ... -
java decompiler - a tool to view jar file
2012-02-15 22:26 1026有时候还是很需要看看人家JAR包里写的什么乱七八糟的东西,这东 ... -
JAVA工作
2011-07-20 21:11 733################## Applet ... -
helios-use-subversion-behind-proxy
2011-04-04 16:30 769download the eclipse helios in ... -
IBM发布时间不足解决方法
2011-02-17 19:16 767D:\IBM\SDP\runtimes\base_v61\p ... -
log4j简单例子
2010-10-03 18:27 877简单点说, 写程序时,有时懒得debug,就直接Sy ... -
java 泛型-1-使用而已
2009-12-01 23:39 1131023-java1.5泛型-1 懒人想的 把检查代码的工作交 ... -
java 1.5 annotation-3 设值让反射拿
2009-12-01 20:39 1579java 1.5 annotation 的use 前面的什么 ... -
java 1.5 annotation-2
2009-11-30 23:28 1188java 1.5 注解-2[非常重要 比每举重要] 刚刚只是 ... -
java 1.5 annotation-1
2009-11-30 21:07 1326java 1.5 注解[非常重要 比每举重要] 1.5后的新 ... -
for java beginner-19 beanutils包
2009-11-29 22:20 756019-使用BeanUtils工具包操 ... -
for java beginner-18 JAVABEAN规范-1
2009-11-29 21:12 1038018-JAVABEAN规范-1 IntroSpec ... -
for java beginner 17 配置文件的知识
2009-11-29 19:29 785017 配置文件的知识 刚刚已经说到 配置文件,我说放 工程 ... -
for java beginner 15 下java反射在框架里的应用 读取properties文件
2009-11-29 17:44 1391java 框架基础 ------------------- ... -
for java beginner 14 ArrayList HashSet HashCode(中)
2009-11-29 13:24 1153java 反射 数组的反射 ArrayList HashSe ... -
for java beginner13java 反射 数组的反射(上)其实是讲ArrayList HashSet HashCode
2009-11-29 12:35 940java 反射 数组的反射(上 ... -
for java beginner12数组的反射的应用
2009-11-29 10:04 1046java 反射 数组的反射 数组也是一种类型,当然可以反射 ... -
for java beginner11 java 反射 Method类
2009-11-29 08:30 1305java 反射 Method类 str1.charAt() ... -
for java beginner10 java 反射 Field类
2009-11-29 07:17 3565java 反射 Field类 -------用到一个bea ... -
for java beginner 9 java反射的概念和Constructor 类
2009-11-29 07:13 1416java 反射 的概念 和 Constructor 类 反 ...
相关推荐
ysoserial是一个用于生成利用不安全的Java对象反序列化的有效负载的概念验证工具。它包含一系列在常见Java库中发现的"gadget chains",可以在特定条件下利用执行不安全的反序列化操作的Java应用程序。ysoserial项目最初在2015年AppSecCali会议上提出,包含针对Apache Commons Collections(3.x和4.x版本)、Spring Beans/Core(4.x版本)和Groovy(2.3.x版本)的利用链
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2530上运行,如果是其他型号芯片,请自行移植。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、例程具有一定专业性,非专业人士请谨慎操作。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
**Oracle 10g DBA学习手册:安装Oracle和构建数据库** **目的:** 本章节旨在指导您完成Oracle数据库软件的安装和数据库的创建。您将通过Oracle Universal Installer (OUI)了解软件安装过程,并学习如何利用Database Configuration Assistant (DBCA)创建附加数据库。 **主题概览:** 1. 利用Oracle Universal Installer (OUI)安装软件 2. 利用Database Configuration Assistant (DBCA)创建数据库 **第2章:Oracle软件的安装与数据库构建** **Oracle Universal Installer (OUI)的运用:** Oracle Universal Installer (OUI)是一个图形用户界面(GUI)工具,它允许您查看、安装和卸载机器上的Oracle软件。通过OUI,您可以轻松地管理Oracle软件的安装和维护。 **安装步骤:** 以下是使用OUI安装Oracle软件并创建数据库的具体步骤:
消防验收过程服务--现场记录表.doc
数据库管理\09-10年第1学期数据库期末考试试卷A(改卷参考).doc。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
职业暴露后的处理流程.docx
Java Web开发短消息系统
项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7
这是一款可以配置过滤目录及过滤的文件后缀的工具,并且支持多个项目同时输出导出,并过滤指定不需要导出的目录及文件后缀。 导出后将会保留原有的路径,并在新的文件夹中体现。
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
YOLO算法-挖掘机与火焰数据集-7735张图像带标签-挖掘机.zip
操作系统实验 Ucore lab5
IMG_5950.jpg
竞选报价评分表.docx
java系统,mysql、springboot等框架
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用IAR软件开发,当前在CC2530上运行,如果是其他型号芯片,请自行移植。 3、软件下载时,请注意接上硬件,并确认烧录器连接正常。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、例程具有一定专业性,非专业人士请谨慎操作。
YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;
内容概要:本文详细讲解了搜索引擎的基础原理,特别是索引机制、优化 like 前缀模糊查询的方法、建立索引的标准以及针对中文的分词处理。文章进一步深入探讨了Lucene,包括它的使用场景、特性、框架结构、Maven引入方法,尤其是Analyzer及其TokenStream的实现细节,以及自定义Analyzer的具体步骤和示例代码。 适合人群:数据库管理员、后端开发者以及希望深入了解搜索引擎底层实现的技术人员。 使用场景及目标:适用于那些需要优化数据库查询性能、实施或改进搜索引擎技术的场景。主要目标在于提高数据库的访问效率,实现高效的数据检索。 阅读建议:由于文章涉及大量的技术术语和实现细节,建议在阅读过程中对照实际开发项目,结合示例代码进行实践操作,有助于更好地理解和吸收知识点。