当前位置: 首页 > news >正文

JDK新特性(8-21)数据类型-直接内存

目录

Jdk 新特性

JDK 8 特性

默认方法实现作用:可以使接口更加灵活,不破坏现有实现的情况下添加新的方法。

函数式接口

StreamAPI

JDK 9 特性

JDK 10 特性

JDK 11 特性

JDK 14 特性

JDK 17 特性

JDK 21 特性

数据类型

基本数据类型和引用数据类型的区别

自动装箱自动拆箱

integer和int的区别

缓存池实现

直接内存


Jdk 新特性

JDK 8 特性

1、Lambda 表达式:这是 JDK 8 最重要的特性之一。它允许将函数作为方法参数传递,

使得代码更加简洁。对于接口可以直接用()->{}方式来表达

小括号表示方法入参,花括号内表示方法返回值,如Collections的sort()方法:

Optional判空。

例如,可以使用 Lambda 表达式来简化集合的遍历和操作。

如List<String> list = Arrays.asList("a", "b", "c");

list.forEach((s) -> System.out.println(s));。

2、Stream API:提供了一种对集合进行操作的新方式。它支持链式操作,

用于对数据进行过滤、映射、排序等操作。

例如,List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

 List<Integer> evenNumbers =

numbers.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());

,可以方便地从一个集合中筛选出偶数。

3、接口默认方法和静态方法:接口可以有默认方法和静态方法。

默认方法允许在接口中提供默认的实现,

这样实现接口的类在没有重写该方法时可以使用默认实现。

例如,interface MyInterface {

default void myMethod() { System.out.println("Default method"); }

}。

4、新的日期和时间API

5、并发增强

6、支持多重注解

7、反射的加强 。JDK8加强了反射,它允许你直接通过反射获取参数的名字

9、JavaScript引擎Nashorn

10、Java虚拟机(JVM)的新特性

PermGen移出永久代,变成是Metaspace元空间。

JVM选项-XX:PermSize与-XX:MaxPermSize分别被-XX:MetaSpaceSize与-XX:MaxMetaspaceSize所代替。

原文链接:JDK 7 和 JDK8 的区别_jdk8个jdk7区别-CSDN博客

默认方法实现作用:可以使接口更加灵活不破坏现有实现的情况下添加新的方法


功能性接口:Function  接收一个功能参数t,并返回一个功能结果R。

断言性接口:Predicate  主要用到test方法 其中参数t为输入参数,

如果输入参数符合断言则返回true,否则false 。/ˈpredɪkət /

供给性接口:Supplier 不接收任何参数 但有返回值。/səˈplaɪə(r)/

java.util.function.Supplier <T>接口仅包含一个无参的方法:T get(),

用来获取一个泛型参数指定类型的对象数据

消费性接口:Consumer   只接收一个参数t,但是没有返回值。 

函数式接口

有且仅有一个抽象方法的接口(不包括默认方法、静态方法以及对Object方法的重写)

(注:一般会出现一个名词叫做“语法糖”,即使用更加方便而原理不变的代码语法,

如Lambda可以认为是匿名内部类的语法糖)

@FunctionalInterface 

// 定义一个接口,只包含一个抽象方法

public interface MyfuInter {

    public abstract void method();

}

StreamAPI

filter(T -> boolean)  保留 boolean 为 true 的元素

map(T -> R)  将流中的每一个元素 T 映射为 R(类似类型转换)

List<String> newlist = list.stream().map(Person::getName).collect(toList());

 flatMap(T -> Stream)

将流中的每一个元素 T 映射为一个流,再把每一个流连接成为一个流

//去重复

Stream<T> distinct();

//排序

Stream<T> sorted();

//根据属性排序

Stream<T> sorted(Comparator<? super T> comparator);

//对对象的进行操作

Stream<T> peek(Consumer<? super T> action);

//截断--取先maxSize个对象

Stream<T> limit(long maxSize);

//截断--忽略前N个对象

Stream<T> (long n);

anyMatch表示,判断的条件里,任意一个元素成功,返回true

allMatch表示,判断条件里的元素,所有的都是,返回true

noneMatch跟allMatch相反,判断条件里的元素,所有的都不是,返回true

 joining 连接字符串   .collect(joining(",")); 返回String

groupingBy 用于将数据分组,最终返回一个 Map 类型

 统计(count、averaging)

 min,max,findFirst,findAny

