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

JavaSE:初识Java(学习笔记)

java是高级语言的面向对象语言      .[最贴近生活.最快速分析和设计程序]

一,计算机语言发展历史

 二,Java体系结构

1,JavaSE(Java  Standard  Edition)

标准版,定位在个人计算机上的应用

这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。

2,JavaEE(Java  Enterprise Edition):企业版,定位在服务器端的应用

JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。如:JDBC是让程序员能直接在Java内使用的SQL的语法来访问数据库内的数据

3,JavaME(Java  Micro  Edition):微型版,定位在消费性电子产品的应用上

JavaME是JavaSE的内伸,包含J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库:javax.microedition.io.*等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。

三,Java的特性和优势

1,跨平台/可移植性

这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

1.Java跨平台原理(字节码文件、虚拟机) 

  1. C/C++语言都直接编译成针对特定平台机器码。如果要跨平台,需要使用相应的编译器重新编译。
  2. Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。
  3. 字节码文件不面向任何具体平台,只面向虚拟机。
  4. Java虚拟机是可运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的,但它们都提供了相同的接口。
  5. Java语言具有一次编译,到处运行的特点。就是说编译后的.class可以跨平台运行,前提是该平台具有相应的Java虚拟机。但是性能比C/C++要低。
  6. Java的跨平台原理决定了其性能没有C/C++高

2,安全性

Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。

2.Java的安全性

  • 语言层次的安全性主要体现在:
  1. Java取消了强大但又危险的指针,而代之以引用。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并且使用指针也容易数组越界。
  2. 垃圾回收机制:不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。避免程序忘记及时回收,导致内存泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
  3. 异常处理机制:Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。
  4. 强制类型转换:只有在满足强制转换规则的情况下才能强转成功。
  • 底层的安全性可以从以下方面来说明

Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。

在运行环境提供了四级安全性保障机制

       字节码校验器 -类装载器 -运行时内存布局 -文件访问限制

3,面向对象

面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。

4,简单性

Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。

5,高性能

Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接待C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

6,分布式

Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。

7,多线程

多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

8,健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

总结:一句话:java很好!
但是,并不是说学习了java,以后所有的东西都要用java开发了:某些领域其他语言有更出色的表现,比如,Objective C和后来的Swift在iOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由JavaScript掌控。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用领域则很有优势。
只能说,不同的语言之间,平分秋色!

四,核心机制

1,跨平台原理

(1)C跨平台和JAVA跨平台区别:

      (a)Java的字节码文件是跟平台无关的,拿着这个字节码文件到不同的平台上去运行

      (b)c语言不同的平台有不同的编译器,编译器与平台相关的,编译后的可执行文件也是跟平台相关

(2)C语言到底是不是跨平台的?

        实际上我们所说跨平台指的是:编译后的文件是否跨平台 --- 》从这个角度来看,C语言不是跨平台的,而网上很多人说C语言是跨平台,因为不同平台有不同的解释器,它指的是源文件跨平台

(3)C语言的效率高还是Java语言的效率高?

           C语言的效率高,因为它产生的可执行文件可以直接在平台上去运行

2,垃圾回收机制

(1)垃圾收集的目的:

                 去除不再使用的对象,当对象建立的时候,垃圾收集器就开始监控对象的动态情况,垃圾收集主要是对内存的释放。创建对象的时候申请一个空间

    1.不再使用的内存空间应回收---》垃圾收集;
    2.Java消除了程序员回收无用内存空间的职责;提供一种系统级线程跟踪存储空间的分配情况。在JVM的空闲时,检查并释放可被释放的存储器空间;相比c++,开发人员负责要自己收回无用内存。
    3.垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预;
    4.GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄露。

  • 简述Java的垃圾回收机制

传统的C/C++语言,需要程序员负责回收已经分配内存。显式回收垃圾回收的缺点:

  1. 程序忘记及时回收,从而导致内存泄露,降低系统性能。
  2. 程序错误回收程序核心类库的内存,导致系统崩溃。

