Java核心知识概述

Java的核心知识涉及多个方面,以下是针对Java核心知识点的分点表示和归纳:

这些集合类提供了丰富的方法和算法,可以方便地对数据进行增删改查等操作。同时,Java还提供了迭代器和各种算法,如排序、搜索、过滤等,方便对集合进行遍历和处理。

示例代码:

// ArrayList示例
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("cherry");System.out.println("ArrayList size: " + arrayList.size());for (String fruit : arrayList) {System.out.println(fruit);
}arrayList.remove("banana");
System.out.println("ArrayList after removing 'banana': " + arrayList);// HashMap示例
HashMap<String, Integer> hashMap = new HashMap<>();
hashMap.put("apple", 1);
hashMap.put("banana", 2);
hashMap.put("cherry", 3);System.out.println("HashMap size: " + hashMap.size());for (String key : hashMap.keySet()) {System.out.println(key + ": " + hashMap.get(key));
}hashMap.remove("banana");
System.out.println("HashMap after removing 'banana': " + hashMap);

 需要注意的是,集合类是泛型类,可以指定存储的数据类型。集合类还要求元素必须是对象类型,而不能是基本数据类型,如int、float等。如果需要存储基本数据类型,可以使用对应的包装类,如Integer、Float等。 

  1. 面向对象编程(OOP)

    • Java是一种面向对象的编程语言,支持封装、继承和多态等OOP概念

      封装:在Java中,封装可以通过访问修饰符(public、private、protected)来实现。通过将数据和方法封装在类中,类的内部可以隐藏实现细节,只提供公共的接口给外部进行访问。例如:

      public class Person {private String name;private int age;public void setName(String name) {this.name = name;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;}
      }
      

      在这个示例中,name和age是私有的属性,外部无法直接访问。通过提供公共的setter和getter方法,外部使用者可以通过这些方法来访问和修改属性的值,而无需知道具体的实现细节。

      继承:Java中的继承允许一个类继承另一个类的属性和方法。通过继承,子类可以获取父类的属性和方法,并且可以对父类的方法进行重写或添加新的方法。例如:

      public class Animal {public void sound() {System.out.println("Animal makes a sound");}
      }public class Dog extends Animal {@Overridepublic void sound() {System.out.println("Dog barks");}
      }
      

      在这个示例中,Dog类继承了Animal类,并重写了父类的sound方法。当调用Dog类的sound方法时,会输出"Dog barks"。

      多态:Java中的多态性允许使用父类的引用来引用子类的对象。这意味着一个父类的变量可以引用不同子类的对象,并根据实际引用对象的类型,调用相应类型的方法。例如:

      public class Animal {public void sound() {System.out.println("Animal makes a sound");}
      }public class Dog extends Animal {@Overridepublic void sound() {System.out.println("Dog barks");}
      }public class Cat extends Animal {@Overridepublic void sound() {System.out.println("Cat meows");}
      }public class Main {public static void main(String[] args) {Animal animal1 = new Dog();Animal animal2 = new Cat();animal1.sound(); // 输出 "Dog barks"animal2.sound(); // 输出 "Cat meows"}
      }
      

      在这个示例中,animal1变量引用的是Dog对象,animal2变量引用的是Cat对象。通过调用sound方法,可以看到animal1输出"Dog barks",animal2输出"Cat meows",即不同子类的引用调用了对应自己的sound方法。

    • 类和对象:Java通过类来定义对象的属性和行为,每个对象都是类的实例。
      public class Car {private String brand;private String color;private int year;public void setBrand(String brand) {this.brand = brand;}public String getBrand() {return brand;}public void setColor(String color) {this.color = color;}public String getColor() {return color;}public void setYear(int year) {this.year = year;}public int getYear() {return year;}public void start() {System.out.println("The " + color + " " + brand + " starts.");}public void accelerate() {System.out.println("The " + color + " " + brand + " accelerates.");}public void stop() {System.out.println("The " + color + " " + brand + " stops.");}
      }
      

      在这个示例中,Car类定义了汽车的属性(品牌、颜色和年份)和行为(启动、加速和停止)。通过设置和获取方法,外部可以访问和修改汽车的品牌、颜色和年份。start、accelerate和stop方法定义了汽车的行为,分别打印出相应的提示信息。

      可以创建Car类的对象来表示具体的汽车:

      public class Main {public static void main(String[] args) {Car car1 = new Car();car1.setBrand("Toyota");car1.setColor("Red");car1.setYear(2022);car1.start(); // 输出 "The Red Toyota starts."car1.accelerate(); // 输出 "The Red Toyota accelerates."car1.stop(); // 输出 "The Red Toyota stops."Car car2 = new Car();car2.setBrand("BMW");car2.setColor("Blue");car2.setYear(2021);car2.start(); // 输出 "The Blue BMW starts."car2.accelerate(); // 输出 "The Blue BMW accelerates."car2.stop(); // 输出 "The Blue BMW stops."}
      }
      

      在这个示例中,创建了两个Car对象,分别表示一辆红色的Toyota和一辆蓝色的BMW。通过调用对象的方法,可以执行相应的行为。输出结果会根据对象的属性动态生成相应的提示信息。

  2. 数据类型

    • Java有两种数据类型:基本数据类型和引用数据类型。

    • 基本数据类型包括整数(byte, short, int, long)、浮点数(float, double)、字符(char)和布尔值(boolean)。
      整数类型:byte、short、int、long

      byte num1 = 10;
      short num2 = 20;
      int num3 = 30;
      long num4 = 40L;

      浮点类型:float、double

      float num5 = 3.14f;
      double num6 = 2.71828;

      字符类型:char

      char letter = 'A';

      布尔类型:boolean

      boolean flag = true;
      基本数据类型的变量直接存储值,占用固定的内存空间。例如,整数类型的int变量占用4个字节。
    • 引用数据类型包括类、接口、数组等。
      String类型:

      String name = "John";

      数组类型:

      int[] numbers = {1, 2, 3, 4, 5};
      String[] fruits = {"apple", "banana", "orange"};

      类类型:(需先定义相应的类)

      class Person {String name;int age;
      }Person person = new Person();
      person.name = "Tom";
      person.age = 25;

      引用数据类型的变量存储的是对象的引用(内存地址),实际的对象存储在堆内存中。引用数据类型的变量占用的内存空间大小取决于对象的实际大小。

      需要注意的是,基本数据类型的变量直接存储值,而引用数据类型的变量存储的是对象的引用,也就是堆内存中的地址。

  3. 控制流程语句

    Java提供了条件语句(如if-else和switch)、循环语句(如for和while)以及跳转语句(如break和continue)等控制流程语句,用于控制程序的执行流程。下面是Switch语句的例子:
    • int day = 2;
      String dayName;switch(day) {case 1:dayName = "Monday";break;case 2:dayName = "Tuesday";break;case 3:dayName = "Wednesday";break;default:dayName = "Invalid day";
      }System.out.println("Day: " + dayName);
  4. 方法

    方法是一组执行特定任务的代码块,可以通过定义和调用方法来组织和重用代码。
  5. 异常处理

    Java提供了异常处理机制,使程序能够捕获和处理运行时错误。通过try-catch块,可以捕获并处理可能出现的异常情况。
    public class Division {public static double divide(double a, double b) {try {return a / b;} catch (ArithmeticException e) {System.out.println("Error: " + e.getMessage());return Double.POSITIVE_INFINITY; // 返回正无穷大}}public static void main(String[] args) {double dividend = 10.0;double divisor = 0.0;double result = divide(dividend, divisor);System.out.println("Result: " + result);}
    }
    

    在上面的示例中,定义了一个名为Division的类,其中包含一个divide方法用于进行除法运算。在divide方法中,使用try-catch块来捕获可能发生的算术异常(即除数为零)。如果发生算术异常,会在控制台输出错误信息,并返回一个表示正无穷大的值。

    在主方法中,定义了两个变量dividend和divisor,其中divisor的值为0。然后调用divide方法进行除法运算,由于除数为零,会触发算术异常。在catch块中捕获并处理了这个异常情况,并打印出相应的错误信息。

    通过异常处理机制,程序能够在运行时出现错误时进行错误处理,而不会导致程序的崩溃。这可以帮助程序员更好地调试和修复程序中的问题。

  6. 线程

    Java支持多线程编程,可以同时执行多个任务。线程可以通过继承Thread类或实现Runnable接口来创建和管理。

    举例说明Java中的多线程编程:

    public class MyThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 5; i++) {System.out.println("Thread A: " + i);try {Thread.sleep(1000); // 暂停1秒钟} catch (InterruptedException e) {e.printStackTrace();}}}
    }public class Main {public static void main(String[] args) {MyThread threadA = new MyThread();threadA.start(); // 开始执行线程A的任务Runnable runnable = new Runnable() {@Overridepublic void run() {for (int i = 0; i < 5; i++) {System.out.println("Thread B: " + i);try {Thread.sleep(1000); // 暂停1秒钟} catch (InterruptedException e) {e.printStackTrace();}}}};Thread threadB = new Thread(runnable);threadB.start(); // 开始执行线程B的任务}
    }
    

    运行上述代码的结果可能是:

    Thread A: 0 Thread B: 0 Thread A: 1 Thread B: 1 Thread A: 2 Thread B: 2 Thread A: 3 Thread B: 3 Thread A: 4 Thread B: 4

    注意,由于线程是并发执行的,所以每次运行的结果可能不完全相同。

    在上面的示例中,定义了一个名为MyThread的类,继承自Thread类,重写了run方法。在run方法中,通过循环打印线程A的输出,并使用Thread.sleep方法暂停1秒钟,模拟线程执行的耗时操作。

    在主方法中,创建了一个MyThread对象threadA,并使用start方法开启线程A的执行。

    另外,通过实现Runnable接口,定义了一个匿名内部类的方式创建了一个Runnable对象,并重写了run方法。在run方法中,通过循环打印线程B的输出,并使用Thread.sleep方法暂停1秒钟。

    然后,创建了一个Thread对象threadB,将Runnable对象作为参数传入,并使用start方法开启线程B的执行。

    通过多线程编程,程序能够同时执行多个任务,提高了程序的并发性能。可以通过继承Thread类或实现Runnable接口来创建和管理线程,并通过调用start方法来启动线程的执行。

  7. 输入输出(I/O)

    Java提供了丰富的输入输出API,用于读取和写入数据。可以使用标准输入输出流(System.in和System.out)、文件输入输出流以及网络输入输出流等。

    Java提供了丰富的输入输出API,用于读取和写入数据。文件输入输出流是其中之一,用于读取和写入文件。

    文件输入流(FileInputStream)用于从文件中读取数据。它提供了多种读取数据的方法,如read()方法用于读取单个字节,read(byte[] b)方法用于读取一定数量的字节到字节数组中。

    示例代码:

    try {FileInputStream fileInputStream = new FileInputStream("input.txt"); // 创建文件输入流对象int byteRead; // 用于保存读取的字节while ((byteRead = fileInputStream.read()) != -1) {System.out.println(byteRead); // 打印读取的字节}fileInputStream.close(); // 关闭文件输入流
    } catch (IOException e) {e.printStackTrace();
    }
    

    文件输出流(FileOutputStream)用于将数据写入文件。它提供了多种写入数据的方法,如write(int b)方法用于写入单个字节,write(byte[] b)方法用于写入字节数组。

    示例代码:

    try {FileOutputStream fileOutputStream = new FileOutputStream("output.txt"); // 创建文件输出流对象String data = "Hello, world!"; // 数据fileOutputStream.write(data.getBytes()); // 将数据写入文件fileOutputStream.close(); // 关闭文件输出流
    } catch (IOException e) {e.printStackTrace();
    }
    

    需要注意的是,在使用文件输入输出流时,需要处理可能抛出的IOException异常,并在使用完毕后及时关闭流对象,以释放资源。

    除了文件输入输出流,Java还提供了丰富的输入输出API,包括网络输入输出流、内存输入输出流等。

    网络输入输出流: Java提供了Socket类和ServerSocket类来实现网络通信。Socket类用于创建客户端的套接字(Socket),而ServerSocket类用于创建服务器端的套接字(Socket)。通过这两个类,可以实现网络输入输出流的读取和写入。

    示例代码:

    // 客户端
    try {Socket socket = new Socket("127.0.0.1", 8000); // 创建套接字,并连接服务器OutputStream outputStream = socket.getOutputStream(); // 获取输出流outputStream.write("Hello, server!".getBytes()); // 写入数据InputStream inputStream = socket.getInputStream(); // 获取输入流byte[] buffer = new byte[1024];int length = inputStream.read(buffer); // 读取数据String response = new String(buffer, 0, length);System.out.println("Server response: " + response);socket.close(); // 关闭套接字
    } catch (IOException e) {e.printStackTrace();
    }// 服务器端
    try {ServerSocket serverSocket = new ServerSocket(8000); // 创建服务器套接字Socket socket = serverSocket.accept(); // 等待客户端连接InputStream inputStream = socket.getInputStream(); // 获取输入流byte[] buffer = new byte[1024];int length = inputStream.read(buffer); // 读取数据String request = new String(buffer, 0, length);System.out.println("Client request: " + request);OutputStream outputStream = socket.getOutputStream(); // 获取输出流outputStream.write("Hello, client!".getBytes()); // 写入数据socket.close(); // 关闭套接字
    } catch (IOException e) {e.printStackTrace();
    }
    

    内存输入输出流: Java提供了ByteArrayInputStream类和ByteArrayOutputStream类来实现内存输入输出流。它们可以将数据读取或写入到内存中的字节数组中。

    示例代码:

    try {String data = "Hello, world!"; // 数据byte[] bytes = data.getBytes(); // 字节数组ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); // 创建内存输入流int byteRead; // 用于保存读取的字节while ((byteRead = byteArrayInputStream.read()) != -1) {System.out.println(byteRead); // 打印读取的字节}byteArrayInputStream.close(); // 关闭内存输入流ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // 创建内存输出流byteArrayOutputStream.write(bytes); // 将字节数组写入内存输出流byte[] outputBytes = byteArrayOutputStream.toByteArray(); // 获取写入的字节数组String outputData = new String(outputBytes);System.out.println("Output data: " + outputData);byteArrayOutputStream.close(); // 关闭内存输出流
    } catch (IOException e) {e.printStackTrace();
    }
    

    需要注意的是,在使用网络输入输出流和内存输入输出流时,同样需要处理可能抛出的IOException异常,并在使用完毕后及时关闭流对象,以释放资源。

  8. 集合框架

    Java提供了一组用于存储和操作数据的集合类,如ArrayList、LinkedList、HashMap等。这些集合类可以方便地操作数据,并提供了丰富的功能和算法。

    是的,Java提供了一组用于存储和操作数据的集合类,这些集合类位于java.util包下。

    常见的集合类有:ArrayList:动态数组,可以根据需要自动扩展大小。LinkedList:双向链表,可以高效地在任意位置插入和删除元素。HashMap:无序的键值对集合,通过键来快速访问元素。TreeMap:有序的键值对集合,按照键的顺序遍历元素。HashSet:无序的唯一元素集合,不允许重复元素。TreeSet:有序的唯一元素集合,按照元素的顺序遍历。

  9. Java虚拟机(JVM)

    Java程序在JVM上运行。JVM负责解释和执行Java字节码,并提供内存管理和垃圾回收等功能。

    是的,Java程序在JVM(Java虚拟机)上运行。JVM是Java运行环境的核心组成部分,负责解释和执行Java字节码。当我们编写Java程序并进行编译时,Java源代码会被编译成字节码文件(.class文件),而不是直接编译成机器码。这个字节码文件是一种中间形式,它会在JVM上被解释执行。

    JVM提供了许多重要的功能,包括:
    1.字节码解释器:JVM会解释执行Java字节码,并将其转换为机器码。这种解释执行的方式使得Java具有跨平台的特性,同一份字节码可以在不同的操作系统上运行。
    2.内存管理:JVM负责分配和管理程序运行时所需要的内存。它将内存划分为不同的区域,包括堆(用于存储对象实例)、栈(用于存储局部变量和方法调用)、方法区(用于存储类信息和静态变量)等。
    3.垃圾回收:JVM通过垃圾回收机制自动管理内存中不再使用的对象。它会定期检查内存中的对象,释放不再使用的内存空间,从而避免内存泄漏和内存溢出的问题。
    4.类加载:JVM负责加载和解析Java类文件,并将其转换为运行时的对象。它会按需加载类文件,并确保类的正确性和一致性。
    5.运行时优化:JVM会对字节码进行优化,以提高程序的性能。它会根据程序的运行情况做出调整,如方法内联、循环展开等优化技术。
    通过这些功能,JVM使Java程序能够在不同的平台上运行,并提供了高效、安全和可靠的运行环境。同时,JVM也为Java开发者提供了一些监控和调试工具,以便更好地分析和优化程序的性能。

  10. 其他特性

    • 平台无关性:Java是一种跨平台的语言,可以在不同的操作系统上运行。
    • 内存管理:通过自动垃圾回收机制来管理内存,减轻了开发者的负担。
    • 安全性:Java内置了安全性机制,可以防止未经授权的访问和恶意代码的执行。

这些Java的核心知识点构成了Java编程的基础,掌握它们可以帮助你理解和编写Java程序。同时,Java还有丰富的库和框架,如JDBC用于数据库编程,Servlet和JSP用于Web开发等,这些也是Java开发中不可或缺的部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/25446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化专业之半导体行业入门指南

收到一枚自动化的毕业生,还是985的。暂定为eap 方向; 先熟悉 secs/gem的通讯协议,后续跟着供应商做eap实施,慢慢接触,能够做eap的开发与copy 工作;今年是一个毕业困难季节,大环境下半导体行业还有一些用人要求,如果大家有希望去这个行业发展的话,可以参考。个人判断半…

作业40 自定义函数

求一个三位数 题目描述 求这样一个三位数&#xff0c;该三位数等于其每位数字的阶乘之和。即abc a! b! c! (n!表示n的阶乘&#xff09; 输入 无 输出 输出这个数 #include<iostream> #include<iomanip> #include<string.h> using namespace std; bool func…

用大模型理解爆火的KAN网络

上个月五一假期的时候&#xff0c;KAN突然成为了热门话题。虽然最初我并没有计划弄懂它&#xff0c;但在老板的要求下&#xff0c;我还是探索了一下。 一、KAN是什么&#xff1f; Kolmogorov-Arnold 定理是数学领域的一个里程碑&#xff0c;它揭示了多元函数能够通过一组更简…

Golang 指针使用教程

文章目录 Go语言特性Go语言指针Go指针示例Go应用场景 Go语言特性 Go函数只有 值传递Go指针 不能运算指针类型的定义与基础数据类型有关&#xff0c;即指针类型是与其指向的变量的类型相关联的。 Go语言指针 使用new函数&#xff1a; new函数用于分配内存&#xff0c;并返回一…

SpringBoot 参数验证的几种方式

文章目录 SpringBoot 参数验证1、为什么要进行参数验证2、验证方式2.1 if 语句判断2.2 Assert2.3 Validator2.3.1 引入依赖2.3.2 定义参数实体类2.3.4 定义特定异常全局拦截方法2.3.5 定义校验类进行测试2.3.6 测试 2.4 自定义验证注解2.4.1 定义自定义注解2.4.2 定义自定义验证…

Python第二语言(八、Python包)

目录 1. 什么是Python包 2. 创包步骤 2.1 new包 2.2 查看创建的包 2.3 拖动文件到包下 3. 导入包 4. 安装第三方包 4.1 什么是第三方包 4.2 安装第三方包-pip 4.3 pip网络优化 1. 什么是Python包 包下有__init__.py就是包&#xff0c;无__init__.py就是文件夹。于Ja…

嵌入式学习——Linux高级编程复习(进程)——day39

1. 进程 进程是计算机科学中的一个核心概念&#xff0c;它是操作系统进行资源分配和调度的基本单位&#xff0c;代表了一个正在执行中的程序实例。当一个程序被加载到内存并开始执行时&#xff0c;它就变成了一个进程。 1. 程序&#xff1a;存放在外存中的一段代码的集合 2. 进…

牛客 NC129 阶乘末尾0的数量【简单 基础数学 Java/Go/PHP/C++】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/aa03dff18376454c9d2e359163bf44b8 https://www.lintcode.com/problem/2 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff…

Python 很好用的爬虫框架:Scrapy:

了解Scrapy 爬虫框架的工作流程&#xff1a; 在scrapy中&#xff0c; 具体工作流程是这样的&#xff1a; 首先第一步 当爬虫引擎<engine>启动后&#xff0c; 引擎会到 spider 中获取 start_url<起始url> 然后将其封装为一个request对象&#xff0c; 交给调度器<…

GDPU JavaWeb 大结局篇(持续更新中)

GDPUJavaWeb程序设计复习&#xff0c;习题集&#xff0c;重点知识总结&#xff0c;一篇就够了。 实验复习 JavaWeb代码复习&#xff0c;在专栏也可查阅。 课后巩固习题 1 【单选题】下列说法正确的是( D ) A、在B/S结构中,结果应用软件发生了改变,就必须通知所有的客户端重新…

Elastic Search 8.14:更快且更具成本效益的向量搜索,使用 retrievers 和重新排序提升相关性,RAG 和开发工具

作者&#xff1a;来自 Elastic Yaru Lin, Ranjana Devaji 我们致力于突破搜索开发的界限&#xff0c;并专注于为搜索构建者提供强大的工具。通过我们的最新更新&#xff0c;Elastic 对于处理以向量表示的大量数据的客户来说变得更加强大。这些增强功能保证了更快的速度、降低的…

Activity->Activity中动态添加Fragment->add和replace方式添加的区别

XML文件 Activity布局文件R.layout.activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/root_ll"android:orientation"v…

Linux本地搭建DataEase并发布公网远程访问进行数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

【RAG入门教程01】Langchian框架 v0.2介绍

LangChain 是一个开源框架&#xff0c;旨在简化使用大型语言模型 (LLM) 创建应用程序的过程。可以将其想象成一套使用高级语言工具进行搭建的乐高积木。 它对于想要构建复杂的基于语言的应用程序而又不必管理直接与语言模型交互的复杂性的开发人员特别有用。它简化了将这些模型…

我已经入驻@面包多平台

大学常见的Javaswing 图书管理系统已经真实发布&#xff0c;使用MySQL作为数据支撑&#xff0c;欢迎点击下面的链接随时购买。 面包多-JavaSwing MySQL图书管理系统

数据库之PostgreSQL详解

一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议&#xff0c;这个协议基本和MIT开源协议一样&#xff0c;说人话&#xff0c;就是你可以对PostgreSQL进行一些封装&a…

如何在本地和远程删除 Git 分支

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;目前是武汉城市开发者社区主理人 擅长.net、C、python开发&#xff0c; 如果遇…

【人工智能】ChatGPT基本工作原理

ChatGPT 是由 OpenAI 开发的一种基于深度学习技术的自然语言处理模型&#xff0c;它使用了名为 GPT&#xff08;Generative Pre-trained Transformer&#xff09;的架构。GPT 模型是一种基于 Transformer 架构的预训练语言模型&#xff0c;它通过大量的文本数据进行预训练&…

SpringBoot之Mybatis-plus实战

文章目录 MybatisPlus 介绍一、MyBatisPlus 集成步骤第一步、引入依赖第二步、定义mapper 二、注解TableNameTableldTableField 加解密实现步骤 在SpringBoot项目中使用Mybatis-plus&#xff0c;记录下来&#xff0c;方便备查。 MybatisPlus 介绍 为简化开发而生&#xff0c;官…

CSAPP Lab01——Data Lab完成思路

陪你把想念的酸拥抱成温暖 陪你把彷徨写出情节来 未来多漫长再漫长还有期待 陪伴你 一直到 故事给说完 ——陪你度过漫长岁月 完整代码见&#xff1a;CSAPP/datalab-handout at main SnowLegend-star/CSAPP (github.com) 01 bitXor 这道题是用~和&计算x^y。 异或是两个…