平均值:averagingInt、averagingLong、averagingDouble

最值:maxBy、minBy

求和:summingInt、summingLong、summingDouble

统计以上所有:summarizingInt、summarizingLong、summarizingDouble

List<User> userList = Lists.newArrayList();

userList.add(new User(1L, "彼得", 18));

userList.stream() .filter(user -> user.getAge() >18) .map(User::getName).forEach(System.out::println);

userRespDtoList.stream().filter(x -> !ObjectUtils.isEmpty(x.getDeptId())).forEach(user -> {})

Map、collect、group by、distinct、sum

list.stream()

                .filter(s -> s.startsWith("张"))

                .filter(s -> s.length() == 3)

                .forEach(System.out::println);

List<String> idcards= users.stream().map(User::getIdcard).collect(Collectors.toList())

原文链接:list对象转map stream /去重( 根据属性转Map或者分组)_list转map去重-CSDN博客

JDK 9 特性

模块系统(Java Platform Module System - JPMS):这是 JDK 9 的核心变化。它将 Java 代 码组织成模块,每个模块有自己的名称、依赖关系和封装边界。

例如,可以创建一个名为com.example.mymodule的模块,

并且在模块描述文件module - info.java中定义模块的依赖和导出的包,如module com.example.mymodule

 { exports com.example.api; requires java.base; }。

改进的 JShell 工具:JShell 是一个交互式的 Java 编程环境。

在 JDK 9 中它得到了改进,允许开发者快速地测试 Java 代码片段,而不 需要编写完整的类和方法。

例如,可以直接在 JShell 中输入int a = 5; System.out.println(a);

并立即看到输出结果。

JDK 10 特性

局部变量类型推断(var 关键字):可以在声明局部变量时使用var关键字来让编译器自动 推断变量的类型。

例如,var list = new ArrayList<String>();,

编译器会根据赋值的右侧自动推断list是ArrayList<String>类型。

这使得代码编写更加简洁,尤其是在处理复杂的泛型类型时。

JDK 11 特性

新的 HTTP 客户端 API:提供了一个标准的、现代化的 HTTP 客户端,

用于替代旧的HttpURLConnection。

它支持同步和异步请求,并且可以方便地处理请求和响应。

例如,HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder().uri(URI.create("http://example.com")).build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());。

字符串处理方法改进:新增了一些字符串处理方法,

如isBlank()用于判断字符串是否为空或仅包含空白字符,

lines()用于按行拆分字符串等。这些方法使得字符串的处理更加方便。

JDK 14 特性

Records(记录):Records 是一种新的类类型,用于创建不可变的数据类。

它自动生成了构造函数、访问器方法和equals()、hashCode()等方法。

例如,record Point(int x, int y) {}定义了一个记录类,它有x和y两个属性,可以通过new Point(1, 2)来创建实例,并且可以直接访问x和y属性。

Pattern Matching for instanceof(针对 instanceof 的模式匹配):这是对instanceof操作的 改进。以前在使用instanceof检查类型后还需要进行类 型转换,现在可以在instanceof表达式中直接声明变量并使 用。例如,if (obj instanceof String str)

 { System.out.println(str.length()); }。