Java语言不需要程序员直接控制内存回收是由JRE在后台自动回收不再使用的内存称为垃圾回收机制。

  1. 可以提高编程效率。
  2. 保护程序的完整性。
  3. 其开销影响性能。Java虚拟机必须跟踪程序中有用的对象,确定哪些是无用的。
  • 垃圾回收机制的特点
  1. 垃圾回收机制回收JVM堆内存里的对象空间,不负责回收栈内存数据。
  2. 对其他物理连接,比如数据库连接、输入流输出流、Socket连接无能为力。
  3. 垃圾回收发生具有不可预知性,程序无法精确控制垃圾回收机制执行。
  4. 可以将对象的引用变量设置为null,暗示垃圾回收机制可以回收该对象。
  5. 现在的JVM有多种垃圾回收实现算法,表现各异。
  6. 垃圾回收机制回收任何对象之前,总会先调用它的finalize方法(如果覆盖该方法,让一个新的引用变量重新引用该对象,则会重新激活对象)。
  7. 程序员可以通过System.gc()或者Runtime.getRuntime().gc()来通知系统进行垃圾回收,会有一些效果,但是系统是否进行垃圾回收依然不确定。
  8. 永远不要主动调用某个对象的finalize方法,应该交给垃圾回收机制调用。

五, JVM  ,JDK  , JRE  

1,JVM

一个虚拟的用于执行bytecode字节码的”虚拟计算机”

定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。
不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

JVM是Java Virtual Machine(Java虚拟机)的缩写,

它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。

JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域。

 JVM通过抽象操作系统和CPU结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方法、主机硬件、主机操作系统无关。

JVM的主要工作是解释自己的指令集(即字节码)到CPU的指令集或对应的系统调用,保护用户免被恶意程序骚扰。 JVM对上层的Java源文件是不关心的,它关注的只是由源文件生成的类文件(.class文件)。

语言跨平台是编译后的文件跨平台,而不是源程序跨平台。

两种方式的差异

  1. C语言是编译执行的,编译器与平台相关,编译生成的可执行文件与平台相关
  2. Java是解释执行的,编译为中间码的编译器与平台无关,编译生成的中间码也与平台无关(一次编译,到处运行),中间码再由解释器解释执行,解释器是与平台相关的,也就是不同的平台需要不同的解释器.

2,JRE

JRE是java runtime environment(java运行环境)的缩写

运行Java程序的用户使用的软件

光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。

所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了(jre里有运行.class的java.exe)。

JRE是Sun公司发布的一个更大的系统,它里面就有一个JVM。JRE就与具体的CPU结构和操作系统有关,是运行Java程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

3,JDK

JDK是java development kit(java开发工具包)的缩写。

编写Java程序的程序员使用的软件

每个学java的人都会先在机器上装一个JDK,那 让我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。

其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。

bin:最主要的是编译器(javac.exe)

include:java和JVM交互用的头文件

lib:类库      

jre:java运行环境 

(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。eclipse、idea等其他IDE有自己的编译器而不是用JDK bin目录中自带的,所以在安装时你会发现他们只要求你选jre路径就ok了。

 jdK 5、7、8.11 新增核心的技术.

5版本(Java 5,也称为J2SE 5.0):w

泛型(Generics):这是Java 5的重大革新之一,允许开发者编写类型安全的集合类,避免了类型转换带来的安全隐患。
枚举类型(Enum Types):引入了内置的数据类型枚举,用于替代一些冗长的switch-case结构,提高了代码组织性和安全性。
自动装箱/拆箱(Automatic Boxing and Unboxing):简化了基本类型和对应的包装类之间的转换。


7版本(Java 7,也称为JDK 7):

Lambda表达式(Lambda Expressions):允许在函数式编程风格下更简洁地表示函数,极大地增强了Java的并发能力。
并行流(Parallel Streams):引入了Stream API的并行版本,使得处理大量数据时可以更好地利用多核处理器。
改进的垃圾回收机制(Garbage Collection Enhancements):如CMS收集器(Concurrent Mark Sweep)的优化,提升了内存管理效率。


8.11版本(实际不存在这样的版本,因为Java 8.11应该是混淆的说法,可能是指Java SE 8 Update 111,但这里还是按照您的描述继续):

Java 8(确切地说,Java SE 8) 已经包含了上述Java 7的所有特性,所以在这个版本中并没有显著的新特性。然而,它延续了Java 8的重要特点,如方法引用(Method References)、接口的默认方法(Default Methods in Interfaces)以及模块化系统(Modular System,即Java Platform Module System,JPMS)等。
如果是指接近Java 9或后续版本,那么在Java 9开始,有Optional类的进一步完善、Stream API的增强、Pattern Matching with Labeled Bindings(条件匹配)等特性。

六,环境变量

1,安装 idk时.配置哪些环境变量

           [ java_home]      [ path]        [ classpath]

2,path环境变量作用:

将命令所在的路径配置到path中去,就相当于在计算机中“注册”了一样,以后找这个命令,会直接去你配置的路径下寻找。

3,classpath作用:

针对java执行字节码文件而产生的环境变量,只要配置了字节码文件所在的路径以后,那么以后你在任意位置都可以执行对应的字节码文件

3.Java开发环境配置

 具体配置步骤如下:

    0)找到自己的jdk安装路径,如:C:\Java\jdk1.7.0_60\bin

    1)右击桌面“我的电脑”,选择“属性”

    2)选中“高级系统设置”-->高级-->环境变量设置

    3)在系统变量中找到“path”并选中,点击“编辑”,

    4)变量值栏按键盘“home”键,输入英文的“;”

    5)将第0)步准备的路径复制过来就行。点一些列“确定”完成配置

