javase-reflect-210709-02

【实战】LLaMA-Factory 如何做 LLM 的多轮对话微调 LLaMA-Factory 作为一个广受欢迎、易于使用的 LLM 微调框架,为开发者提供了便捷的途径来针对特定任务(包括多轮对话)优化模型。本文将深入探讨 LLaMA-Factory 如何支持多轮对话微调,涵盖其基本概念、数据准备、核心机制、评估方法等。简单来说,多轮对话是指包含两个或更多轮次(Turn)的交互过程,其中每一轮通常包含用户的一个输入和模型的一个输出。后续轮次的回应通常依赖于前面轮次的对话内容。模型需要理解并记忆对话历史。 阅读详情

javase-reflect-210709-02

  • Field 反射的使用
  • Field获取属性
  • Field模拟反射属性的java代码
  • Field获取属性值 / 赋值
  • Field访问私有属性
  • Student.java

Field获取属性

ReflectTest01.java

package bgy_reflect210709_01;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ReflectTest01 {
    public static void main(String[] args) throws ClassNotFoundException {

        // 获取整个类
        Class studentClass = Class.forName("bgy_reflect210709_01.Student");
        String studentClassName01 = studentClass.getName();
        String studentClassName02 = studentClass.getSimpleName();
        System.out.println(studentClassName01);     // String studentClassName01 = studentClass.getName();
        System.out.println(studentClassName02);     // Student

        // 1. 
        // 获取类中所有的public修饰的Filed
        Field[] fields01 = studentClass.getFields();
        System.out.println(fields01.length);      // 1
        // 取出这个Filed对象
        Field field01 = fields01[0];
        // 取出这个Field的名字
        String fieldName01 = field01.getName();
        System.out.println("获取类中所有的public修饰的Filed个数为:"+fieldName01);

        
        System.out.println("===========================================");


        // 2.
        // 获取所有的Field
        Field[] fields02 = studentClass.getDeclaredFields();
        System.out.println("获取所有的Field个数为:"+fields02.length);    // 4
        // 遍历
        for (Field field : fields02){
            // 01.
            // 获取属性的修饰符列表
            // 获取的只是一个数字,每个数字是修饰符的代号
            int flag = field.getModifiers();
            System.out.println("修饰符代号为:"+flag);
            // 把修饰符代号转换为”字符串“
            String modifierString = Modifier.toString(flag);
            System.out.println(modifierString);
            // 02.
            // 获取属性的类型
            Class fieldType = field.getType();
            System.out.println(fieldType.getSimpleName());
            // 03.
            // 获取Field属性名字
            String fieldName = field.getName();
            System.out.println(fieldName);

            System.out.println();
        }
    }
}

Field模拟反射属性的java代码

ReflectTest02.java

package bgy_reflect210709_01;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ReflectTest02 {
    public static void main(String[] args) throws ClassNotFoundException {

        // 为了拼接字符串
        StringBuffer s = new StringBuffer();

        // 获取整个类
        Class studentClass = Class.forName("bgy_reflect210709_01.Student");
//        Class studentClass = Class.forName("java.lang.String");

        // Student.java的头儿
        s.append(Modifier.toString(studentClass.getModifiers())+" class "+studentClass.getSimpleName()+" {");
        s.append("\n");

        // 获取全部的Field对象
        Field[] fields = studentClass.getDeclaredFields();

        // 遍历追加
        for (Field field : fields){
            s.append("\t");

            // 获取Field对象修饰符
            String modifierString = Modifier.toString(field.getModifiers());
            // 获取Field对象类型
            Class fieldType = field.getType();
            String fieldTypeName = fieldType.getSimpleName();
            // 获取Field对象名字
            String fieldName = field.getName();

            // 追加
            s.append(modifierString);
            s.append(" ");
            s.append(fieldTypeName);
            s.append(" ");
            s.append(fieldName);
            s.append(";");
            s.append("\n");
        }

        // Student.java的尾巴儿
        s.append("}");

        // 输出s
        System.out.println(s);
    }
}

Field获取属性值 / 赋值

ReflectTest03.java

package bgy_reflect210709_01;
import java.lang.reflect.Field;

/*
    通过反射获取属性值,或赋值
    反射机制虽然让代码复杂了,但是让整个程序灵活了
 */
public class ReflectTest03 {
    public static void main(String[] args) throws Exception {

        /*
            1. 不通过反射机制,访问一个对象的属性
         */
        Student s = new Student();
        // 赋值三要素:
        // 要素1:对象s
        // 要素2:no属性
        // 要素3:12值
        s.no=12;
        System.out.println(s.no);

        /*
            2. 通过反射机制,访问一个对象的属性
         */
        // 获取类
        Class studentClass = Class.forName("bgy_reflect210709_01.Student");
        // 创建对象
        Object obj = studentClass.newInstance();
        // 获取no属性
        Field noField = studentClass.getDeclaredField("no");
        // 给obj(student)对象属属性赋值
        // 赋值三要素:
        // 要素1:obj对象
        // 要素2:no属性
        // 要素3:22值
        noField.set(obj,22);

        // 获取属性no
        System.out.println(noField.get(obj));

    }
}

