后端开发知识点整理汇总

后端开发从入门到精通 后端开发主要关注服务器端的编程和相关操作。当用户在前端界面进行操作时,如点击按钮、提交表单等,这些请求会被发送到服务器端。后端开发人员负责编写代码来处理这些请求,包括验证数据的有效性、执行相应的业务逻辑(如计算、数据处理等)、与数据库进行交互以存储或检索数据,然后将处理结果返回给前端,以便在用户界面上进行展示或进一步的操作。例如,在一个社交媒体平台上,用户发布一篇文章,后端需要处理文章的内容验证、存储到数据库中,并通知其他相关用户等一系列操作。后端开发是一个充满挑战和机遇的领域,需要不断学习和实践。 阅读详情

背景介绍

  • 本文主要是对Java后端日常开发常用的知识做一些整理,以便使用时查看。

Java8 Lambda编程

  • 为什么lambda表达式使用的局部变量要是final的
    • 为什么 Lambda 表达式(匿名类) 不能访问非 final 的局部变量呢?
    • 因为实例变量存在堆中,而局部变量是在栈上分配,Lambda 表达(匿名类) 会在另一个线程中执行。如果在线程中要直接访问一个局部变量,可能线程执行时该局部变量已经被销毁了,而 final 类型的局部变量在 Lambda 表达式(匿名类) 中其实是局部变量的一个拷贝,因为之前的存放在栈中(lambda表达式在其他线程运行的时候可能栈已经释放了),所以必须要拷贝出一份来。
    • 在Lambda表达式中可以捕获静态变量和实例变量,但是如果想要捕获局部变量的时候就需要声明成final的,即使我们不主动声明,编译器也会为我们自动声明成final的,不能再重新赋值。也就是Lambda表达式中访问的局部变量(隐式被声明为final的)是可读不可写的,但是Lambda表达式中访问的实例变量和静态变量是可读可写的。
  • java8将list转为map
public Map<Long, String> getIdNameMap(List<Account> accounts) {
    return accounts.stream().collect(Collectors.toMap(Account::getUserId, Account::getUsername));
}
  • 将实体对象转换成Map
public Map<Long, Account> getIdAccountMap(List<Account> accounts) {
   return accounts.stream().collect(Collectors.toMap(Account::getId, account -> account));
}

public Map<Long, Account> getIdAccountMap(List<Account> accounts) {
    return accounts.stream().collect(Collectors.toMap(Account::getId, Function.identity()));
}
  • 将List转换为Map,其中Map的key为指定的,value为List对象
Map<String,List<VehicleVO>> vOMap = vehicleVOList.stream()
                .collect(Collectors.groupingBy(XXXVO::getPlateNo));
  • filter筛选条件
//过滤出并返回符合filter筛选条件的;
list.stream().filter(x->x.indexOf(keyword) >= 0).collect(Collectors.toList());
  • 指定具体收集的map
public Map<String, Account> getNameAccountMap(List<Account> accounts) {
    return accounts.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2, LinkedHashMap::new));
}

toMap还有另一个重载方法,可以指定一个Map的具体实现,来收集数据:

  • 对List中的元素进行分组
 Map<String,List<TestVO>> result = testList.stream().collect(Collectors.groupingBy(e->e.getName()));
  • 移除List中的重复元素
protected final <T> List<T> removeDuplicates(List<T> list) {
        return new ArrayList(new LinkedHashSet(list));
 }
  • 获取List中的最小值/最大值
String minStartValidTimeStr = testList.stream().min(String::compareTo).get();
  • Lambda表达式中解决计数的问题
/**
 * 定义外部计数类
 */
class CountOuter {
    private int i = 0;
    private final List<String> testList = new ArrayList<>();
    public Integer count() {
        return i++;
    }
    public Integer getCount() {
        return i;
    }
    public void addElementToList(String testId) {
        testList .add(testId);
    }
    public List<String> getList() {
        return testList;
    }
}

在代码中使用上述外部类:

 CountOuter countOuter = new CountOuter();
 totalMap.put(tet.getPlateNo(),countOuter.getCount());
 List<String> testIdList = countOuter.getList();

Gson使用

  • 使用gson 使用gson 将json字符串转换为List<Map<String,object>> 数组
List<Map<String, Object>> resultList= new Gson().fromJson(objListStr, new TypeToken<List<Map<String, Object>>>(){}.getType()); 
  • Gson创建