4.Java开发运行过程    编写,编译,运行.

在安装好JDK并配置好path、classpath后开发运行步骤如下:

1、可以用任何文本编辑器创建并编辑Java源程序,Java源程序用“.java”作为文件扩展名

2、编译Java源程序编译器,使用命令“javac”编译“java源程序文件名.java”。最后编译成Java虚拟机能够明白的指令集合,且以字节码的形式保存在文件中。通常,字节码文件以“.class”作为扩展名。

3、执行java程序,使用“java”命令运行class(字节码)文件“java文件名”,Java解释器会读取字节码,取出指令并且翻译成计算机能执行的机器码,完成运行过程。

七,注释

1,单行注释

 采用“//”方式.只能注释一行代码

2,多行注释

 采用“/*...*/”方式,可注释多行代码,其中不允许出现嵌套

3,文档注释

   采用“/**...*/”方式

【1】注释的作用:

                 (1)注释就起到了标注解释的作用,提高代码的可读性,方便自己,方便他人--》是一个非常良好,非常专业的习惯!!!
                  (2)方便代码的调试:

【2】注释不会参与编译,编译后产生的字节码文件中不会有注释的内容

【3】一般文档注释可以配合:jdk提供的工具javadoc.exe来一起使用,通过javadoc.exe可以对文档注释进行解析,生成一套以网页文件形式体现的该程序的说明文档。(自定义类对应的API)

相关文章:

JavaSE:初识Java(学习笔记)

java是高级语言的面向对象语言 .[最贴近生活.最快速分析和设计程序] 一,计算机语言发展历史 二,Java体系结构 1,JavaSE(Java Standard Edition) 标准版,定位在个人计算机上的应用 这个版本是Jav…...

ClickHouse创建分布式表

ClickHouse创建分布式表 当数据量剧增的时候,clickhouse是采用分片的方式进行数据的存储的,类似于redis集群的实现方式。然后想进行统一的查询的时候,因为涉及到多个本地表,可以通过分布式表的方式来提供统一的入口。由于是涉及到…...

Flink转换算子

Apache Flink 是一个用于处理无界和有界数据的开源流处理框架。在 Flink 中,转换(Transformation)是数据流处理的核心组件之一,它们定义了如何从输入数据集生成输出数据集。以下是 Flink 中一些常见的转换算子: Map: 将…...

ThinkBook 14+ 2024 Ubuntu 触控板失效 驱动缺失问题解决

首先我的电脑是thinkbook14 2024,从ubuntu18到ubuntu24,笔者整个都试了一遍,触摸板都没反应,确认不是linux系统内核问题,原因为驱动缺失。 解决步骤: (1)下载驱动,网址如…...

【青牛科技】应用方案 | D75xx-150mA三端稳压器

概 述 D75XX系列是一套三端高电流低压稳压器。它们可以提供 150mA 的输出电流和允许输入电压高达30V。它们有几个固定的输出电压范围为3.0 V至5.0 V。CMOS 技术确保低电压降和低静态电流。 虽然这些设备主要设计为固定电压调节器,但它们可以与外部元件一起使用&…...

WPF之iconfont(字体图标)使用

1,前文: WPF的Xaml是与前端的Html有着高度相似性的标记语言,所以Xaml也可同Html一般轻松使用阿里提供的海量字体图标,从而有效的减少开发工作度。 2,下载字体图标: 登录阿里图标库网iconfont-阿里巴巴矢量…...

08、Java学习-面向对象中级:

Java学习第十二天——面向对象中级: IDEA: 创建完新项目后,再src里面创建.java文件进行编写。 src——存放源码文件(.java文件);out——存放编译后的字节码文件(.class文件) 在I…...

