01- Java概述

news2025/1/16 17:44:32

第1章 Java概述

1.1 Java语言发展历史(记关键点)

Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。

Java之父是詹姆斯.高斯林(James Gosling)。

1996年发布JDK1.0版。大约26年。

目前最新的版本是Java21。

1.2 Java语言特点(后面需要关注和体会)

(1)优点

  • 面向对象:Java语言支持封装、继承、多态,面向对象编程,让程序更好达到高内聚低耦合的标准。

  • 支持分布式:Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

  • 健壮型:Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。

  • 安全性高:Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。

  • 跨平台性:Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。

(2)缺点

  • 语法过于复杂,严谨,对程序员的约束比较多,与python和php等相比入门相对较难。但是一旦学会了,就业岗位需求量大,而且薪资待遇节节攀升。

  • 一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高(即薪资高),选择用Java语言开发网站或应用系统的需要一定的经济实力。

1.3 Java语言跨平台原理

1、Java语言跨平台原理

很多时候,我们写的程序可能要在**多个**操作系统运行,这个时候就要求我们的程序需要在尽可能**不改动**的情况下完实现这个目标。不同的语言实现**跨平台**的方式不同。Java语言实现跨平台是建立在“**虚拟机**”基础之上的。
​
Java设计了一套简洁的虚拟指令集,也就是**字节码**。如果我们想要在一台机器上运行Java程序,只需要将Java程序**编译**成字节码就可以了。**编写**一个将Java程序翻译成Java字节码的**编译器**,比起编写一个将Java程序翻译成x86_64指令集的编译器来说,要简单得多。可是这里产生了一个问题,难道我们的机器可以直接执行字节码这样的虚拟指令集吗?当然是不能的。我们需要针对不同的指令集,开发对应的字节码解释器。这个工作同样比较简单。

Java虚拟机(JVM,Java Virtual Machine)是由软件技术**模拟**出计算机运行的一个**虚拟**的计算机,它负责解释执行字节码指令集。也就是说,只要一台机器可以运行Java的虚拟机,那么就能运行Java语言编写的程序。而不同的平台,需要安装不同的**Java虚拟机程序**。那么我们**编写**完Java程序之后,需要先将.java的源文件**编译**为.class的字节码文件,然后在Java虚拟机中来**执行**这些字节码文件。