Gson gson1 = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
Foo foo = new Foo();
String json1 = gson1.toJson(foo);
  • Gson使用示例
public class Sample {
    public static void main(String[] args) {
        String json = "{\"nestedPojo\":[{\"name\":null, \"value\":42}]}";
        Gson gson = new Gson();
        gson.fromJson(json, Pojo.class);
    }
}

class Pojo {
    NestedPojo nestedPojo;
}

class NestedPojo {
    String name;
    int value;
}

{
    "nestedPojo": [
        {
            "name": null,
            "value": 42
        }
    ]
}

class Custom implements JsonDeserializer<NestedPojo> {
    @Override
    public NestedPojo deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        NestedPojo nestedPojo = new NestedPojo();
        JsonArray jsonArray = json.getAsJsonArray();
        if (jsonArray.size() != 1) {
            throw new IllegalStateException("unexpected json");
        }
        JsonObject jsonObject = jsonArray.get(0).getAsJsonObject(); // get only element
        JsonElement jsonElement = jsonObject.get("name");
        if (!jsonElement.isJsonNull()) {
            nestedPojo.name = jsonElement.getAsString();
        }
        nestedPojo.value = jsonObject.get("value").getAsInt();
        return nestedPojo;
    }
}

Gson gson = new GsonBuilder().registerTypeAdapter(NestedPojo.class, new Custom()).create();

Jackson中ObjectMapper属性设置

ObjectMapper om = new ObjectMapper();
// 属性为Null的不进行序列化,只对pojo起作用,对map和list不起作用
om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
// json进行换行缩进等操作
om.enable(SerializationFeature.INDENT_OUTPUT);
// json不进行换行缩进等操作  默认就是不进行操作,写了这行和没写的效果一样
om.disable(SerializationFeature.INDENT_OUTPUT);
// json是否允许属性名没有引号 ,默认是false
om.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
//json是否允许属性名为单引号 ,默认是false
om.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
// 遇到未知属性是否抛出异常 ,默认是抛出异常的
om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// 当实体类没有setter方法时,序列化不报错,返回一个空对象
om.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// 所有的字母小写,下划线作为名字之间分隔符,例如 snake_case
om.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
// 所有名字(包括第一个字符)都以大写字母开头,后跟小写字母,没有分隔符,例如 UpperCamelCase
om.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
// 第一个单词以小写字母开头,后续每个单词都是大写字母开头,没有分隔符,例如 lowerCamelCase
om.setPropertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE);
// 所有的字母小写,没有分隔符,例如 lowercase
om.setPropertyNamingStrategy(PropertyNamingStrategy.LOWER_CASE);
// “Lisp” 风格,采用小写字母、连字符作为分隔符,例如 “lower-case” 或 “first-name”
om.setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
  • 使用jackson时过滤null值
  1. 方法一:使用yml配置方式
spring:
  jackson:
    default-property-inclusion: non_null
  1. 方法二:使用Bean注入方式配置
@Configuration
public class MyJacksonConfig {
    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
    {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        // 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化
        // Include.Include.ALWAYS 默认
        // Include.NON_DEFAULT 属性为默认值不序列化
        // Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量
        // Include.NON_NULL 属性为NULL 不序列化
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        // 允许出现单引号
        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
        return objectMapper;
    }
}

Java知识整理

  • BigDecimal相加
BigDecimal b1 = BigDecimal.ZERO;
BigDecimal b2 = BigDecimal.valueOf(3);
b2 = b2.add(b1); // 这样写的话会把新的对象赋值给b2
b2.add(b1);      // 这样的话b2是不会变化的 

Java8日期使用

  • java8字符串转LocalDateTime
String param;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime nowDate = LocalDateTime.parse(param,formatter);
  • 计算两个LocalDateTime的时间差
		LocalDateTime nowDate =  LocalDateTime.now();
        int interval = 5;
        LocalDateTime before3HourOfNow = nowDate.minus(interval, ChronoUnit.HOURS);
        long hoursInterval = ChronoUnit.HOURS.between( before3HourOfNow,nowDate);

        Duration duration = Duration.between(before3HourOfNow, before3HourOfNow);
        duration.toDays();

序列化/反序列化

  • 被 transient 关键字修饰的属性不会被序列化, static 属性也不会被序列化.

泛型

  1. 泛型方法的概念
    方法的参数类型是泛型,而不是具体的参数。
    注意:是方法的参数是泛型,而不是方法的返回值。

  2. 泛型方法的定义格式