JDK 17 特性

  1. 语言特性增强  
    1. 密封类(Sealed Classes)改进:密封类可以精确控制哪些类可以继承它。例如,定义一个密封类sealed class Shape permits Circle, Square,这就限制了只有CircleSquare类能够继承Shape类,使得类的继承层次更加可控,有助于在设计模式(如状态模式、策略模式)中限制子类的范围,增强代码的安全性和可维护性。 /siːld/
    2. 模式匹配(Pattern Matching)增强:在处理instanceof操作时有了很大的改进。以前使用instanceof需要先进行类型判断,再进行类型转换,如if (obj instanceof String) { String str = (String) obj; System.out.println(str.length()); }。在 Java GDK 17 中,可以直接写if (obj instanceof String str) { System.out.println(str.length()); },这种方式更加简洁高效,提高了代码的可读性。
  2. 性能优化
    1. JIT(即时编译)编译器优化:通过对 JIT 编译器的改进,加快了代码的执行速度。编译器能够更智能地对热点代码进行优化编译,减少了字节码解释执行的时间,提高了 Java 应用程序的整体性能。
    2. 内存管理优化:在内存布局和分配方面进行了优化。例如,对于对象的内存分配机制进行了调整,减少了内存碎片的产生,提高了内存的利用率。这对于内存密集型的应用程序(如大数据处理、内存数据库等)非常有利,可以降低内存占用,提升系统的稳定性。
  3. 新的 API 提供
    1. 日期和时间 API 增强:新增了一些用于处理日期和时间的方法,使得日期时间的计算和格式化更加精准。比如在处理跨时区的日期时间问题时,提供了更方便的函数来进行时区转换和计算,方便开发全球化应用程序。
    2. 安全相关 API 更新:在安全方面提供了新的 API,可能包括增强的加密算法相关函数。例如,在网络通信加密、数据存储加密等场景下,可以利用这些新的 API 来提高应用程序的安全性,保护用户数据。
  4. 容器化和云原生支持提升
    1. 更好地适应容器编排平台:能够更好地与 Kubernetes 等容器编排平台配合。在资源动态分配的场景下,Java 应用可以更快地响应资源的变化。例如,当容器的 CPU 或内存资源被重新分配时,Java 应用能够及时调整自身的性能和资源消耗策略,保证应用的稳定运行。
    2. 云原生服务集成增强:在云原生的分布式应用开发方面,提供了更好的接口用于与其他服务集成。比如,在微服务架构中,可以更方便地与服务发现、配置管理等服务进行交互,促进云原生应用的开发和部署。

JDK 21 特性

虚拟线程(Virtual Threads):这是一种轻量级的线程,可以有效减少编写高吞吐量并发应 用程序的难度。虚拟线程能够在不增加系统资源消耗的前提下,

大大提高应用程序的并发处理能力。

分代 ZGC(Z Garbage Collector):进一步优化了垃圾回收的性能,

特别是在处理大型堆内存场景下的性能表现更好,

能够减少垃圾回收的暂停时间,提高系统的稳定性。

记录模式(Record Patterns)和模式匹配(Pattern Matching)增强:在语言语法方面有新的 预览功能出现,让代码在处理复杂数据结构和类型判断时更加简 洁高效。

例如,在处理复杂的嵌套数据结构时,可以更方便地提取和使用其中的数据。

2023年9月19日,Oracle公司正式发布了JDK 21

数据类型

Java中的数据类型分为两大类,基本数据类型引用数据类型


基本数据类型只有8种,可按照如下分类四类
①整数类型:long、int、short、byte
②浮点类型:float、double
③字符类型:char
④布尔类型:boolean

引用类型
大致包括:接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
例如,String类型就是引用类型,

还有Double,Byte,Long,Float,Char,Boolean,Short(注意这里和基本类型相比首字母是大写)
简单来说,所有的非基本数据类型都是引用数据类型

基本数据类型和引用数据类型的区别

存储位置

方法中声明的变量:局部变量只能在方法中有效

每当程序调用方法时,系统都会为该方法建立一个方法栈,结束系统会释放方法栈。

在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量

当声明是基本类型的变量的时,其变量名及值是放在JAVA虚拟机栈中

当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的

在类中声明的变量

在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。

在类中声明的变量即可是基本类型的变量 也可是引用类型的变量

声明的是基本类型的变量其变量名及其值放在堆内存中的

引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的中。

 传递方式

基本变量类型:在方法中定义非全局基本数据类型变量,调用方法时作为参数是按数传递的

引用变量类型:引用数据类型变量,调用方法时作为参数是按引用传递的。

一切的引用数据类型都可以使用object进行接收

自动装箱自动拆箱

将基本数据类型转化为引用数据类型的过程叫做装箱

把从引用数据类型转化为基本数据类型的过程叫做拆箱

Integer类型的对象,使用intValue()可以将Integer对象拆箱为int类型变量

valueOf()--装箱


java自己的一种机制,叫做自动装箱和自动拆箱

必须看:一篇文章带你搞定 Java 基本数据类型和引用数据类型的区别_java基本数据类型和引用数据类型的区别-CSDN博客

integer和int的区别

1.数据类型和内存存储方式不同:

int是Java的基本数据类型,直接存储数值

而Integer是int的包装类,是一个对象,存储在堆内存中

2.默认值不同

int的默认值为0;而Integer的默认值为null。

变量比较方式不同。当比较两个变量是否相等时,

可以直接使用==操作符比较两个int变量;

而Integer变量则需要使用equals方法进行比较。

3.实例化需求不同

int变量不需要实例化即可使用;而Integer变量必须实例化后才能使用。

