我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java实现消息轰炸的方法 附带源码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java实现消息轰炸的方法 附带源码

1. 用到的技术

ArrayList
Robot (java中自动控制电脑输入设备的封装类)
swing
awt

先写个最简单的Demo然后逐渐完善。

2. 使用Robot 自动发送消息(v1.0)

robot.delay(3000); 停止3000毫秒

KeyEvent.VK_W是java封装好的常量,本质上就是就是每一个按键对应一个id

在这里插入图片描述

太多了,就截取了一部分。

按键事件:(还有鼠标按钮点击事件,这里我们主要使用了键盘点击事件)
robot.keyPress(KeyEvent.VK_W); 按下W键
robot.keyRelease(KeyEvent.VK_W); W键弹起

代码:


import java.awt.*;
import java.awt.event.KeyEvent;

public class TestRobot2 {

    public static void main(String[] args) throws AWTException {
        Robot robot = new Robot();
        robot.delay(3000);

        for (int i = 0; i < 5; i++) {
            robot.keyPress(KeyEvent.VK_W);
            robot.keyRelease(KeyEvent.VK_W);
            robot.keyPress(KeyEvent.VK_O);
            robot.keyRelease(KeyEvent.VK_O);
            robot.keyPress(KeyEvent.VK_A);
            robot.keyRelease(KeyEvent.VK_A);
            robot.keyPress(KeyEvent.VK_I);
            robot.keyRelease(KeyEvent.VK_I);
            robot.keyPress(KeyEvent.VK_N);
            robot.keyRelease(KeyEvent.VK_N);
            robot.keyPress(KeyEvent.VK_I);
            robot.keyRelease(KeyEvent.VK_I);
            robot.delay(100);
            robot.keyPress(KeyEvent.VK_SPACE);
            robot.keyRelease(KeyEvent.VK_SPACE);
            robot.delay(100);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
        }

    }
}

使用for循环可以反复发送该消息。
(注意:如果循环使用了死循环,一定要在robot中添加延时函数,否则发送消息的QQ会卡死,亲测)

效果:

在这里插入图片描述

3. 记录用户操作(v2.0)

染过要实现自动发消息,不可能让用户像上一步一样去直接与代码打交道,并且对于我们来说,如果每次都像上一步那样,既费时又费力,那么可不可以用一个相对来说比较简便的方法呢,它来了。

我们应该知道,java中每个按键对应了一个id,那是不是就可以将这些id存储起来,在使用的时候调用它呢

这里我们先存储用户的操作信息,还原是下一步

实现方法:
使用ArrayList动态数组,存储用户操作信息

还可以使用switch语句,给用户提示信息:
先上一部分代码:


 ArrayList<KeyValue> list = new ArrayList<KeyValue>();//用于存储用户操作的动态数组

    int n = 0;//自定义一个变量,用于存储式第几次,和下面的 addList方法搭配使用

    //这个方法用于向数组汇总存储用户的操作信息
    public void addList(int Key, String name) {
        //自定义了一个对象,KeyValue,里面有Key和Value两个自定义值
        list.add(new KeyValue(++n, Key, name));
    }

自定义的KeyValue对象:


class KeyValue {
    public int Num;//存储是第几次按下的
    public int Key;//存储按键对应的KeyCode
    public String Value;//存储按键的信息,主要用于给用户提示

    public KeyValue(int num, int key, String value) {
        Key = key;
        Num = num;
        Value = value;
    }
}

先看看效果:

在这里插入图片描述

上代码:


package GUI.Demo0418;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;


//尝试写个记录按键记录的demo
public class Test {
    public static void main(String[] args) throws AWTException {
        new MyFrame();
    }
}

class MyFrame extends Frame {

    ArrayList<KeyValue> list = new ArrayList<KeyValue>();//用于存储用户操作的动态数组

    int n = 0;//自定义一个变量,用于存储式第几次,和下面的 addList方法搭配使用

    //这个方法用于向数组汇总存储用户的操作信息
    public void addList(int Key, String name) {
        //自定义了一个对象,KeyValue,里面有Key和Value两个自定义值
        list.add(new KeyValue(++n, Key, name));
    }