[访问权限] <泛型> 返回值类型 方法名([泛型标识 参数名称]){方法体;}
  1. 泛型方法实例
public <T2> void printArray(T2[] arr){}

以上方法就是泛型方法,方法的参数是一个数组,但是这个数组存放的数据类型不是具体的,而是一个泛型。另外,因为这个T2泛型是我们自己定义的,不是Java官方的。
所以为了表示T2也是一种泛型标识,需要在方法的前面也需要添加泛型,用于告诉编译器T2表示泛型。

  • 注:泛型的类型参数使用大写形式,且比较短,一般一个字母,这是很常见的。在java库中,使用变量E表示集合的元素类型。K和V分别表示键与值的类型,比如:Map的键与值。T(需要时还可以用临近的字母U和S)表示“任意类型”。

CURL 用法整理

  • 发送POST请求
curl -H "Content-Type: application/json" 
-X POST 
-d '{"user_id": "123", "coin":100, "success":1, "msg":"OK!" }' 
"http://<HTTP地址>:8001/test" -v

参数 内容
-H 请求头
-d POST内容
-X 请求协议

  • 使用示例
    详细的请求信息,需要加上 -v 参数
  • 使用示例
curl -H "token:test string" -X GET https://test address?lng=11.67&lat=39.5254

curl的请求头中有多个参数:

curl -H "token:xxxx,map:true" -X GET http://test.aaa.com/bbb?location=120.88,41.99
curl -H "Content-Type:application/json"  -H "Authorization:aaa" -X POST --data '{"number":"京F58XX","startTime":"2021-05-13 00:32:27","endTime":"2021-05-15 00:32:27"}' http://xxxx.com/xxxx/common/xxxx

查看建表语句

show create table 表名;  
show full COLUMNS from 表名;
describe 表名;

反射

  • 获取反射中的Class对象
    • 在反射中,要获取一个类或调用一个类的方法,我们首先需要获取到该类的 Class 对象。
      在 Java API 中,获取 Class 类对象有三种方法:
  • 第一种,使用 Class.forName 静态方法。当你知道该类的全路径名时,你可以使用该方法获取 Class 类对象。
Class clz = Class.forName("java.lang.String");
  • 第二种,使用 .class 方法。这种方法只适合在编译前就知道操作的 Class。
Class clz = String.class;
  • 第三种,使用类对象的 getClass() 方法。
String str = new String("Hello");
Class clz = str.getClass();
  • 通过反射创建类对象
    通过反射创建类对象主要有两种方式:
    • 通过 Class 对象的 newInstance() 方法、
    • 通过 Constructor 对象的 newInstance() 方法。
  • 第一种:通过 Class 对象的 newInstance() 方法。
Class clz = Apple.class;
Apple apple = (Apple)clz.newInstance();
  • 第二种:通过 Constructor 对象的 newInstance() 方法
Class clz = Apple.class;
Constructor constructor = clz.getConstructor();
Apple apple = (Apple)constructor.newInstance();
  • 通过 Constructor 对象创建类对象可以选择特定构造方法,而通过 Class 对象则只能使用默认的无参数构造方法。下面的代码就调用了一个有参数的构造方法进行了类对象的初始化。
Class clz = Apple.class;
Constructor constructor = clz.getConstructor(String.class, int.class);
Apple apple = (Apple)constructor.newInstance("红富士", 15);
  • 与获取类属性一样,当我们去获取类方法、类构造器时,如果要获取私有方法或私有构造器,则必须使用有 declared 关键字的方法。
  • 反射获取method对象示例
Class clz = Class.forName("目录名.Apple");
//获取类中指定名称对应的method对象
Method method = clz.getMethod("setPrice", int.class);
Constructor constructor = clz.getConstructor();
Object object = constructor.newInstance();
method.invoke(object, 4);
 public void setPrice(int price) {
        this.price = price;
    }
Method method = clz.getMethod("setPrice", int.class); 
method.invoke(object, 4);   //就是这里的invoke方法

注意:getMethod方法中的第一个参数为方法名称,第二个参数表示获取的方法的入参类型

判断两个包装类型是否相等

		// 2)两个包装类型
        Integer c = 100;
        Integer d = 100;
        System.out.println(c == d);   //结果:true

        // 3)
        c = 200;
        d = 200;
        System.out.println(c == d);   //结果:false

Integer中:-128 到 127 之间的数会从 IntegerCache 中取,然后比较,所以第二段代码(100 在这个范围之内)的结果是 true,而第三段代码(200 不在这个范围之内,所以 new 出来了两个 Integer 对象)的结果是 false。