Field访问私有属性

package bgy_reflect210709_01;

import java.lang.reflect.Field;

/*
    反射访问私有属性
 */
public class ReflectTest04 {
    public static void main(String[] args) throws Exception{
        // 获取类
        Class studentClass = Class.forName("bgy_reflect210709_01.Student");
        // 创建类
        Object obj = studentClass.newInstance();
        // 得到sex的Field对象
        Field sexField = studentClass.getDeclaredField("sex");
        /*
            打破封装
            打破封装,可能会给不法分子留下机会
            这样设置完后,在外部也是可以访问private的
         */
        sexField.setAccessible(true);
        // 给sex赋值
        sexField.set(obj,false);
        // 取值
        System.out.println(sexField.get(obj));
    }
}

Student.java

package bgy_reflect210709_01;

// 反射属性Field

public class Student {

    /*
        Field----->字段,,,其实就是属性/成员
        4个Field,分别采用了不同的访问控制权修饰符
     */
    public int no;          // Field对象
    protected String name;  // Field对象
    int age;                // Field对象
    private boolean sex;    // Field对象
    public static final double PI = 3.1415926;
}
Pinocchio 快速详细入门教程 —— 开源机器人运动学动力学库 本文介绍了机器人学中的数字机器人学、正逆运动学、动力学仿真与控制、最优控制等核心主题,以及Pinocchio库的应用。内容包括: 数字机器人学:通过UR5机器人模型演示了构型空间采样、碰撞检测、路径规划等基础操作,使用优化方法在约束条件下寻找有效构型。 运动学:详细讲解了二维和三维机器人的正运动学(构型到末端位置)和逆运动学(目标位置到构型),包括串联机械臂和并联机器人的处理。 动力学与控制:介绍了动力学仿真(如自由落体、摩擦效应)、PD控制、计算扭矩控制,以及接触仿真(碰撞检测与处理)。 最优控制:以独轮 阅读详情

相关推荐

【浙大翁恺】C语言习题

