学习的总结

article/2025/9/22 1:59:12

java.lang.Class 类

java.lang.Class 类是实现反射的关键所在,Class 类的一个实例表示 Java 的一种数据类型,包括类、接口、枚举、注解(Annotation)、数组、基本数据类型和 void。Class 没有公有的构造方法,Class 实例是由 JVM 在类加载时自动创建的。

public class ReflectionTest01 {public static void main(String[] args) {// 获得Class实例// 1.通过类型class静态变量Class clz1 = String.class;String str = "Hello";// 2.通过对象的getClass()方法Class clz2 = str.getClass();// 获得int类型Class实例Class clz3 = int.class;// 获得Integer类型Class实例Class clz4 = Integer.class;System.out.println("clz2类名称:" + clz2.getName());System.out.println("clz2是否为接口:" + clz2.isInterface());System.out.println("clz2是否为数组对象:" + clz2.isArray());System.out.println("clz2父类名称:" + clz2.getSuperclass().getName());System.out.println("clz2是否为基本类型:" + clz2.isPrimitive());System.out.println("clz3是否为基本类型:" + clz3.isPrimitive());System.out.println("clz4是否为基本类型:" + clz4.isPrimitive());}
}
​
//clz2类名称:java.lang.String
//clz2是否为接口:false
//clz2是否为数组对象:false
//clz2父类名称:java.lang.Object
//clz2是否为基本类型:false
//clz3是否为基本类型:true
//clz4是否为基本类型:false

java.lang.reflect 包

java.lang.reflect 包提供了反射中用到类,主要的类说明如下:

Constructor 类:提供类的构造方法信息。

Field 类:提供类或接口中成员变量信息。

Method 类:提供类或接口成员方法信息。

Array 类:提供了动态创建和访问 Java 数组的方法。

Modifier 类:提供类和成员访问修饰符信息。

public class ReflectionTest02 {public static void main(String[] args) {try {// 动态加载xx类的运行时对象Class c = Class.forName("java.lang.String");// 获取成员方法集合Method[] methods = c.getDeclaredMethods();// 遍历成员方法集合for (Method method : methods) {// 打印权限修饰符,如public、protected、privateSystem.out.print(Modifier.toString(method.getModifiers()));// 打印返回值类型名称System.out.print(" " + method.getReturnType().getName() + " ");// 打印方法名称System.out.println(method.getName() + "();");}} catch (ClassNotFoundException e) {System.out.println("找不到指定类");}}
}

Constructor类的常用方法

通过 java.lang.reflect.Modifier 类可以解析出 getMocMers() 方法的返回值所表示的修饰符信息。在该类中提供了一系列用来解析的静态方法,既可以查看是否被指定的修饰符修饰,还可以字符串的形式获得所有修饰符。

Modifier类的常用方法

int modifiers = con.getModifiers();    // 获取构造方法的修饰符整数
boolean isPublic = Modifier.isPublic(modifiers);    // 判断修饰符整数是否为public 
string allModifiers = Modifier.toString(modifiers);

Method 类的常用方法

public class Book1 {// static 作用域方法static void staticMethod() {System.out.println("执行staticMethod()方法");}// public 作用域方法public int publicMethod(int i) {System.out.println("执行publicMethod()方法");return 100 + i;}// protected 作用域方法protected int protectedMethod(String s, int i) throws NumberFormatException {System.out.println("执行protectedMethod()方法");return Integer.valueOf(s) + i;}// private 作用域方法private String privateMethod(String... strings) {System.out.println("执行privateMethod()方法");StringBuffer sb = new StringBuffer();for (int i = 0; i < sb.length(); i++) {sb.append(strings[i]);}return sb.toString();}
}

输入输出流

输入就是将数据从各种输入设备(包括文件、键盘等)中读取到内存中,输出则正好相反,是将数据写入到各种输出设备(比如文件、显示器、磁盘等)。

数据流是 Java 进行 I/O 操作的对象,它按照不同的标准可以分为不同的类别。

1、按照流的方向主要分为输入流和输出流两大类。

2、数据流按照数据单位的不同分为字节流和字符流。

3、按照功能可以划分为节点流和处理流。

系统流对应的类为 java.lang.System

System.in:标准输入流,默认设备是键盘。

System.out:标准输出流,默认设备是控制台。

System.err:标准错误流,默认设备是控制台。

File类

public class Test02 {public static void main(String[] args) {String path = "C:/windows/"; // 指定文件所在的目录File f = new File(path, "notepad.exe"); // 建立File变量,并设定由f变量引用System.out.println("C:\\windows\\notepad.exe文件信息如下:");System.out.println("============================================");System.out.println("文件长度:" + f.length() + "字节");System.out.println("文件或者目录:" + (f.isFile() ? "是文件" : "不是文件"));System.out.println("文件或者目录:" + (f.isDirectory() ? "是目录" : "不是目录"));System.out.println("是否可读:" + (f.canRead() ? "可读取" : "不可读取"));System.out.println("是否可写:" + (f.canWrite() ? "可写入" : "不可写入"));System.out.println("是否隐藏:" + (f.isHidden() ? "是隐藏文件" : "不是隐藏文件"));System.out.println("最后修改日期:" + new Date(f.lastModified()));System.out.println("文件名称:" + f.getName());System.out.println("文件路径:" + f.getPath());System.out.println("绝对路径:" + f.getAbsolutePath());}
}
/**
C:\windows\notepad.exe文件信息如下:
============================================
文件长度:193536字节
文件或者目录:是文件
文件或者目录:不是目录
是否可读:可读取
是否可写:可写入
是否隐藏:不是隐藏文件
最后修改日期:Mon Dec 28 02:55:19 CST 2016
文件名称:notepad.exe
文件路径:C:\windows\notepad.exe
绝对路径:C:\windows\notepad.exe
*/
public class Test03 {public static void main(String[] args) throws IOException {File f = new File("C:\\test.txt"); // 创建指向文件的File对象if (f.exists()) // 判断文件是否存在{f.delete(); // 存在则先删除}f.createNewFile(); // 再创建}
}

查找文件

File 类的 list() 方法提供了遍历目录功能

public class Demon {public static void main(String[] args) {File f = new File("C:/"); // 建立File变量,并设定由f变量变数引用System.out.println("文件名称\t\t文件类型\t\t文件大小");System.out.println("===================================================");String fileList[] = f.list(); // 调用不带参数的list()方法for (int i = 0; i < fileList.length; i++) { // 遍历返回的字符数组System.out.print(fileList[i] + "\t\t");System.out.print((new File("C:/", fileList[i])).isFile() ? "文件" + "\t\t" : "文件夹" + "\t\t");System.out.println((new File("C:/", fileList[i])).length() + "字节");}}
}

创建和删除文件

File 类不仅可以获取已知文件的属性信息,还可以在指定路径创建文件,以及删除一个文件。创建文件需要调用 createNewFile() 方法,删除文件需要调用 delete() 方法。无论是创建还是删除文件通常都先调用 exists() 方法判断文件是否存在。

public class Test03 {public static void main(String[] args) throws IOException {File f = new File("C:\\test.txt"); // 创建指向文件的File对象if (f.exists()) // 判断文件是否存在{f.delete(); // 存在则先删除}f.createNewFile(); // 再创建}
}

创建和删除目录

File 类除了对文件的创建和删除外,还可以创建和删除目录。创建目录需要调用 mkdir() 方法,删除目录需要调用 delete() 方法。无论是创建还是删除目录都可以调用 exists() 方法判断目录是否存在。

public class Test04 {public static void main(String[] args) {String path = "C:/config/"; // 指定目录位置File f = new File(path); // 创建File对象if (f.exists()) {f.delete();}f.mkdir(); // 创建目录}
}

 


http://chatgpt.dhexx.cn/article/TqQV4VgM.shtml

相关文章

怎样学好英语?(多年英语学习经验总结)

英语到底怎么学&#xff1f;我总结自身之前英语&#xff0c;西班牙语&#xff0c;以及日语三门语言的学习经验&#xff0c;提炼一套语言学习方法&#xff0c;特别花了两周写出这篇万字精华攻略&#xff0c;干货满满&#xff0c;建议先赞再看&#xff0c;从英语学习的方法论到不…

SQL学习经验总结(第一期)共6期

目录 一、数据库基础 1、什么是数据库 2、数据库的基本概念 2.1、数据库的发展 2.2、数据库管理系统 2.3、数据库系统 2.4、数据模型 2.5、关系数据模型结构 2.6、RDBMS常用专业术语 3、SQL语言简介&#xff1a; 3.1、SQL的分类 4、MySQL数据库 4.1、MySQL数据库的…

OpenCv相机标定——圆形标定板标定

OpenCv相机标定——圆形标定板标定 0.前言1.标定图案2.OpenCv标定3.标定结果分析 0.前言 OpenCv中&#xff0c;相机标定所使用的标定图案分为棋盘格、对称圆形及非对称圆形特征图、ArUco板和ChArUco板等。在OpenCV的官方例程中&#xff0c;采用的是棋盘格图案&#xff0c;因为其…

线结构光三维重建(二)相机标定、光平面标定

线结构光三维重建&#xff08;一&#xff09;https://blog.csdn.net/beyond951/article/details/125771158 上文主要对线激光的三角测量原理、光平面的标定方法和激光条纹提取的方法进行了一个简单的介绍&#xff0c;本文则主要针对线激光三维重建系统的系统参数标定进…

工业相机标定(张正友标定法)

目录 相机标定的概念 a. 相机标定的定义 b. 相机标定的目的 相机标定的过程 a. 标定板选择 b. 标定板摆放及拍摄 c. 标定板角点提取 张正友标定法 a. 反解相机矩阵 b.反解畸变系数 使用Python进行相机标定 a. 安装OpenCV b. 准备标定板图片 c. 利用OpenCV进行角点…

详解机器人标定

相机固定不动, 上往下看引导机器人移动 机器人与视觉标定理论详解 相机固定不动, 上往下看引导机器人移动 1.相机非线性校正 使用标定板做非线性校正 2.相机与机器人做9点标定 可以使用机器人扎9个点&#xff0c;或者机器人抓住工件摆放9个位置&#xff0c;得到9个机械坐标…

标定系列二、9点标定以及5点圆心标定过程(代码详解)

一、九点标定过程 1.算法原理 9点标定就是通过9个点计算出相机坐标系到机械手坐标系下的一个仿射变换&#xff0c;&#xff08;实际上空间中的二维平面的仿射变换只需要3个点就足够了&#xff09;。在实际应用过程中&#xff0c;需要获取像素下特征点的坐标和对应机械手的坐标…

相机标定-张正友棋盘格标定法

目录 1.针孔相机模型 2.相机成像过程 2.1 各个坐标系之间的转换 2.1.1 图像坐标系到像素坐标系 2.1.2 相机坐标系到图像坐标系 2.1.3世界坐标系到相机坐标系 2.1.4世界坐标系到像素坐标系 3.畸变与畸变矫正 3.1 畸变 3.2 畸变公式 4.相机标定原理 5.张正友标定法介…

相机标定原理———标定原理介绍

声明&#xff1a;欢迎任何人和组织转载本blog中文章&#xff0c;但必须标记文章原始链接和作者信息。 本文链接&#xff1a;http://blog.csdn.net/li_007/archive/2010/10/30/5976261.aspx 开拓进取的小乌龟------->CSDN点滴点点滴滴Blog 由于在word中包含大量的公式和矩…

VisionMaster标定板标定

选择工具 标定板生成工具我比较喜欢用海康自己研发的标2定板 具体参数看自己需求 最后选择0 导出图像就行 一般不需要cad图纸 保存 去路径下打印看看你的按照路径 我的是D:\VisionMasterV4.2.0\VisionMaster4.2.0\Applications\Tools 找到这张图片 不要改变比例直接打印 …

9点标定方法

9点标定&#xff0c;旋转标定 1.9点标定2.旋转标定3.公式推导过程 1.9点标定 夹具夹取产品或者标定块&#xff0c;选取一个特征&#xff0c;开始进行标定 X轴、Y轴移动一个位置&#xff0c;记录轴的物理坐标&#xff1a;&#xff08;Qx1&#xff0c;Qy1&#xff09; 提取图像中…

相机标定(一)

相机标定 相机成像模型参考坐标系针孔模型畸变模型相机参数 相机成像模型 参考坐标系 通常畸变分为两种&#xff0c;径向畸变和切向畸变。 图像像素坐标系&#xff1a;表示场景中三维点在图像平面上的投影&#xff0c;其坐标原点在CCD图像平面的左上角&#xff0c;u轴平行于…

张正友相机标定Opencv实现以及标定流程标定结果评价图像矫正流程解析(附标定程序和棋盘图)

使用Opencv实现张正友法相机标定之前&#xff0c;有几个问题事先要确认一下&#xff0c;那就是相机为什么需要标定&#xff0c;标定需要的输入和输出分别是哪些&#xff1f; 相机标定的目的&#xff1a;获取摄像机的内参和外参矩阵&#xff08;同时也会得到每一幅标定图像的选择…

标定工具介绍

作者 | WenDao_Engineer 微信公众号 | 闻道工程师之家 在前面标定相关的系列文章文对标定的基本介绍、标定的实现过程以及标定所涉及的相关协议都进行了介绍&#xff0c;从今天开始我们介绍一下标定实现过程中的标定工具相关知识。 标定系统组成 我们已经知道通过CCP或者XCP…

单目相机标定实现--张正友标定法

文章目录 一&#xff1a;相机坐标系&#xff0c;像素平面坐标系&#xff0c;世界坐标系&#xff0c;归一化坐标系介绍1&#xff1a;概述公式 二:实现1&#xff1a;整体流程4&#xff1a;求出每张图像的单应性矩阵并用LMA优化5&#xff1a;求解理想无畸变情况下的摄像机的内参数…

摄像机标定和立体标定

尝试用OpenCV来实现立体视觉也有一段时间了&#xff0c;主要的参考资料就是Learning OpenCV十一、十二章和OpenCV论坛上一些前辈的讨论。过程中磕磕碰碰&#xff0c;走了不少弯路&#xff0c;终于在前不久解决了最头大的问题&#xff0c;把整个标定、校准、匹配的流程调试成功。…

相机标定——张正友棋盘格标定法

目录 为什么需要相机标定&#xff1f; 相机标定可以做什么&#xff1f; 相机标定后可以得到什么&#xff1f; 什么情况下需要借助相机标定的方法&#xff1f; 相机标定的原理 实现相机标定的方法 为什么需要相机标定&#xff1f; 一个是由于每个镜头的在生产和组装过程中的…

标定方法——张正友标定法

标定 标定是联系世界坐标与像素坐标的环节&#xff0c;目的是求出相机和投影仪的内外参数&#xff0c;对于3D成像来说至关重要 张正友标定法 通过各种方法的对比&#xff0c;为了方便&#xff0c;我们采用的是张正友标定。我们主要对张正友标定法的原理进行介绍&#xff0c;…

笔记总结-相机标定(Camera calibration)原理、步骤

这已经是我第三次找资料看关于相机标定的原理和步骤&#xff0c;以及如何用几何模型&#xff0c;我想十分有必要留下这些资料备以后使用。这属于笔记总结。 1.为什么要相机标定&#xff1f; 在图像测量过程以及机器视觉应用中&#xff0c;为确定空间物体表面某点的三维几何位置…

如何实现标定?

上一篇《什么是标定》对标定进行了初步的介绍&#xff0c;让大家有了一个感性的认识。标定是一项非常复杂的工作的&#xff0c;涉及方方面面的知识非常多&#xff0c;本文将对标定具体实现的过程进行介绍。 控制器对标定的支持 在前面的文章中介绍了控制算法是在软件编程的时候…