欢迎关注我的微信公众号ItBeeCoder

在这里插入图片描述

**后端开发**(Back-end Development)是什么? 后端开发是支撑现代应用程序和网站功能的核心部分,主要负责服务器端的逻辑、数据处理和与前端的交互。后端开发需要使用多种编程语言、框架和技术,并需要具备一定的数据库、API设计、安全性、性能优化等方面的知识。随着技术的不断发展,后端开发也在不断演进,以应对更复杂和高并发的应用场景。 阅读详情

相关推荐

后端开发岗位要求汇总

后端开发岗位要求汇总 一、前言 ​ 2020年,是一个“多灾多难”之年,我们经历了疫情,经历了美股熔断,经历了全球大放水,同样经历了各种活久见的事情;不过,还好国内疫情已经没有那么严重了,剩下的就是等待疫苗的横空出世来拯救我们就好了! 回归正题吧,不扯淡了!今天的主题是主要整理一下后端开发岗位招聘要求和需要掌握的技能,相信今年有很多想要更换工作的同猿们,被突如其来的疫情打乱了计划,希望来年的你们能得到你们想要的offer!祝好~ 这份要求可能没有大家常见有数据分析那种,有很多的饼图、柱状图等等,这里只有单

Travelerwz的博客 5917

后端开发(超全!!!)

本文简要介绍了后端开发的基础知识、技术栈、工具和进阶知识。后端开发是 Web 应用程序的重要组成部分,掌握好后端开发技术可以让我们更好地构建高效、可靠、安全的 Web 应用程序。

m0_72410588的博客 1万+

Java后端开发工程师技术栈整理

文章目录Java后端开发工程师技术栈整理常用工具Java IDE数据库客户端数据库建模工具SSH客户端文本编辑器Markdown编辑器API调试工具浏览器压力测试工具DevOps工具链其它工具框架与库核心框架综合库数据库ORM依赖管理任务调度JSON序列化导入导出Excel单元测试代码简化微服务架构网关服务注册、配置和管理中心安全(认证和健全)服务间调用(RPC调用)服务负载均衡链路跟踪服务监控中间件负载均衡和代理服务器分布式缓存关系型数据库NoSQL数据库分布式消息队列搜索引擎环境和部署Linux容器容器

锐意工作室 2940

【后端开发知识讲解】

author 17岁boy想当攻城狮 一. 前言 本片文章面向后端开发,讲述后端在进行开发时所使用的WEB服务器的工作流程,正所谓知根知底,WEB服务器是后端开发人员日常用于调试WEB程序和与前端通讯的一种方式! WEB服务器最为强大的地方是能够执行WEB程序,其WEB程序的编程语言并没有明确的规定,因为只要你所使用的服务器支持这样的程序就可以了! WEB服务器更像是一个平台,在此平台上编写

Sugar_wolf的博客 2392

后端开发教程系列-java向

涵盖快速入门,mysql,分布式等一系列知识

oatlmy 1万+

C++ 后端开发工程师的技术栈整理

C++ 后台开发岗位知识技能树 一、语言: a)C/C++ 语言,对象生命周期,垃圾回收,标准库,错误与异常的处理,日志,面向对象的理解,设计模式,GDB的使用,代码高内聚低耦合 二、数据结构与算法: a)线性表:链表,队列,栈 b)树:二叉树,红黑树,字典树,线段树等 c)图:图搜索,dijkstra算法,最小生成树 d)递归 e)排序:希尔,归并,快排,堆排序,桶排序 f)算法:贪心,动态规划 g)跳表,散列表,布隆过滤器 三、数据库 a)持久型mySql i.MySql安装与配置 ii

sesiria的博客 7393

后端开发的认识

后端开发指的是构建应用程序后端的过程,通常涉及到服务器端编程、数据库管理和API开发等技能。与前端开发不同,后端开发主要关注数据的存储、处理和逻辑的运算,后端开发人员需要熟悉互联网架构、数据结构、算法、网络协议和安全性等方面的知识。后端开发的主要工作包括设计和编写API、管理和维护数据库、构建基础设施以及实现服务器端的网络通信和逻辑运算等。通过后端开发,可以实现各种应用程序的高效和稳定运行,为用户提供更好的服务体验。

m0_65382530的博客 4587

2020年最全Java面试汇总整理(含答案),再也不用担心面试被挂了