/* 02-0. 整数四则运算(10) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。 题目保证输入和输出全部整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 2 输出样例: 3 + 2 = 5 3 - 2 = 1 3 * 2 = 6 3 / 2 =.

qq_43600867的博客 5862

javase-reflect-210709-03

javase-reflect-210709-03 可变参数长度 反射获取Method-01 反射获取Method-02 通过反射调用方法 UserService.java 可变参数长度 ReflectMethodTest01.java package bgy_reflect_method_210709_01; /* 可变长度参数 int... args 就是可变长度参数 1. 可变长度参数要求的参数个数是:0~N个 2. 可变长度参数在参数列表中必须在最后一个位置上

白光一的博客 175

DAIC-WOZ数据集文件结构详解:CLNF特征文件、音频转录与PHQ8评分全解读

本文深入解析DAIC-WOZ数据集的文件结构,重点介绍CLNF特征文件、音频转录与PHQ8评分的详细内容。通过多模态数据处理实战指南,帮助研究者高效利用这一抑郁分析领域的重要资源,掌握面部动作单元、声学特征和文本转录的科学解读与应用技巧。

weixin_29159711的博客 184

javase-reflect-210709-04

javase-reflect-constructor-210709-04 反编译一个类的Constructor构造方法 通过反射创建对象 通过反射获取父类或者获取实现的接口 反编译一个类的Constructor构造方法 ReflectTest01.java package bgy_reflect_constructor_01; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; /* 反编译一个类

白光一的博客 175

手把手教你用Isaac Sim 8打造逼真光影效果:参数设置与场景应用

本文详细介绍了如何使用Isaac Sim 8打造逼真光影效果,涵盖基础参数设置、高级材质交互、专业级灯光造型技法以及复杂场景的灯光布局策略。通过实战案例和参数调优技巧,帮助用户提升虚拟场景的视觉表现,适用于数字孪生、虚拟仿真和影视特效等领域。

weixin_30836759的博客 80

告别重启烦恼:用WSL2让Docker和VMware在Win10上真正共存

本文详细介绍了如何在Windows 10系统上,借助WSL2实现Docker与VMware的真正共存,彻底告别以往需要反复重启切换的烦恼。通过启用Hyper-V兼容模式并进行正确配置,开发者无需重启即可同时高效运行容器和虚拟机,显著提升开发与测试工作流的连续性和效率。

salt9的博客 987

javase-reflect-210709-01

javase-reflect-210709-01 了解类加载器 什么是类加载器 专门负责加载类的命令或工具 ClassLoader JDK中自带了三个类加载器 1. 启动类加载器 2. 扩展类加载器 3. 应用类加载器 假设有下面这行代码: String s = "abc"; 代码在开始执行之前,会将所需要的类全部加载到JVM中 通过类名加载器加载,看到以上的代码类加载器会找String.class文件, 找到就加载,那么是如何进行加载加载的??? 1. 首先通过“启动类加载器”加载

白光一的博客 174

1、CUDA 编程基础

GPU计算的发展历程与重要性。首先回顾了计算机技术的发展,特别是摩尔定律的影响,强调了计算能力的快速提升。然而,随着晶体管尺寸的缩小和频率的停滞,单线程性能增长放缓。为了继续提升性能,多核处理器开始普及,促使软件开发者开始考虑并行计算。介绍了延迟导向设计和吞吐量导向设计的概念,CPU和GPU分别代表了这两种设计方法。GPU是吞吐量导向的,拥有众多弱小的ALU,通过流水线处理提高算术吞吐量。GPU的成功在于其高并行性和高吞吐量,以及能够分摊高昂的固定成本的大量销售额。

Justinyh的博客 580

javase-io-210509-02

javase-io-210509-02 File FIle Fiel 1、 File类和四大家族没有关系,所以FIle类不能完成对文件的读和写 2、 FIle对象代表 文件和目录路径名的抽象表示形式 C:\bgy 这是一个文件 C:\bgy\bgy.txt 这也是一个文件 Demo01.java import java.io.File; import java.io.IOException; public class Demo01 { public static v

白光一的博客 286

GraphRAG深度解析:架构设计与实战案例

生成模块结合检索到的图数据和用户输入的查询,生成高质量的文本输出。通过结合图数据库中的知识,模型可以更准确地回答用户的问题,提供更优质的客户服务。通过分析用户的行为和偏好,结合图数据库中的知识,模型可以为用户提供个性化的推荐。:通过图数据库存储和检索结构化的知识,为语言模型提供丰富的背景信息,提升生成内容的质量和准确性。:选择合适的图数据库,如Neo4j、OrientDB等,以支持高效的图数据存储和检索。:利用图数据库的高效检索能力,快速找到与用户查询最相关的图元素,提高系统的响应速度。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1593

[HQChart教程] 去掉“仅学习使用”文字提示的小技巧

最近用 HQChart 做图表时,发现左下角有“仅学习使用”的字样。这种水印虽然是默认的,但如果要展示给客户,可能会显得不够专业。还好,这个问题很好解决,只需要简单修改一下配置。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 598

javase-collection-210623-02

javase-collection-210623-02 HashTable Properties HasTableTest01.java package bgy_hashtable01; import java.util.Hashtable; import java.util.Map; /* 1. HashTable中的方法都带有synchronized关键字,是线程安全的 线程安全目前有其它方案,HashTable对线程的处理导致效率较低,所以使用较少 2

白光一的博客 275

YOLOv8改进 | Neck篇 | Slim-Neck替换特征融合层实现超级涨点 (又轻量又超级涨点)

本文给大家带来的改进机制是Slim-neck提出的Neck部分,Slim-neck是一种设计用于优化卷积神经网络中neck部分的结构。在我们YOLOv8中,neck是连接主干网络(backbone)和头部网络(head)的部分,负责特征融合和处理,以便提高检测的准确性和效率。亲测在小目标检测和大尺度目标检测的数据集上都有大幅度的涨点效果(mAP直接涨了大概有0.4左右。同时本文对Slim-Neck的框架原理进行了详细的分析,不光让大家会添加到自己的模型在写论文的时候也能够有一定的参照。

Snu77的博客 1万+

javase-collection-210619-01

javase-collection-210619-01 Collection------remove() 在集合中使用remove()方法,会使得集合的结构发生改变,如果此时迭代器还是原来的那个,会报错 例子:CollectionTest02.java 1. 如果使用集合的remove()方法进行删除,要通知迭代器更新,否则报错 2. 或者使用迭代器的remove()方法进行删除 CollectionTest01.java package bgy_test_2161901; import j

白光一的博客 253

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

javase-collection-210408-01

javase-collection-210408-01 什么是集合 集合继承图 Collection常用方法 集合遍历迭代 contains方法 什么是集合 集合就是一个容器,数组就是一个集合,它可以来容纳其他类型的数据 集合不能直接存储基本类型的数据,另外集合也不能直接存储java对象, 集合当中存储的都是java对象的内存地址,或者说是集合中存储的引用 注:集合在java中本身是一个容器,是一个对象,集合中任何时候储存的都是引用 在java中每一个不同的集合,底层会对应不同的数据结构。往不

白光一的博客 250

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

javase-io-210510-02

javase-io-210510-02 IO+Properties 读取配置文件 读取配置文件 IO + Properties Properties 是一个Map集合,key和value都是String类型 经常变的数据,可以单独写到一个文件中,让程序动态读取 那么我们就需要配置文件了,java规范中要求,属性的配置文件建议以 .properties 结尾,,但不是必须是 Demo01.java package com.bgy02; import java.io.FileNotFoundE

白光一的博客 240

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

javase-collection-210623-01

javase-collection-HashMap-210623-01 HashMap HashMapTest01.java package bgy_hashmap01; /* 1. HashMap底层用的是 哈希表/散列表 的数据结构 1)哈希表是一个数组和单向链表的结合体 2)它是一个一维数组,数组中每一个元素是一个单向链表 3)数组:查询效率高,随机增删效率低 4)单向链表:随机增删效率高,查询效率低 1)

白光一的博客 235

javase-collection-210620-01

javase-collection-210620-01 List ArrayList ListTest01.java package bgy_list_01; import java.util.*; /* 1. List 特点: 有序可重复 1)有序:List集合中的元素有下标 从0开始,以1递增 2)可重复:存一个‘bgy’,还能再存一个‘bgy’ 2. List是Collection的子接口

白光一的博客 230

javase-collection-210624-01

javase-collection-210624-01 TreeSet Collections工具类 TreeSetTest01.java package bgy_treeset01; /* 1. TreeSet 集合底层实际上是一个TreeMap 2. TreeMap集合底层是一个二叉树 3. 放到TreeSet集合中的元素,等同于放到TreeMap集合key部分了 4. TreeSet集合 无序不可重复,可以按照元素的大小顺序自动排序,

白光一的博客 228

javase-io-210508-01

javase-io-210508-01 什么是IO IO分类 Java中IO四个部落 需要知道 1、什么是IO流 ​ I:Input ​ O:Output ​ 通过IO完成对硬盘文件的读和写 2、IO分类 1. 按照 流 的方式进行分类 以内存为参照物 往内存中去,叫做输入(Input),也叫读(Read) 从内存中出来,叫做输出(Output),也叫做写(Write) 2. 按照读取数据方式进行分类 一、 按照 字节方式

白光一的博客 217

javase-annotation-210710-01

javase-annotation-210710-01 注解解释 元注解 Retention源码 Target源码 注解解释 1) 注解 也叫注释,Annotation 2) 注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件 3) 自定义注解,语法如下: [修饰符列表] @interface 注解类型名{ } 4) 注解如何使用?在哪里使用? 注解使用语法格式: @注解类型名 注解可以出现在类上,属性上,方法上,变量上等

白光一的博客 211

javase-annotation-210710-02

javase-annotation-210710-02 注解中可以用的属性类型 反射获取类上的注解 反射获取类中方法上的注解 注解实例 注解中可以用的属性类型 MyAnnotation0301.java package bgy_annotation_02; public @interface MyAnnotation0301 { /* 注解当中的属性可以是哪种类型 byte short int long float double bool

白光一的博客 209

javase-reflect-210625-01

javase-reflect-210625-01 反射的理解 反射机制有什么用? 通过java语言中的反射机制可以操作字节码文件 类似于黑客。(可以读和修改字节码文件) 通过反射机制可以操作代码片段(class文件) 反射机制的相关类的包 java.lang.reflect.*; 反射机制的相关的重要类 java.lang.Class 代表整个字节码,代表一个类型。 代表整个类 java.lang.reflect.Method 代表字节码中的方法字节码。 代表类中的方法 J...

白光一的博客 206

javase-collection-210621-01

javase-collection-210621-01 LinkedList Vector LinkedListTest01.java package bgy_linkedlist01; /* LinkedList 的数据结构是 双向链表 基础单元为节点node 每一个节点node都有两个属性: 1. 存储的数据 2. 下一个节点的内存地址 LinkedList集合底层也是有下标的 ArrayL

白光一的博客 202

javase-javabase-210126-02

javase-javabase-210126-02 JavaDoc Scanner对象 重载 可变参数 递归 Java内存 数组 Arrays类 JavaDoc @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值情况 @throws

白光一的博客 199

javase-io-210509-01

javase-io-210509-01 FileReader FileWriter 拷贝 BufferedReader InputStreamReader BufferedWriter DataOutputStream DataInputStream PrintStream FileReader ​ 文件字符输入流,只能读取普通文本 ​ 读取文本内容,比较方便,快捷 Demo01 import java.io.FileNotFoundException; import java.io.FileRead

白光一的博客 197
上一篇: javase-reflect-210709-01
下一篇: javase-reflect-210709-03
白光一
博客等级 码龄9年 0粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值