Java虚拟机的设计不仅仅解决了Java程序跨平台的问题,同时解决了很多语言的跨平台问题。

  • .NET(C#,VB等语言)也有虚拟机,也能实现跨平台,但是只能在Windows操作系统下安装.NET环境。

  • C++不受虚拟机的限制,但是需要用不同平台的编译器重新编译一次。需要编写n个版本的编译器。

  • Java虚拟机可以配置在MacOS,Windows(PC操作系统),Linux等上,但是不能配置在WP(Windows Phone),IOS(移动操作系统)上,只能配置在android(移动操作系统)。Java程序可以实现一次编译处处运行。

2、JVM、JRE、JDK的关系

  • JVM(Java Virtual Machine ):Java虚拟机,是运行所有Java程序的假想计算机,是Java程序的运行环境之一,也是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在JVM 之上。

  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库

  • JDK (Java Development's Kit):是Java程序开发工具包,包含JRE 和开发人员使用的工具。

我们想要运行一个已有的Java程序,那么只需安装JRE 即可。

我们想要开发一个全新的Java程序,那么必须安装JDK ,其内部包含JRE

1.4 Java语言开发环境

1、JDK的下载

  • 下载网址:www.oracle.com

2、JDK的安装

  • 安装步骤:

    • 双击jdk-8u202-windows-x64.exe文件,并单击下一步,如图所示:

    • 取消独立JRE的安装,单击公共JRE前的下拉列表,选择此功能将不可用如图所示:

    • 修改安装路径,单击更改,如图所示:

    • 将安装路径修改为D:\develop\Java\jdk1.8.0_202\,并单击确定,如图所示:

    • 单击下一步,如图所示:

    • 稍后几秒,安装完成,如图所示:

    • 目录结构,如图所示:

3、配置环境变量

为什么配置path?

希望在命令行使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。

例如:我们在C:\Users\Irene目录下使用java命令,结果如下:

我们不可能每次使用java.exe,javac.exe等工具的时候都进入到JDK的安装目录下,太麻烦了。我们希望在任意目录下都可以使用JDK的bin目录的开发工具,因此我们需要告诉操作系统去哪里找这些开发工具,这就需要配置path环境变量。

配置 JAVA_HOME+Path
  • 步骤:

    • 打开桌面上的计算机,进入后在左侧找到计算机,单击鼠标右键,选择属性,如图所示:

    • 选择高级系统设置,如图所示:

    • 高级选项卡,单击环境变量,如图所示:

    • 系统变量中,单击新建 ,创建新的环境变量,如图所示:

    • 变量名输入JAVA_HOME,变量值输入安装路径 D:\develop\Java\jdk1.8.0_202 ,并单击确定,如图所示:

    • 选中Path 环境变量,双击或者点击编辑 ,如图所示:

    • 点击新建,键入%JAVA_HOME%\bin,最后点击确定 。如图所示:

    • 环境变量配置完成,重新开启DOS命令行,在任意目录下输入javac 命令,运行成功。

1.5 HelloWorld

1.5.1 开发说明

1、程序开发步骤说明

JDK安装完毕,可以开发我们第一个Java程序了。

Java程序开发三步骤:编写编译运行

2、编写Java源程序保存.java源文件
  1. 在电脑中目录新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为HelloWorld,后缀名必须为.java

  2. 用vscode文本编辑器打开(虽然是记事本也可以,但是不够没有关键字颜色标识,不利于初学者学习)

  3. 在文件中输入如下代码,并且保存:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

友情提示:

每个字母和符号必须与示例代码一模一样。

第一个HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的Java源文件 编译成JVM可以看懂的字节码文件 ,也就是.class文件。

3、编译Java源文件生成.class字节码文件

在DOS命令行中,进入 目录,使用javac 命令进行编译。

方式一:使用文件资源管理器打开目录,然后在地址栏输入cmd。

方式二:在vscode软件的文件菜单-->在集中终端中打开-->命令行

命令:

javac Java源文件名.后缀名

举例:

javac HelloWorld.java

编译成功后,命令行没有任何提示。打开D:\atguigu\javaee\JavaSE20190624\code\day01_code目录,发现产生了一个新的文件 HelloWorld.class,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。

Java源文件的编译工具javac.exe

4、运行Java程序

在DOS命令行中,在字节码文件目录下,使用java 命令进行运行。

命令:

java 主类名

主类是指包含main方法的类,main方法是Java程序的入口:

public static void main(String[] args){
    
}

举例:

java HelloWorld

友情提示:

java HelloWord 不要写 不要写 不要写 .class

Java字节码文件的运行工具:java.exe

1.5.2 常见错误

1、书写错误
  • 单词拼写问题

    • 正确:class 错误:Class

    • 正确:String 错误:string

    • 正确:System 错误:system

    • 正确:main 错误:mian Java语言是一门严格区分大小写的语言 标点符号使用问题

    • 不能用中文符号,英文半角的标点符号(正确)

    • 括号问题,成对出现

2、Java程序的结构与格式

结构:

类{
    方法{
        语句;
    }
}

格式:

(1)每一级缩进一个Tab键

(2){}的左半部分在行尾,右半部分单独一行,与和它成对的"{"的行首对齐

3、字符编码问题

当cmd命令行窗口的字符编码与.java源文件的字符编码不一致,如何解决?

解决方案一:

在vscode编辑器中,修改源文件的字符编码

解决方案二:

在使用javac命令式,可以指定源文件的字符编码
javac -encoding utf-8 HelloWorld.java
4、大小写问题

(1)源文件名:

在Windows操作系统中.java的源文件名不区分大小写,我们建议大家养成区分大小写的习惯。

(2)字节码文件名与类名

严格区分大小写

(3)代码中

严格区分大小写
5、源文件名与类名一致问题?

(1)源文件名是否必须与类名一致?public呢?

如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。

如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。

我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。

(2)一个源文件中是否可以有多个类?public呢?

一个源文件中可以有多个类,编译后会生成多个.class字节码文件。

但是一个源文件只能有一个public的类。

(3)main方法必须在public的类中吗?

不是。

但是后面写代码时,基本上main方法(主方法)习惯上都在public类中。

第2章 Java基础语法

2.1 注释

  • 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。

  • Java中有单行注释多行注释文档注释

    • 单行注释以 //开头,以换行结束,格式如下:

      // 注释内容
    • 多行注释以 /*开头,以*/结束,格式如下:

      /*
          注释内容
       */
    • 文档注释以/**开头,以*/结束,Java特有的注释,结合

      /**
          注释内容
       */
//单行注释
/*
多行注释
*/
/**
文档注释演示
@author Lee
*/
public class Comments{
    
    /**
    Java程序的入口
    @param String[] args main方法的命令参数
    */
    public static void main(String[] args){
        System.out.println("hello");
    }
}

常见的几个注释:

  • @author 标明开发该类模块的作者,多个作者之间使用,分割

  • @version 标明该类模块的版本

  • @see 参考转向,也就是相关主题

  • @since 从哪个版本开始增加的

  • @param 对方法中某参数的说明,如果没有参数就不能写(后面再学)

  • @return 对方法返回值的说明,如果方法的返回值类型是void就不能写(后面再学)

  • @throws/@exception 对方法可能抛出的异常进行说明 ,如果方法没有用throws显式抛出的异常就不能写(后面再学)

使用javadoc工具可以基于文档注释生成API文档。

用法: javadoc [options] [packagenames] [sourcefiles] [@files]

例如:

javadoc -author -d doc HelloWorld.java

2.2 关键字

关键字:是指在程序中,Java已经定义好的单词,具有特殊含义。

  • HelloWorld案例中,出现的关键字有 publicclassstaticvoid 等,这些单词已经被Java定义好

  • 关键字的特点:全部都是小写字母

  • 关键字比较多,不需要死记硬背,学到哪里记到哪里即可。

关键字一共50个,其中const和goto是保留字。

true,false,null看起来像关键字,但从技术角度,它们是特殊的布尔值和空值。

2.3 标识符

简单的说,凡是程序员自己命名的部分都可以称为标识符。

即给类、变量、方法、包等命名的字符序列,称为标识符。

1、标识符的命名规则(必须遵守的硬性规则)

(1)Java的标识符只能使用26个英文字母大小写,0-9的数字,下划线_,美元符号$

(2)不能使用Java的关键字(包含保留字)和特殊值

(3)数字不能开头

(4)不能包含空格

(5)严格区分大小写

2、标识符的命名规范(建议遵守的软性规则,否则容易被鄙视和淘汰)

(1)见名知意

(2)类名、接口名等:每个单词的首字母都大写,形式:XxxYyyZzz,

例如:HelloWorld,String,System等

(3)变量、方法名等:从第二个单词开始首字母大写,其余字母小写,形式:xxxYyyZzz,

例如:age,name,bookName,main

(4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,

例如:java.lang

(5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,

例如:MAX_VALUE,PI

更多细节详见《Java开发手册(泰山版)》

2.4 初识数据类型

Java的数据类型分为两大类:

  • 基本数据类型:包括 整数浮点数字符布尔

  • 引用数据类型:包括数组接口枚举注解

2.5 常量值

  • 常量值:在程序执行的过程中,其值不可以发生改变

  • 常量值的分类:

    类型举例
    整数常量值12,-23, 1567844444557L
    浮点常量值12.34F,12.34
    字符常量值‘a’,'0',‘尚’
    布尔常量值true,false
    字符串常量值”HelloWorld“
  • 整数常量值,超过int范围的必须加L或l(小写L)

  • 小数常量值,无论多少,不加F,就是double类型。要表示float类型,必须加F或f

  • char常量值,必须使用单引号

  • String字符串常量值,必须使用双引号

/*
常量值:
	代码里面写死的,固定不变的。
	一目了然的值。
整数常量值:1	 或 1L
小数常量值:1.5	或 1.5F
单字符常量值:'a'
布尔型常量值:true,false
字符串常量值:"hello"
*/
public class ConstantValue{
	public static void main(String[] args){
		System.out.println(1);//识别为int
		System.out.println(1L);//识别为long,数字后面加L或l
		System.out.println(1.5);//识别为double
		System.out.println(1.5F);//识别为float类型,数字后面加F或f
		System.out.println('a');//识别为char类型,单引号
		System.out.println(true);//识别为boolean类型
		System.out.println(false);//识别为boolean类型
		System.out.println("helloworld");//识别为String类型,双引号
		System.out.println("1");//识别为String类型,双引号
		
	}
}

2.6 变量

2.6.1 变量的概念

变量:在程序执行的过程中,其值可以发生改变的量

变量的作用:用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。

2.6.2 变量的声明

数据类型  变量名;
例如:
//存储一个整数类型的年龄
int age; 

//存储一个小数类型的体重
double weight;

//存储一个单字符类型的性别 
char gender;

//存储一个布尔类型的婚姻状态
boolean marry;

//存储一个字符串类型的姓名
String name;

//声明多个同类型的变量
int a,b,c; //表示a,b,c三个变量都是int类型。

注意:变量的数据类型可以是基本数据类型,也可以是引用数据类型。

2.6.3 变量的赋值

给变量赋值,就是把“值”存到该变量代表的内存空间中。

1、变量赋值的语法格式

变量名 = 值;
  • 给变量赋值,变量名必须在=左边,值必须在=右边

  • 给变量赋的值类型必须与变量声明的类型一致或兼容(<=)

2、可以使用合适类型的常量值给变量赋值

int age = 40;
double weight = 126.4;
char gender = '女';
boolean marry = true;
String name = "小明";

long类型:如果赋值的常量整数超过int范围,那么需要在数字后面加L。

float类型:如果赋值为常量小数,那么需要在小数后面加F。

char类型:使用单引号''

String类型:使用双引号""

3、可以使用其他变量或者表达式给变量赋值

int m = 1;
int n = m;
        
int x = 1;
int y = 2;
int z = 2 * x + y;

2.6.4 变量值的输出

//输出变量的值
System.out.println(age);
​
//输出变量的值
System.out.println("年龄:" + age);
System.out.println("age:" + age);
System.out.println("name" + name + ",age = " + age + ",gender = " + gender + ",weight = " + weight + ",marry = " + marry);

如果()中有多项内容,那么必须使用 + 连接起来

如果某些内容想要原样输出,就用""引起来,而要输出变量中的内容,则不要把变量名用""引起来

2.6.5 变量可以反复赋值

  • 变量的第一次赋值称为初始化;

  • 变量的再赋值称为修改变量的值;

//先声明,后初始化
char gender;
gender = '女';
​
//声明的同时初始化
int age = 18;
System.out.println("age = " + age);///age = 18
​
//给变量重新赋值,修改age变量的值
age = 19;
System.out.println("age = " + age);//age = 19

2.6.6 变量的三要素

1、数据类型

  • 变量的数据类型决定了在内存中开辟多大空间

  • 变量的数据类型也决定了该变量可以存什么值

2、变量名

  • 见名知意非常重要

  • 给这块内存区域赋值,例如:我们现在在”XX科技园“,我们住的校区叫做”新芒果春天“

3、值

  • 基本数据类型的变量:存储数据值

  • 引用数据类型的变量:存储地址值,即对象的首地址。例如:String类型的变量存储的是字符串对象的首地址(关于对象后面章节再详细讲解)

2.6.7 变量的使用应该注意什么?

1、先声明后使用

如果没有声明,会报“找不到符号”错误

2、在使用之前必须初始化

如果没有初始化,会报“未初始化”错误

3、变量有作用域

如果超过作用域,也会报“找不到符号”错误

4、在同一个作用域中不能重名

5、变量值的类型必须与变量声明的类型一致或兼容(<=)

一致:一样
int age = 18;  18是int类型的常量值,age也是int类型
int = int
    
兼容:可以装的下,=右边的值要 小于等于 =左边的变量类型
long bigNum =18; 18是int类型的常量值,bigNum是long类型
int < long
​
int age = 18L; 错误  18L是long类型的常量值,age是int类型
long > int

2.6.8 练习

public class MyInfo{
    public static void main(String[] args){
        //存储姓名用String类型
        //=左边是变量名,右边是常量值,给变量赋值
        String name = "好谷";
    
        System.out.println("name");//原样显示字符串常量值"name"
        System.out.println(name);//把变量name中的值输出
        
        int age = 40;
        char gender = '女';
        double weight = 148.5;
        boolean marry = true;
        System.out.println(age);
        System.out.println(gender);
        System.out.println(weight);
        System.out.println(marry);
        
        System.out.println("----------------");
        // + 表示拼接,把"姓名:"字符串常量 和name字符串变量的值,拼接起来,构成一个字符串值
        System.out.println("姓名:" + name);
        System.out.println("name=" + name);
        //System.out.println("姓名:",name);//错误
        
        System.out.println("----------------");
        System.out.println("name" + name + ",age = " + age + ",gender = " + gender + ",weight = " + weight + ",marry = " + marry);
        
    }
}

2.7 最终变量/常量(final)

最终变量习惯上也称为常量,因为它是通过在声明变量的数据类型前面加final的方式实现的,所以叫最终变量。加final修饰后,这个变量的值就不能修改了,一开始赋值多少,就是多少,所以此时的变量名通常称为常量名。常量名通常所有字母都大写,每一个单词之间使用下划线分割,从命名上和变量名区分开来。

这样做的好处,就是可以见名知意,便于维护。

public class FinalVariableDemo {
    public static void main(String[] args){
        //定义常量
        final int FULL_MARK = 100;//满分
       // FULL_MARK = 150;//错误,final修饰的变量,是常量,不能重新赋值
        
        //输出常量值
        System.out.println("满分:" + FULL_MARK);
        
        //小好的成绩比满分少1分
        int hao = FULL_MARK - 1;
        //小谷得了满分
        int gu = FULL_MARK;
        //小李得了一半分
        int lee = FULL_MARK/2;
        
        //输出变量值
        System.out.println("小好成绩:" + hao);
        System.out.println("小古成绩:" + gu);
        System.out.println("小李成绩:" + lee);
    }
}

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

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

相关文章

分布式思想

1、单体架构设计存在的问题 传统项目采用单体架构设计,虽然可以在一定的程度上解决企业问题,但是如果功能模块众多,并且将来需要二次开发.由于模块都是部署到同一台tomcat服务器中,如果其中某个模块代码出现了问题,将直接影响整个tomcat服务器运行. 这样的设计耦合性太高.不便…

【软件测试基础篇】第二节.黑盒测试中常见方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言⼀、等价类法&#xff08;解决穷举问题&#xff09;二、边界值法&#xff08;解决边界限制问题&#xff09;三、正交表法&#xff08;解决多条件依赖问题&#…

Docker学习之镜像管理(超详解析)

Docker镜像生命周期&#xff08;可以把docker镜像理解为虚拟机镜像&#xff09; 实验内容&#xff1a; 搜索官方仓库镜像 [rootlocalhost ~]# docker search busybox //以查找busybox为例 搜索说明&#xff1a;name镜像名称 description镜像说明 stars点赞数量 official…

移动端使用 echarts中 滚动条 dataZoom 改造为内容区域可以左右滚动

移动端使用 echarts中 滚动条 dataZoom 改造为内容区域可以左右滚动 直接上图 &#xff1a; 主要是下面这段代码&#xff1a; "dataZoom": [{"type": "inside","show": false,"xAxisIndex": [0],"zoomOnMouseWheel&…

APP在应用商店该如何做好节日营销

38妇女节刚刚过去&#xff0c;不少商家吃上了一波节日红利。 你有没有注意到很多App在应用商店里改头换面&#xff0c;开展了很多以“三八节”为主题的营销活动&#xff0c;并且取得了不错的成绩。 可见季节性营销策划对产品的下载量和用户留存率还是很重要的。 那么我们如何…

synchronized底层原理 以及 公平锁和非公平锁的基本概念

一、公平锁和非公平锁的基本概念 公平锁&#xff1a; 简单讲就是当一个锁被释放的时候会执行唤醒&#xff0c;此时等待中的其他线程取排在最前面的线程获取被释放的锁并进入运行态。 非公平锁&#xff1a; 同样的当一个锁释放时&#xff0c;其他等待的线程并不需要排队&#…

LeetCode 80.删除有序数组中的重复项 II

目录标题 删除有序数组中的重复项 II题目解题思路实现代码代码讲解总结删除有序数组中的重复项 II 题目 解题思路 慢指针指向满足条件的数字的末尾,快指针遍历原数组。 并且用一个变量记录当前末尾数字出现了几次,防止超过两次。最后返回维护慢指针的结果+1即可。 实现代…

【数据可视化】Echarts最常用图表

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. 准备工作3. 柱状图3.1 绘制堆积柱状图3.2 绘制标准条形图3.3 绘制瀑布图 4. 折线图4.1 绘制堆积面积图和堆积折线图4.2 绘制阶梯图 5. 饼图5.1 绘制标准饼图5.2 绘制圆环图5.2 绘制嵌套饼图5.3 绘制南丁格尔…

文件操作与IO流

文章目录 File文件操作类IO流原理及流的分类节点流FileInputStreamFileOutputStreamFileReaderFileWriter 处理流BufferedReaderBufferedWriterBufferedInputStreamBufferedOutputStreamObjectInputStreamObjectOutputStreamPrintStreamPrintWriter 标准输入输出流 Properties …

【声速、频率、波长、波数、波矢】

【声速、频率、波长、波数、波矢】 在声学中,声速(Speed of Sound)、频率(Frequency)、波长(Wavelength)、波数(Wave Number)和波矢(Wave Vector)是描述声波传播特性的重要物理量。它们之间的关系如下: 声速(Speed of Sound): 表示声波在介质中传播的速度,通常…

Vue 运行报错 Error: Cannot find module ‘semver‘

文章目录 项目场景&#xff1a;问题描述解决方案&#xff1a;注意&#xff1a; 项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 运行 Vue 后遇到一个报错&#xff1a; 我的项目是WebStorm 运行的&#xff0c;不通过命令运行&#xff0c;我奇怪的是…

用网格大师网络重划分时,坐标原点按照XML文件原点填写,导出的瓦块文件命名不对,坐标原点该怎么填写

瓦块名称和原来不一致的原因是瓦块原点这里设置的不对&#xff0c;要和重建设置的瓦块原点保持一致。 网格大师是一款能够解决实景三维模型空间参考、原点、瓦块大小不统一&#xff0c;重叠区域处理问题的工具“百宝箱”&#xff0c;集格式转换、坐标转换、轻量化、瓦片重划分…

探秘Kafka位移在消息旅程中的神奇

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 探秘Kafka位移在消息旅程中的神奇 前言什么是消费者位移消费者位移的定义和作用&#xff1a;消费者位移对于消息传递的一致性至关重要的原因&#xff1a; 位移的存储方式位移信息的存储方式&#xff1…

非常实用的区间预测!基于QR-BiGRU的时间序列分位数区间预测程序,电池寿命、轴承寿命、负荷预测、光伏、风速、电价、碳价预测

适用平台&#xff1a;Matlab2022版及以上 本程序参考中文EI期刊《电工技术学报》2024年1月30日网络首发文献&#xff1a;《基于QR-BiGRU神经网络与区间抗差增广状态估计的线路参数区间追踪估计》&#xff0c;提出基于QR-BiGRU双向门控循环单元网络的时间序列分位数区间预测程序…

解读 PICO 全新无灯环手柄背后的技术突破

从上世纪70年代的雅达利游戏机开始到后来的PS&#xff0c;Xbox和Switch等&#xff0c;按钮式控制器一直是团队输入的主要方式&#xff0c;并将继续在相当长的时间里继续作为重要的交互方式。这种控制器同样在新兴的XR系统中扮演着关键的角色&#xff0c;通过熟悉的按钮布局和物…

Scala--01--简介、环境搭建

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. Scala简介1.1 Scala是什么&#xff1f;官网&#xff1a; [https://scala-lang.org/](https://scala-lang.org/)官方文档&#xff1a; [https://docs.scala-lang.…

Unity中的网格创建和曲线变形

Unity中的网格创建和曲线变形 3D贝塞尔曲线变形贝塞尔曲线基础线性公式二次方公式三次方公式 Unity 实现3D贝塞尔曲线变形准备工作脚本概述变量定义 变量解析函数解析 获取所有子节点GetAllChildren 获取所有子节点UpdateBezierBend 控制点更新CalculateBezier Bezier 曲线公式…

解锁基于LLMS的咒语:通过上下文学习重新思考对齐

一、写作动机&#xff1a; 最近的一项研究&#xff0c;LIMA&#xff0c;表明仅使用1K个示例进行SFT也可以实现显著的对齐性能&#xff0c;这表明对齐微调的效果可能是“表面的”。&#xff08;知识和推理能力来源于预训练&#xff0c;而不是必须通过对齐微调获得的。&#xff…

掌握未来数据管理:Tidb数据库学习网站全攻略!

介绍&#xff1a;TiDB是一个开源的分布式关系型数据库&#xff0c;由PingCAP公司设计和研发。以下是对TiDB的详细介绍&#xff1a; HTAP支持&#xff1a;TiDB能够同时处理在线事务处理&#xff08;OLTP&#xff09;和在线分析处理&#xff08;OLAP&#xff09;&#xff0c;这使…

50、东北大学、阿尔伯塔大学:Hi-GCN从2个层次角度进行图学习,用来诊断脑部疾病[你这和MVS-GCN套娃呢?]

本文由东北大学医学图像智能计算教育部重点实验室&#xff0c;加拿大阿尔伯塔大学于2020年10.24日发表于<Computers in Biology and Medicine> JCR\IF: Q1\7.7 Abstract&#xff1a; 目的:近年来&#xff0c;脑连接网络已被用于神经系统疾病的分类&#xff0c;如自闭症…