    public MyFrame() throws AWTException {
        super("记录用户的按键操作");

        JButton button3 = new JButton("查看记录信息");

        button3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                for (KeyValue ky : list) {
                    System.out.println("第" + ky.Num + "次" + ky.Key + " " + ky.Value);
                }
            }
        });


        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.out.println("窗口正在关闭");
                System.exit(0);
            }
        });

        setLayout(new FlowLayout(FlowLayout.LEADING));

        addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                switch (keyCode) {
                    case KeyEvent.VK_A:
                        System.out.println("你点击了 A 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "A");
                        break;
                    case KeyEvent.VK_B:
                        System.out.println("你点击了 B 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "B");
                        break;
                    case KeyEvent.VK_C:
                        System.out.println("你点击了 C 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "C");
                        break;
                    case KeyEvent.VK_D:
                        System.out.println("你点击了 D 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "D");
                        break;
                    case KeyEvent.VK_E:
                        System.out.println("你点击了 E 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "E");
                        break;
                    case KeyEvent.VK_F:
                        System.out.println("你点击了 F 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "F");
                        break;
                    case KeyEvent.VK_G:
                        System.out.println("你点击了 G 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "G");
                        break;
                    case KeyEvent.VK_H:
                        System.out.println("你点击了 H 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "H");
                        break;
                    case KeyEvent.VK_I:
                        System.out.println("你点击了 I 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "I");
                        break;
                    case KeyEvent.VK_J:
                        System.out.println("你点击了 J 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "J");
                        break;
                    case KeyEvent.VK_K:
                        System.out.println("你点击了 K 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "K");
                        break;
                    case KeyEvent.VK_L:
                        System.out.println("你点击了 L 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "L");
                        break;
                    case KeyEvent.VK_M:
                        System.out.println("你点击了 M 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "M");
                        break;
                    case KeyEvent.VK_N:
                        System.out.println("你点击了 N 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "N");
                        break;
                    case KeyEvent.VK_O:
                        System.out.println("你点击了 O 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "O");
                        break;
                    case KeyEvent.VK_P:
                        System.out.println("你点击了 P 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "P");
                        break;
                    case KeyEvent.VK_Q:
                        System.out.println("你点击了 Q 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "Q");
                        break;
                    case KeyEvent.VK_R:
                        System.out.println("你点击了 R 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "R");
                        break;
                    case KeyEvent.VK_S:
                        System.out.println("你点击了 S 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "S");
                        break;
                    case KeyEvent.VK_T:
                        System.out.println("你点击了 T 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "T");
                        break;
                    case KeyEvent.VK_U:
                        System.out.println("你点击了 U 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "U");
                        break;
                    case KeyEvent.VK_V:
                        System.out.println("你点击了 V 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "V");
                        break;
                    case KeyEvent.VK_W:
                        System.out.println("你点击了 W 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "W");
                        break;
                    case KeyEvent.VK_X:
                        System.out.println("你点击了 X 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "X");
                        break;
                    case KeyEvent.VK_Y:
                        System.out.println("你点击了 Y 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "Y");
                        break;
                    case KeyEvent.VK_Z:
                        System.out.println("你点击了 Z 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "Z");
                        break;
                    case KeyEvent.VK_SPACE:
                        System.out.println("你点击了 空格 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "空格");
                        break;
                    case KeyEvent.VK_ENTER:
                        System.out.println("你点击了 ENTER 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "回车");
                        break;
                    default:
                        System.out.println("该按键没有收录");
                }
            }
        });

        add(button3);
        setBounds(100, 100, 500, 500);
        setVisible(true);
        setResizable(false);
        setAlwaysOnTop(true);
    }
}

class KeyValue {
    public int Num;
    public int Key;
    public String Value;

    public KeyValue(int num, int key, String value) {
        Key = key;
        Num = num;
        Value = value;
    }

}

4. 还原操作(v3.0)

简单的说就是遍历上一步存储的用户操作信息,再加上几个按钮,用来控制何时进行还原,和还原的次数。
直接上代码:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;


//尝试写个记录按键记录的demo
public class Test {
    public static void main(String[] args) throws AWTException {
        new MyFrame();
    }
}

class MyFrame extends Frame {

    ArrayList<KeyValue> list = new ArrayList<KeyValue>();//用于存储用户操作的动态数组
    Robot robot = new Robot();

    //下拉框,用于获取用户想要发送几次这个消息
    String[] num = {"1", "2", "3", "4", "5", "6", "10", "死"};
    JComboBox jComboBox = new JComboBox(num);

    int n = 0;//自定义一个变量,用于存储式第几次,和下面的 addList方法搭配使用

    //这个方法用于向数组汇总存储用户的操作信息
    public void addList(int Key, String name) {
        //自定义了一个对象,KeyValue,里面有Key和Value两个自定义值
        list.add(new KeyValue(++n, Key, name));
    }


    public MyFrame() throws AWTException {
        super("记录用户的按键操作");
        JButton button1 = new JButton("清空");
        JButton button2 = new JButton("开始");
        JButton button3 = new JButton("查看记录信息");

        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                list = null;
            }
        });
        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                robot.delay(3000);
                System.out.println(jComboBox.getSelectedItem());

                if (jComboBox.getSelectedItem().equals("死")) {
                    while (true) {
                        for (KeyValue ky : list) {
                            robot.keyPress(ky.Key);
                            robot.keyRelease(ky.Key);
                            robot.delay(10);
                        }
                    }
                } else {
                    int time = Integer.parseInt((String) jComboBox.getSelectedItem());
                    for (int i = 0; i < time; i++) {
                        for (KeyValue ky : list) {
                            robot.keyPress(ky.Key);
                            robot.keyRelease(ky.Key);
                            robot.delay(100);
                        }
                    }
                }

            }
        });
        button3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                for (KeyValue ky : list) {
                    System.out.println("第" + ky.Num + "次" + ky.Key + " " + ky.Value);
                }
            }
        });


        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.out.println("窗口正在关闭");
                System.exit(0);
            }
        });

        setLayout(new FlowLayout(FlowLayout.LEADING));

        addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                switch (keyCode) {
                    case KeyEvent.VK_A:
                        System.out.println("你点击了 A 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "A");
                        break;
                    case KeyEvent.VK_B:
                        System.out.println("你点击了 B 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "B");
                        break;
                    case KeyEvent.VK_C:
                        System.out.println("你点击了 C 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "C");
                        break;
                    case KeyEvent.VK_D:
                        System.out.println("你点击了 D 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "D");
                        break;
                    case KeyEvent.VK_E:
                        System.out.println("你点击了 E 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "E");
                        break;
                    case KeyEvent.VK_F:
                        System.out.println("你点击了 F 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "F");
                        break;
                    case KeyEvent.VK_G:
                        System.out.println("你点击了 G 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "G");
                        break;
                    case KeyEvent.VK_H:
                        System.out.println("你点击了 H 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "H");
                        break;
                    case KeyEvent.VK_I:
                        System.out.println("你点击了 I 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "I");
                        break;
                    case KeyEvent.VK_J:
                        System.out.println("你点击了 J 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "J");
                        break;
                    case KeyEvent.VK_K:
                        System.out.println("你点击了 K 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "K");
                        break;
                    case KeyEvent.VK_L:
                        System.out.println("你点击了 L 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "L");
                        break;
                    case KeyEvent.VK_M:
                        System.out.println("你点击了 M 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "M");
                        break;
                    case KeyEvent.VK_N:
                        System.out.println("你点击了 N 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "N");
                        break;
                    case KeyEvent.VK_O:
                        System.out.println("你点击了 O 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "O");
                        break;
                    case KeyEvent.VK_P:
                        System.out.println("你点击了 P 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "P");
                        break;
                    case KeyEvent.VK_Q:
                        System.out.println("你点击了 Q 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "Q");
                        break;
                    case KeyEvent.VK_R:
                        System.out.println("你点击了 R 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "R");
                        break;
                    case KeyEvent.VK_S:
                        System.out.println("你点击了 S 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "S");
                        break;
                    case KeyEvent.VK_T:
                        System.out.println("你点击了 T 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "T");
                        break;
                    case KeyEvent.VK_U:
                        System.out.println("你点击了 U 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "U");
                        break;
                    case KeyEvent.VK_V:
                        System.out.println("你点击了 V 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "V");
                        break;
                    case KeyEvent.VK_W:
                        System.out.println("你点击了 W 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "W");
                        break;
                    case KeyEvent.VK_X:
                        System.out.println("你点击了 X 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "X");
                        break;
                    case KeyEvent.VK_Y:
                        System.out.println("你点击了 Y 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "Y");
                        break;
                    case KeyEvent.VK_Z:
                        System.out.println("你点击了 Z 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "Z");
                        break;
                    case KeyEvent.VK_SPACE:
                        System.out.println("你点击了 空格 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "空格");
                        break;
                    case KeyEvent.VK_ENTER:
                        System.out.println("你点击了 ENTER 键,这个按键的ID为:" + keyCode);
                        addList(keyCode, "回车");
                        break;
                    default:
                        System.out.println("该按键没有收录");
                }
            }
        });

        add(button1);
        add(jComboBox);
        add(button2);
        add(button3);
        setBounds(100, 100, 500, 500);
        setVisible(true);
        setResizable(false);
        setAlwaysOnTop(true);
    }

}


class KeyValue {
    public int Num;
    public int Key;
    public String Value;

    public KeyValue(int num, int key, String value) {
        Key = key;
        Num = num;
        Value = value;
    }
}

效果:

在这里插入图片描述

5. 总结

昨天晚上突然跳出的想法,花了点时间实现了,虽然界面不太美观,但是想要的功能都实现了,感觉代码冗余有点多。。可能会有梗简洁的代码吧(时间紧,博客写的有点匆忙)

到此这篇关于Java实现消息轰炸 附带源码的文章就介绍到这了,更多相关java消息轰炸内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java实现消息轰炸的方法 附带源码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android实现放大镜效果的方法实例(附源码)

前言 应该有很多用过英语应用的同学都看多一个放大镜的效果,就是选中一段文字后,会有一个放大镜,这个究竟怎么实现的呢,我们今天来分析分析。 源码分析public class ShaderView extends View {private f
2022-06-06

详解Android TabHost的多种实现方法 附源码下载

最近仔细研究了下TabHost,主要是为了实现微信底部导航栏的功能,最后也给出一个文章链接,大家不要着急 正文:TabHost的实现分为两种,一个是不继承TabActivity,一个是继承自TabActivity;当然了选用继承自TabAc
2022-06-06

Android编程实现WebView全屏播放的方法(附源码)

本文实例讲述了Android编程实现WebView全屏播放的方法。分享给大家供大家参考,具体如下: 最近因为项目要用webview加载html5的视频,开始不能全屏播,做了很久才做出来!那按我的理解说下怎么实现全屏吧。 首先写布局文件act
2022-06-06

Android编程实现仿iphone抖动效果的方法(附源码)

本文实例讲述了Android编程实现仿iphone抖动效果的方法。分享给大家供大家参考,具体如下: 布局文件:
2022-06-06

java中建立0-10m的消息(字符串)实现方法

直接用StringBuilder,它的append方法方便快速构建字符串。StringBuilder sb1=new StringBuilder();for(int i=0;i<1024*1024*10;i++){ sb1.append(
2023-05-31

python基于pygame实现响应游戏中事件的方法(附源码)

本文实例讲述了python基于pygame实现响应游戏中事件的方法。分享给大家供大家参考,具体如下: 先看一下我做的demo效果:当玩家按下键盘上的:上,下,左,右键的时候,后台会打印出玩家所按键的数字值,而图形会随之移动 这是客观上面存在
2022-06-04

Android实现下载zip压缩文件并解压的方法(附源码)

前言 其实在网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,所以这篇文章在此记录一下下载zip文件并直接解压的方法,直接上代码,文末有源码下载。下载:import java.io.BufferedInputStream;
2022-06-06

android apk反编译到java源码的实现方法

Android由于其代码是放在dalvik虚拟机上的托管代码,所以能够很容易的将其反编译为我们可以识别的代码。 之前我写过一篇文章反编译Android的apk包到smali文件 然后再重新编译签名后打包实现篡改apk的功能。 最近又有一种新
2022-06-06

Java GUI编程之贪吃蛇游戏简单实现方法【附demo源码下载】

本文实例讲述了Java GUI编程之贪吃蛇游戏简单实现方法。分享给大家供大家参考,具体如下:例子简单,界面简陋 请见谅项目结构如下Constant.jvava 代码如下:package snake;/** * * @author hjn *
2023-05-31

Android重写TextView实现文字整齐排版的方法(附demo源码下载)

本文实例讲述了Android重写TextView实现文字整齐排版的方法。分享给大家供大家参考,具体如下: XRTextView类package rong.android.test; import org.json.JSONArray; im
2022-06-06

Android编程实现手绘及保存为图片的方法(附demo源码下载)

本文实例讲述了Android编程实现手绘及保存为图片的方法。分享给大家供大家参考,具体如下: 运行效果图预览:应 yzuo_08 要求做了此Demo,跟以前那个手写板Demo不同的是可以将画布的内容保存为图片。 附上关键代码: MainVi
2022-06-06

Java调用微信客服消息实现发货通知的方法详解

本文实例讲述了Java调用微信客服消息实现发货通知的方法。分享给大家供大家参考,具体如下:微信文档地址:https://mp.weixin.qq.com/wikit=resource/res_main&id=mp1421140547&tok
2023-05-31

Android仿英语流利说取词放大控件的实现方法(附demo源码下载)

本文实例讲述了Android仿英语流利说取词放大控件的实现方法。分享给大家供大家参考,具体如下: 1 取词放大控件 英语流利说是一款非常帮的口语学习app,在app的修炼页面长按屏幕,会弹出一个放大镜,当手指移到某个单词的附近,可以看到该英
2022-06-06

Android程序自动更新功能模块的实现方法【附完整demo源码下载】

本文实例讲述了Android程序自动更新功能模块的实现方法。分享给大家供大家参考,具体如下: 在程序启动的时候检测服务器上有没有对应版本更新,如果有更新,提示用户是否更新。 在程序启动的时候首先调用更新模块检测服务器上存放的版本号跟当前程序
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录