springboot集成onlyoffice(部署+开发)

前言 最近有个项目需求是实现前端页面可以对word文档进行编辑,并且可以进行保存,于是一顿搜索,找到开源第三方onlyoffice,实际上onlyOffice有很多功能,例如文档转化、多人协同编辑文档、文档打印等,我们只用…...

LabVIEW编程基础教学(二)--数据类型

在LabVIEW中,数据类型是非常重要的基本概念,因为它们决定了如何存储和操作数据。掌握这些基础数据类型对于编写有效的程序非常关键。以下是LabVIEW中的基础数据类型介绍: 1. 数值类型(Numeric) 整型(Inte…...

「Mac畅玩鸿蒙与硬件29」UI互动应用篇6 - 多选问卷小应用

本篇将带你实现一个多选问卷小应用,用户可以勾选选项并点击提交按钮查看选择的结果。通过本教程,你将学习如何使用 Checkbox 组件、动态渲染列表、状态管理及用户交互,构建完整的应用程序。 关键词 UI互动应用Checkbox 组件状态管理动态列表…...

Flutter中文字体设置指南:打造个性化的应用体验

在使用Flutter进行开发时,可能会遇到中文字体显示不正常或者字体不符合设计需求的情况。Flutter默认的中文字体往往无法满足某些用户对个性化和美观的需求。今天,我们就来详细探讨如何在Flutter应用中设置中文字体,并结合不同场景提供相应的解…...

git下载慢下载不了?Git国内国外下载地址镜像,git安装视频教程

git安装下载的视频教程在这 3分钟完成git下载和安装,git国内外下载地址镜像,Windows为例_哔哩哔哩_bilibili 一、Git安装包国内和国外下载地址镜像 1.1国外官方下载地址 打开Git的官方网站:Git官网下载页面。在页面上选择对应的系统&…...

安卓属性动画插值器(Interpolator)详解

属性动画(Property Animation)是 Android 中一个强大的动画框架,允许开发者对视图的任意属性(如位置、透明度、尺寸、颜色等)进行平滑的动态变化。插值器(Interpolator)作为属性动画的一部分&am…...

OSPF总结

1.定义及相关信息 (1)全称:Open ShortestPath First,开放式最短路径优先 (2)是一种基于链路状态算法的路由协议 (3)目前针对IPv4协议使用的是OSPF Version2(RFC2328) 目前针对IPv6 协议使用的是 OSPF Version3 ( RFC2740 ) (4)运行 OSPF 路由器之间…...

Spring Boot驱动的多维分类知识管理系统

1 绪论 1.1 研究背景 在这个推荐个性化的时代,采用新技术开发一个多维分类的知识管理系统来分享和展示内容是一个永恒不变的需求。本次设计的多维分类的知识管理系统有管理员和用户两个角色。 管理员可以管理用户信息,知识分类,知识信息等&am…...

CSS教程(七)- 背景

介绍 背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。 1 背景颜色 属性名:background-color 作用:指定HTML元素的背景色。 取值:英文颜色、16进制、rgb、rgba、transparent(一般为透明&#…...

PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸

小编最近有一篇png图片要批量压缩,大小都在5MB之上,在网上找了半天要么就是有广告,要么就是有毒,要么就是功能复杂,整的我心烦意乱。 于是我自己用python写了一个纯净工具,只能压缩png图片,没任…...

【双十一特惠】腾讯云省钱攻略:如何智取云计算资源

前言 双十一不仅是购物的狂欢节,对于云计算用户来说,更是一个节省成本的绝佳时机。腾讯云,作为国内领先的云计算服务商,每年双十一都会推出一系列优惠活动。本文将为您揭开如何在这个购物节中,最大化利用腾讯云的优惠…...

爬虫学习8

Frida是一个动态代码插桩工具,允许开发者在运行时修改和调试应用程序 import ...:这行代码表示导入所需的模块或库,但具体的导入内容在图片中被省略了。 rdev frida.get_remote_device():这行代码获取一个远程设备实例&#xff…...

双指针算法的妙用:提高代码效率的秘密(2)

双指针算法的妙用:提高代码效率的秘密(2) 前言: 小编在前几日讲述了有关双指针算法两道题目的讲解,今天小编继续进行有关双指针算法习题的讲解,老规矩,今天还是两道题目的讲解,希望…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...