4.方法和功能不同。

Integer提供了一些额外的操作方法,例如将字符串转换成整数,

以及表示整数的最大值和最小值的常量;而int主要用作数值运算。

Integer最小值-2^31 , 最大值2^31-1

1byte = 1字节 = 8 bit(位)

String           4个字节   默认会被压缩,不压缩8个

缓存池实现

private static class IntegerCache {

        static final int low = -128;

assert IntegerCache.high >= 127;  

}

assert [boolean 表达式]  assert  断言 [əˈsɜːt]

Java 是从 JDK1.4 开始支持断言的,主要用于程序代码的调试或测试阶段,千万不能用在正式环境上。

常量池:可以看作一张表,虚拟机指令根据这张表找到要执行的类名、方法名、参数类型、字面量等信息。

运行时常量池:当类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址

  • Byte Short Integer Long 四种类型字面量在-128<= x <=127 时对象将进入常量池。
  • Character 类型 不能为负数,字面量大于等于0 且 ,小于等于127时对象将进入常量池。
  • Boolean类型 两个字面量都会进入常量池
  • Float 和Double 类型 不会进入常量池

彻底弄懂java中的常量池-腾讯云开发者社区-腾讯云

直接内存

并不属于jvm中内存结构,不由jvm进行管理。是虚拟机的系统内存

常见NIO操作时,用于数据缓冲区,分配回收成本较高,但读写性能高,不收jvm内存回收管理。

相关文章:

JDK新特性(8-21)数据类型-直接内存

目录 Jdk 新特性 JDK 8 特性 默认方法实现作用:可以使接口更加灵活&#xff0c;不破坏现有实现的情况下添加新的方法。 函数式接口 StreamAPI JDK 9 特性 JDK 10 特性 JDK 11 特性 JDK 14 特性 JDK 17 特性 JDK 21 特性 数据类型 基本数据类型和引用数据类型的区别…...

003-Kotlin界面开发之声明式编程范式

概念本源 在界面程序开发中&#xff0c;有两个非常典型的编程范式&#xff1a;命令式编程和声明式编程。命令式编程是指通过编写一系列命令来描述程序的运行逻辑&#xff0c;而声明式编程则是通过编写一系列声明来描述程序的状态。在命令式编程中&#xff0c;程序员需要关心程…...

QT pro项目工程的条件编译

QT pro项目工程的条件编译 前言 项目场景&#xff1a;项目中用到同一型号两个相机&#xff0c;同时导入两个版本有冲突&#xff0c;编译不通过&#xff0c; 故从编译就区分相机导入调用&#xff0c;使用宏区分 一、定义宏 在pro文件中定义宏&#xff1a; DEFINES USE_Cam…...

深度学习之经典网络-AlexNet详解

AlexNet 是一种经典的卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;在 2012 年的 ImageNet 大规模视觉识别挑战赛&#xff08;ILSVRC&#xff09;中表现优异&#xff0c;将 CNN 引入深度学习的新时代。AlexNet 的设计在多方面改进了卷积神经网络的架构&#xff0c;…...

部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介 Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标&#xff0c;跟踪 Istio 和网格中的应用程序的健康状况。Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源&#xff0c;并使用图形、表格、热图等将数据…...

结合 Spring Boot Native 和 Spring Boot 构建高性能服务器架构

随着云计算和微服务架构的普及&#xff0c;开发者们不断寻求提高应用性能和用户体验的解决方案。Spring Boot Native 的出现&#xff0c;利用 GraalVM 的原生映像特性&#xff0c;使得 Java 应用的启动速度和资源占用得到了显著改善。本文将深入探讨如何将前端应用使用 Spring …...

ArcGIS影像调色(三原色)三原色调整

本期主要介绍ArcGIS影像调色&#xff08;三原色&#xff09; ArcGIS影像调色&#xff08;三原色&#xff09;&#xff0c;对比度、亮度、gamma。红绿蓝三原色调整。 视频学习 ArcGIS影像调色&#xff08;三原色&#xff09;...

SQLite从入门到精通面试题及参考答案