本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖: Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈…… 希望大家都能找到适合自己的公司,开开心心的撸代码 由于题量较多,篇幅的限制,文...

一入Java深似海 4123

互联网大厂 Java 后端开发面试总结:25 个技术专题(最全面试攻略)

小编分享的这份 Java 后端开发面试总结包含了 JavaOOP、Java 集合容器、Java 异常、并发编程、Java 反射、Java 序列化、JVM、Redis、Spring MVC、MyBatis、MySQL 数据库、消息中间件 MQ、Dubbo、Linux、ZooKeeper、 分布式 &数据结构与算法等 25 个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份 PDF 拿下众多大厂的 offer,今天在这里总结分享给到大家!

m0_50180963的博客 757

SAP BSP网页开发入门:从SE80创建到MVC实战(附成品展示)

本文详细介绍了SAP BSP网页开发的入门与实战,从SE80环境搭建到MVC架构实现的全流程。通过具体案例和代码示例,帮助开发者掌握业务服务器页面(BSP)技术,提升SAP Web化转型中的开发效率,适用于需要扩展SAP功能的企业场景。

x1y2z的博客 1万+

魔兽世界怀旧服宏命令全解析:从自动换装到智能判定,老玩家才知道的黑科技

本文全面解析魔兽世界怀旧服宏命令的高级应用,从自动换装到智能判定,揭秘老玩家专属的黑科技技巧。深入探讨怀旧服特有的宏命令机制,包括施法队列、装备切换系统和职业专属技巧,帮助玩家在经典旧世版本中提升战斗效率。

weixin_29230865的博客 733

2022年秋招java后端面试总结,只看这一篇文章就够了

编译时异常运行时异常继承一个异常类,通常是RumtimeException或者Exception大家可以扫二维码免费领取大家可以扫二维码免费领取栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出 栈)两种,前者相当于插入,后者相当于删除最后的元素。篇幅有限,其他内容就不在这里一一展示了,对标阿里P7的Java后端开发面试总结一共25个专题,整理不易。​。

QLCZ0809的博客 986

torch.jit.script 与 torch.jit.trace

它们是 PyTorch 的即时编译(Just-in-Time Compilation)模块的一部分,用于提高模型的执行效率并支持模型的部署。方法只跟踪了给定输入张量的执行路径,因此在使用转换后的模块对象进行推理时,输入张量的维度和数据类型必须与跟踪时使用的相同。跟踪模型可以看作是一个具有相同功能的脚本模型,但它还保留了原始模型的动态特性,可以使用更多高级特性,如动态图和控制流。它接受一个模型和一个示例输入,并记录模型在给定输入上的执行过程,然后返回一个跟踪模型。的模型文件,并将其转换为评估模式。

leoatliang的博客 1万+

Web后端开发知识点整理

Web后端开发知识点整理 九大内置对象 1:为了方便开发者而在jsp页面加载完毕时而自动创建的内置对象 内置对象名 类型 request HttpServletRequest response HttpServletResponse config ServletConfig application ServletConte...

qq_35273452的博客 3622

【ESP 保姆级教程】玩转emqx数据集成篇④ ——数据桥接之HTTP服务

主要是学习数据桥接功能以及构建自己的http服务器,这是一个非常有用的功能。包括各种传感器上报基本上都需要数据桥接功能支持,所以还是希望认真学习这一块开发,然后结合数据库存储等等知识点进行进一步学习。

单片机菜鸟哥的博客 1307

MDF和DHF、DMR、DHR三者差异?注册与备案文件?医疗器械产品技术要求编写指导原则

定义:设计历史文档(DHF ) 指的是描述某医疗器械成品设计过程的有关记录。内容:DHF包括设计开发活动的所有记录。从最初的策划、客户需求、设计输入,设计输出、设计验证、设计确认、所有的设计评审,设计转换,以及设计变更相关的所有记录。均属于DHF的一部分。要求:各制造商应为每个类型的器械建立并保持设计历史文件。设计历史文件应包含或引用必要的记录,以证实设计符合经批准的设计计划和法规的要求。

学海无涯的专栏 9112

后端开发知识点整理

后端面试知识点整理(持续更新) 1. 计网 计网面试知识点一、 流量控制与可靠传输机制 计网面试知识点二、拥塞控制 计网面试知识点三、计算机网络五层模型中的物理硬件 计网面试知识点四、TCP/IP协议 计网面试知识点五、Cookie和Session 2. OS OS面试知识点一、进程和线程 OS面试知识点二、物理内存和虚拟地址 3. Mysql MYSQL面试知识点一、索引 MYSQL面试知识点二、存储引擎 MYSQL面试知识点三、事务 MYSQL面试知识点四、锁 4. Redis Redis面试知识点一、