目录 SQLite 是什么? SQLite 的优点有哪些? 轻量级与易于部署 零配置和低维护成本 良好的兼容性和跨平台性 高性能和可靠性 SQLite 的局限性有哪些? 并发处理能力有限 缺乏用户管理和权限控制功能 有限的扩展性 有限的网络支持 SQLite 和其他数据库系统(如 MyS…...

【C/C++】字符/字符串函数(0)(补充)——由ctype.h提供

零.导言 除了字符分类函数&#xff0c;字符转换函数也是一类字符/字符串函数。 C语言提供了两种字符转换函数&#xff0c;分别是 toupper &#xff0c; tolower。 一.什么是字符转换函数&#xff1f; 顾名思义&#xff0c;即转换字符的函数&#xff0c;如大写字母转小写字母&am…...

Git 的特殊配置文件

文章目录 1.前言2.Git 标准配置文件.gitignore作用格式示例 .gitattributes作用格式示例 .gitmodules作用格式示例 .gitconfig作用格式示例 3.非 Git 标准约定文件.gitkeep简介示例 .gitacls作用格式示例 参考文献 1.前言 Git 是一个强大的版本控制系统&#xff0c;它使用多个…...

数据的表现形式(1)

数据的表现形式 西文字符编码 ASCII码&#xff08;美国信息交换标准码&#xff09; 计算机内部用一个字节&#xff08;8位二进制&#xff09;&#xff0c;来存放一个7位ASCII码&#xff0c;最高位为“0”&#xff0c;共 可以表示128个不同字符 ASCII码中&#xff0c;0是48&…...

《高频电子线路》—— 调幅

文章内容来源于【中国大学MOOC 华中科技大学通信&#xff08;高频&#xff09;电子线路精品公开课】&#xff0c;此篇文章仅作为笔记分享。 调幅 普通调幅 AM 普通调幅&#xff0c;也属于线性调制&#xff0c;需要了解其时域和频域。 时域&#xff08;表达式&#xff09; vΩ…...

ubuntu22.04安装ROS2Humble

参考链接 Ubuntu22.04——ROS2安装以及小海龟画圆 Ubuntu 22.04 安装 ros noetic Slam_in_autonomous_driving(一) 环境配置...

软中端,硬中断(学习笔记)

/proc/softirqs 提供了软中断的运行情况&#xff1b; /proc/interrupts 提供了硬中断的运行情况。 以下图片展示的是软中断内容&#xff1a; 在查看 /proc/softirqs 文件内容时&#xff0c;你要特别注意以下这两点。 第一&#xff0c;要注意软中断的类型&#xff0c;也就是这…...

scIDST:弱监督学习推断单细胞转录组数据中的疾病进展阶段

背景&#xff1a;患者来源组织中的单个细胞&#xff0c;每个都处于不同的病理阶段&#xff0c;因此这种细胞变异性阻碍了随后的差异基因表达分析。 结果&#xff1a;为了克服这种异质性问题&#xff0c;作者提出了一种新的深度学习方法&#xff0c;scIDST&#xff0c;该方法可以…...

Linux 下执行定时任务之 Systemd Timers

不知道 ECS 因为什么缘故&#xff0c;上面安装的 MySQL 服务老是不定期挂掉&#xff0c;本来想通过 Linux 得 Cron 配置个半小时的定时检测任务&#xff0c;结果一直没有执行&#xff0c;因此又尝试使用了 Systemd Timers 进行了重新配置&#xff0c;简要做个记录。 Systemd Ti…...

flutter 专题二 Flutter状态管理之Riverpod 0.8.4

一 、flutter 有哪些状态管理方式 Flutter的状态管理方式有很多&#xff0c;Redux、 Bloc、 MobX、Provider等等。单单一个Provider&#xff0c;我也见到了各种组合&#xff0c;例如ChangeNotifier Provider / StateNotifier Provider&#xff08; freezed&#xff09;。各…...

【Linux】从零开始使用多路转接IO --- poll

碌碌无为&#xff0c;则余生太长&#xff1b; 欲有所为&#xff0c;则人生苦短。 --- 中岛敦 《山月记》--- 从零开始使用多路转接IO 1 前言1 poll接口介绍3 代码编写4 总结 1 前言 上一篇文章我们学习了多路转接中的Select&#xff0c;其操作很简单&#xff0c;但有一些缺…...

Docker配置宿主机目录和网络映射

容器挂载宿主机目录 在Docker中&#xff0c;你可以通过-v或--volume选项将宿主机的目录挂载到容器中。这可以让你在容器和宿主机之间共享文件。 例如&#xff0c;如果你想将宿主机的/home/user/data目录挂载到容器的/data目录&#xff0c;你可以使用以下命令&#xff1a; do…...

第十七课 component组件解析

component组件解析 component组件的写法在众多组件写法中算是比较简单的&#xff0c;component组件结构组成如下&#xff1a; 1&#xff09;组件名 2&#xff09;组件模板 3&#xff09;利用Vue对象进行生成 基础示例&#xff1a; <div id"app"><test>…...

求余和求模是不是一样的,就要看看计算机中的 fix 和 floor 区别

在计算机中&#xff0c;fix和floor是两个不同的取整函数&#xff0c;它们各自有不同的取整规则。以下是fix和floor的详细区别&#xff1a; 一、定义与功能 fix函数 定义&#xff1a;fix函数是朝零方向取整的函数&#xff0c;即它会返回小于或等于&#xff08;对于正数&#xf…...

00 递推和递归的核心讲解

递归的步骤 说 f(n)含义返回/xx f(n)等价式子在第二步中观察趋势&#xff0c;发现边界值&#xff08;分类递归&#xff09;和终止值&#xff08;return&#xff09; 递归优化思路 记忆化 递推/动态规划的步骤 说f(n)含义循环 关系式列 初值 综上&#xff0c;题目分为两类&a…...

深度学习常用开源数据集介绍【持续更新】

DIV2K 介绍&#xff1a;DIV2K是一个专为 图像超分辨率&#xff08;SR&#xff09; 任务设计的高质量数据集&#xff0c;广泛应用于计算机视觉领域的研究和开发。它包含800张高分辨率&#xff08;HR&#xff09;训练图像和100张高分辨率验证图像&#xff0c;每张图像都具有极高…...

rust编写的系统监测器

系统监测器 技术栈 rusttaurivue3vue-echartsrsbuild 软件介绍 用于查看电脑的硬件信息&#xff0c;实时监测cpu&#xff0c;内存&#xff0c;硬盘&#xff0c;网络&#xff0c;进程等系统资源 图形化&#xff0c;动态化展示&#xff0c;美观实用 软件截图 下载 https:/…...

【MyBatis源码】CacheKey缓存键的原理分析

文章目录 Mybatis缓存设计缓存KEY的设计CacheKey类主体CacheKey组成CacheKey如何保证缓存key的唯一性 Mybatis缓存设计 MyBatis 每秒过滤众多数据库查询操作&#xff0c;这对 MyBatis 缓存键的设计提出了很高的要求。MyBatis缓存键要满足以下几点。 无碰撞&#xff1a;必须保证…...

034_Structural_Transient_In_Matlab结构动力学问题求解

结构动态问题 问题描述 我们试着给前面已经做过的问题上加一点有趣的东西。 结构静力学求解 当时求解这个问题&#xff0c;在最外面的竖直切面加载了一个静态的固定的力。下面我们试试看在上方的表面增加一个脉冲压力载荷。 采用统一的有限元框架&#xff0c;定义问题&…...

项目模块十五:HttpResponse模块

一、模块设计思路 存储HTTP应答要素&#xff0c;提供简单接口 二、成员变量 int _status; // 应答状态码 unordered_map<string, string> _headers; // 报头字段 string _body; // 应答正文 bool _redirect_flag; // 是否重定向信息 stri…...

推荐一款优秀的pdf编辑器:Ashampoo PDF Pro

Ashampoo PDF Pro是管理和编辑 PDF 文档的完整解决方案。程序拥有您创建、转换、编辑和保护文档所需的一切功能。根据需要可以创建特定大小的文档&#xff0c;跨设备可读&#xff0c;还可以保护文件。现在您还能像编辑Word文档一样编辑PDF! 软件特点 轻松处理文字 如 Microso…...

【系统架构设计师】2024年上半年真题论文: 论模型驱动架构设计方法及其应用(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年上半年 试题3)解题思路1、模型驱动架构能够为软件开发带来的好处2、模型驱动架构的开发过程论文素材参考真题题目(2024年上半年 试题3) 模型驱动架构设计是一种用于应用系统开发的软件设计方法…...

国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台

​在当今的互联网时代&#xff0c;短剧作为一种新兴的娱乐形式&#xff0c;受到了越来越多用户的喜爱。为了提供更好的用户体验和满足用户需求&#xff0c;一个好的短剧系统需要具备多元化的功能和优质的界面设计。 本文将介绍国内短剧源码短剧系统搭建小程序部署H5、APP所需的…...