菜到不敢run 681

RK3588 固定hdmiin的dev/videoX节点

RK3588 固定hdmiin的dev/videoX节点

目前从事linux驱动开发,多交流多学习吧 2050

后端开发知识汇总

这里写自定后端开发知识汇总义目录标题 持续学习,整理零碎的知识点,我们一起来点亮知识树(持续更新)

weixin_44791647的博客 244

【YOLOv8全方位学习手册】第四章 数据增强:从扩充数据到塑造模型的认知边界

"""使用 Albumentations 做自定义增强,兼容 YOLO 格式"""])# 转成 numpy# boxes 必须是 [[x_min,y_min,x_max,y_max], ...]# 在数据加载时调用你可以把集成到 PyTorch 的 Dataset 类里,或使用 Ultralytics 自带的DataLoader。

VectorShift的博客 213

21、空间数据处理中的克里金方法及应用

本文介绍了空间数据处理中的克里金方法,特别是带外部漂移的克里金法(KED)及其在遥感数据融合和支持变化问题中的应用。讨论了克里金方法的基本原理、优缺点以及在不同空间分辨率遥感图像融合中的具体操作流程。同时,还涉及了地统计数据融合和支持变化问题的解决方案,包括块克里金法、面到点克里金法和多边形克里金法等。

gold的博客 90

Java后端开发进阶知识点整理

该文章的编写目的为为Java后端的初学者整理后端技术的学习树,包括了常见的后端相关技术,适合有一定Java后端开发基础的同学,和想了解Java后端开发学习路线的同学。 全文包含了许多后端技术的原理和源码分析,但因为是原型,故还相对比较混乱,还在持续更新中……

qq_53662879的博客 1470

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

后端开发面试自我介绍_史上最全,C++后端开发面试题与知识点汇总

以下汇总C++后台开发面试题与知识点,还有其他岗位的相关题库和资料,想要什么岗位的可以留言哦~ 附面试题目: 一、基础知识 1、基本语言 说一下C++和C的区别 说一下C++中static关键字的作用 说一说c++中四种cast转换请说一下C/C++ 中指针和引用的区别? 给定三角形ABC和一点P(x,y,z),判断点P是否在ABC内,给出思路并手写代码怎么判断一个数是二的倍数,怎么求一个数中...

weixin_35370032的博客 1271

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

2021年春招Java后端开发面试知识点总结!

前言 转眼间2020年过去已经有一段时间了,相信大家在2020年年末的秋招已经拿到了自己满意的offer。有没有拿到的也不用着急,小编在这里为大家整理了一份2021春招java后端开发面试知识点总结,大家只要把这份知识点背熟记牢,突击一个面试还是没有什么问题的,这份知识点包括Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等,满满的干货给大家放在下面了! 语言特性 Java 语言的优点? ① 平台无关性,摆脱硬件束缚,“一次编写,到处运

weixin_53170315的博客 892

Camera2Demo

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

java后端开发题库_2020年Java题库整理

2020年Java题库整理(WUST)前言:去我的个人博客阅读效果更好哟。知识点整理:1.Java 语言具有跨平台性, 是一种面向对象的语言,程序具有可移植性,不可多继承。2.Java的标准版主要用于桌面级的应用和数据库的开发。3.main()的头定义只能为public void main,一个类中可以没有 main()方法。4.接口可以继承接口。5.静态内部类不能访问外部类的非静态成员,内部类可...

weixin_29246195的博客 1148

【就业】 后端开发面试资料汇总

文章目录前言一、三太子敖丙1.内容框架图2.资料链接3.原文链接二、后端架构师技术图谱1.资料链接2.原文链接结语 前言 本文分享一些自己积累的后端开发面试准备学习资料,欢迎转发收藏。(以下是本篇文章正文内容) 一、三太子敖丙 1.内容框架图 2.资料链接 https://github.com/AobingJava/JavaFamily 3.原文链接 https://blog.youkuaiyun.com/qq_35190492/article/details/105992063?ops_request_mi..

qq_42713070的博客 617
上一篇: SpringBoot开发相关知识整理
下一篇: Nginx使用及配置整理
It_BeeCoder
博客等级 码龄10年 967粉丝 238原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值