初识Java篇(JavaSE基础语法)(1)

 个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客

目录

前言: 

初识Java 

运行Java程序

注释

标识符

关键字

数据类型与变量 

字面常量

数据类型

变量

类型转换 

类型提升 

字符串类型 

运算符

算术运算符 

关系运算符 

逻辑运算符

位运算符

移位运算

条件运算符

运算符的优先级 


前言: 

接下来,Java前期的语法学习会和C语言非常的类似。

Java语言概述:

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。

Java语言特性:

1. 简单性:Java语法是C++语法的一个“纯净版本”,相当于对C++做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。 2. 面向对象:什么是面向对象? 在Java的世界里,一切皆对象。比如:人、狗、手机、电脑等都是对象。所谓面相对象,就是依靠对象之间的交互来完成事情,比如:人用手机网上购物,狗吃骨头... Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++相比,Java提供了更丰富的运行时自省功能。 3. 分布式(微服务): Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络 上的对象,其便捷程度就好像访问本地文件一样。 4. 健壮性:Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费几个小时来检查由于指针bug而引起内存冲突的人来说,一定很喜欢Java的这一特性)。不仅如此,Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。 5. 安全性:Java适用于网络/分布式环境。为了达到这个目标,在安全性方面投入了大量的精力。使用Java可以构建防病毒、防篡改的系统。从一开始,Java就设计成能够防范常见的各种攻击: 运行时堆栈溢出。蠕虫和病毒常用的攻击手段。 破坏自己进程空间之外的内存。 未经授权读写文件 6. 体系结构中立:编译器生成一个体系结构中立的目标文件格式,按照该中规范生成的文件,只要有Java运行时系统,这些编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。这就是为什么可以:“Wrice once,Run anywhere”(一次编译,到处运行)。而且其他语言编写的程序,在编译后如果能够严格按照字节码文件的规范生成.class文件,也可以在JVM上运行7. 可移植性:与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的主要问题。 8. 解释性:Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集。 9. 高性能:边解释边执行,垃圾会说等导致了Java代码运行效率偏低,近年来JVM也在不断的优化,比如:JIT(即时编译Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。 11. 动态性:Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到) 因此:Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系 ),热点代码探测,让Java程序的执行效率大幅提高,在有些场合不亚于C/C++。 10. 多线程:Java在当时很超前。它是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。并发程序设计绝非易事,但是Java在这方面表现出色,可以很好的管理这个工作。 11. 动态性:Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单(反射的特性,后续会学到) 因此:Java不仅仅是一门编程语言,也是一个由一些列计算机软件和规范组成的技术体系。

初识Java 

C语言打印Hello World:

#include <stdio.h>
int main()
{
	printf("Hello World\n");
	return 0;
}

Java打印Hello World:

public class Test//类 {
    public static void main(String[] args)//方法 {
        System.out.println("Hello World");//语句
    }

Java程序的结构由如下三个部分组成:1.源文件(扩展名为.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个 类。类的内容必须包含在花括号里面。 2.类:类中带有一个或多个方法。方法必须在类的内部声明。 3.方法:在方法的花括号中编写方法应该执行的语句。 总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。 

注意:在一个源文件中只能有一个public修饰的类,而且源文件名字必须与public修饰的类名字相同。

运行Java程序

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的,与平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。

JDK、JRE、JVM之间的关系?

注释

Java中的注释主要分为以下三种:

1. 单行注释:// 注释内容(用的最多)

2. 多行注释:/* 注释内容*/(不推荐)

3. 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档.

注意: 1. 多行注释不能嵌套使用 2. 不论是单行还是多行注释,都不参与编译,即编译之后生成的.class文件中不包含注释信息。

标识符

在上述程序中,Test称为类名,main称为方法名,也可以将其称为标识符。即:在程序中由用户给类名、方法名或者变量所取的名字。

【硬性规则】 标识符中可以包含:字母、数字以及 下划线和 $ 符号等等。

注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写。

【软性建议】 类名:每个单词的首字母大写(大驼峰) 方法名:首字母小写,后面每个单词的首字母大写(小驼峰) 变量名:与方法名规则相同。

关键字

将这些具有特殊含义的标识符称为关键字。即:关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字。 注意:用户不能使用关键字定义标识符。下面是我们常见的关键字。

数据类型与变量 

字面常量

常量即程序运行期间,固定不变的量称为常量。换句话说,就是无论程序何时运行,对应的结果是不变的。

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

上面代码中的Hello World就是属于字面常量。

注意:常量与字面常量是有区别的。

字面常量:字面常量是指直接出现在代码中的固定值。它们可以是整数、浮点数、字符、字符串或布尔值等。例如,整数字面常量可以是10、-5,浮点数字面常量可以是3.14、-0.5,字符字面常量可以是’a’、‘b’,字符串字面常量可以是"Hello World”。字面常量的值在编译时就确定了,不能被修改。

常量:常量是指在程序中定义的具有固定值的标识符。在Java中,常量使用关键字final进行声明,并且一旦被赋值后就不能再改变。常量可以是基本数据类型(如int、double等)或引用数据类型(如String、数组等)。常量的值在运行时才确定。

区别:

字面常量的值在编译时就确定了,而常量的值在运行时确定。
字面常量直接出现在代码中,不需要定义和声明,而常量需要使用关键字final进行声明。
字面常量的值不能被修改,而常量的值也不能被修改,但可以通过重新赋值来改变引用的对象。

数据类型

在Java中数据类型主要分为两类:基本数据类型和引用数据类型。

基本数据类型有四类八种: 1. 四类:整型、浮点型、字符型以及布尔型 2. 八种:

数据类型关键字内存占用范围
字节型byte1个字节-128~127

短整型

short2个字节-32768 ~ 32767
整型int4个字节-2^31 ~ 2^31-1
长整型long8个字节-2^63 ~ 2^63-1
单精度浮点型float4个字节有范围,一般不关注
双精度浮点型double8个字节有范围,一般不关注
字符型char2个字节0 ~ 65535
布尔型boolean没有明确规定两个取值:true,false

注意: 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节 整形和浮点型都是带有符号的 整型默认为int型,浮点型默认为double,字符串属于引用类型,该中类型后序介绍。 

变量

语法格式:数据类型 变量名 = 初始值;

例如:

int i = 0;//注意整型变量在使用之前,必须赋予初始值,否则编译器会报错

char ch = 0;

float f = 3.14f;//注意如果不加f/F,编译器会默认为double类型,而且编译器会报错

double d = 3.14;

short s = 20;

boolean flag = true;//只能取true或者flag

//为了区分int和long类型,一般建议:long类型变量的初始值之后加L或者l
long l = 30L;//一般更加以加大写L,因为小写l与1不好区分

如果我们想要知道这些数据的范围,也可以直接在编译器中求。

public class Tset {
    public static void main(String[] args) {
        System.out.println("整型数据的取值范围:"+Integer.MIN_VALUE+" ~ "+Integer.MAX_VALUE );
        System.out.println("短整型数据的取值范围:"+Short.MIN_VALUE+" ~ "+Short.MIN_VALUE);
        System.out.println("字节型数据的取值范围:"+Byte.MIN_VALUE+" ~ "+Byte.MAX_VALUE);
    }
}

代码内容后面介绍。 

注意事项:在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。

double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。 

Java 中使用 单引号 + 单个字母 的形式表示字符字面值。计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符.。因此 一个字符占用两个字节, 表示的字符种类更多, 包括中文。

public class Tset {
    public static void main(String[] args) {
        char a = '我', b = '要', c = '学', d = '编' , e = '程';
        System.out.print(a);
        System.out.print(b);
        System.out.print(c);
        System.out.print(d);
        System.out.print(e);
    }
}

Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。 

类型转换 

Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换(隐式) 和 强制类型转换(显式)。

自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行。

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。

我们就可以这样理解:当大碗装小碗里的水时,大碗能够全部装下;而小碗装大碗时,大碗里的水会溢出,导致水量减少。

类型提升 

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

byte 和 byte 都是相同类型, 但是出现编译报。 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误. 由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据。 为了硬件上实现方便, 诸如 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算 。

字符串类型 

在Java中使用String类定义字符串类型。

在有些情况下,需要将字符串和整形数字之间进行转换:

int 转成 String

String 转成 int :

运算符

Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

算术运算符 

运算法则和C语言是一样的。 

public class Tset {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println(a + b); // 30
        System.out.println(a - b); // 10
        System.out.println(a * b); // 200
        System.out.println(a / b); // 2
        System.out.println(a % b); // 0 
    }
}
public class Tset {
    public static void main(String[] args) {
       int a = 3;
       int b = 2;
       //在数学中应该是1.5 但是在Java中输出结果为1。会向下取整,即小数点之后全部舍弃掉了
       System.out.println(a / b);
       //如果要得到数学中的结果,可以使用如下方式
       double d = a*1.0 / b;
       System.out.println(d);

    }
}

% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的。 

当%两边的操作数是负数时,结果的正负号是由第一个运算符的正负决定的。

public class Tset {
    public static void main(String[] args) {
       System.out.println(10 % 3);
       System.out.println(10 % (-3));
       System.out.println((-10) % 3);
       System.out.println((-10) % (-3));
    }
}

关系运算符 

关系运算符主要有六个: ==   !=   <=   >=  >   <,其计算结果是 true 或者 false 。

public class Tset {
    public static void main(String[] args) {
       int a = 10;
       int b = 20;
       System.out.println(a == b); // false
       System.out.println(a != b); // true
       System.out.println(a < b); // true
       System.out.println(a > b); // false
       System.out.println(a <= b); // true
       System.out.println(a >= b); // false
    }
}

逻辑运算符

逻辑运算符主要有三个: &&   ||    ! ,运算结果都是 boolean类型。

语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。 两个表达式都为真,结果才是真,只要有一个是假,结果就是假。与我们之前学习的C语言是一样的,并且也有短路求值。当表达式1为假时,表达式2就无需运算了。因为一旦表达式1的结果为假,整个表达式就是为假,表达式2的结果是真还是假已经没有意义了。

public class Tset {
    public static void main(String[] args) {
       int a = 1;
       int b = 2;
       System.out.println(a == 1 && b == 2);//左为真 且 右为真 则结果为真
       System.out.println(a == 1 && b > 100);//左为真 但 右为假 则结果为假
       System.out.println(a > 100 && b == 2);//左为假 但 右为真(无需判断) 则结果为假
       System.out.println(a > 100 && b > 100);//左为假 且 右为假(无需判断) 则结果为假
    }
}

逻辑 ||

语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。注意:左右表达式至少有一个位真,则结果为真。 同样也有短路求值。当表达式1的结果为正,表达式2的结果无论真假,整个表达式的结果都为正。

public class Tset {
    public static void main(String[] args) {
       int a = 1;
       int b = 2;
       System.out.println(a == 1 || b == 2);//左为真 且 右为真(无需计算) 则结果为真
       System.out.println(a == 1 || b > 100);//左为真 但 右为假(无需计算) 则结果也为真
       System.out.println(a > 100 || b == 2);//左为假 但 右为真 则结果也为真
       System.out.println(a > 100 || b > 100);//左为假 且 右为假 则结果为假
    }
}

逻辑非 ! 

语法规则:! 表达式   真变假,假变真。 

public class Tset {
    public static void main(String[] args) {
       int a = 1;
       System.out.println(!(a == 1));//a == 1 为true,取个非就是false
       System.out.println(!(a != 1));//a != 1 为false,取个非就是true
    }
}

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 &&  || 相比, 它们不支持短路求值。

位运算符

按位与(&): 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。

按位或(|): 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1。

按位取反(~): 如果该位为 0 则转为 1, 如果该位为 1 则转为 0。

按位异或(^): 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1。

移位运算

左移(<<): 最左侧位不要了, 最右侧补 0。

右移(>>): 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)。

无符号右移 (>>>): 最右侧位不要了, 最左侧补 0。

1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方. 2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方. 3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替. 4. 移动负数位或者移位位数过大都没有意义。

条件运算符

条件运算符只有一个: 表达式1 ? 表达式2 : 表达式3 当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值. 也是 Java 中唯一的一个三目运算符, 是条件判断语句的简化写。

1. 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换。

如果我们把c的类型改为浮点型就可以了。

2. 表达式不能单独存在,其产生的结果必须要被使用。 

运算符的优先级 

与C语言是一样的,可以去看看下面这篇文章。操作符详解(下)-CSDN博客

通过上面的学习,我们会发现其实Java中的语法其实和C语言差不多。好啦!本期Java的学习就到此结束了,我们下一期再一起学习吧!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Kotlin(五)数据流StateFlow和LiveData

Android 上的 Kotlin 数据流 在协程中&#xff0c;与仅返回单个值的挂起函数相反&#xff0c;数据流可按顺序发出多个值。数据流以协程为基础构建&#xff0c;可提供多个值。从概念上来讲&#xff0c;数据流是可通过异步方式进行计算处理的一组数据序列。所发出值的类型必须…

【C语言】字符函数与字符串函数以及内存函数 { 超详细攻略,一篇学会 }

今日分享&#xff1a;字符、字符串函数和内存函数 内存函数就是对内存进行操作的函数 字符串函数就是对字符串进行操作的函数 字符函数就是对字符进行操作的函数 str前缀的函数是字符串函数&#xff0c;头文件string.h mem前缀的函数是内存函数&#xff0c;头文件stdlib.h 字符…

GEC6818——QT开发之两个UI界面切换与表格显示DHT11数据

GEC6818——QT开发之两个UI界面切换与表格显示DHT11数据 使用环境: ubantu16 QT5.7 开发板GEC6818 实现要求&#xff1a; 利用A53按键1、按键2与温湿度传感器完成QT界面动态显示温湿度记录&#xff0c;并指定温湿度记录超过指定范围&#xff0c;进行报警&#xff08;LED&#…

21-分支和循环语句_while语句(中)(初阶)

21-2 代码准备 getchar()&#xff1a;获取字符 int ch getchar(); //把获取的字符的ASCII码值放在ch中 int main() {int ch getchar();printf("%c\n", ch); //ch存的是该字符的ASCII码值&#xff0c;此处以字符形式打印ASCII码值对应的字符putchar(ch); } 运…

MATLAB的多项式相加

多项式的加减在阶次相同的情况下可直接运算&#xff0c;若两个相加减的多项式阶次不同&#xff0c;则低阶多项式必须用零填补高阶项系数&#xff0c;使其与高阶多项式有相同的阶次。而且通常情况下&#xff0c;进行加减的两个多项 式的阶次不会相同&#xff0c;这时可以自定义一…

JVM从1%到99%【精选】-【初步认识】

目录 1.java虚拟机 2.JVM的位置 3.代码的执行流程 4.JVM的架构模型 5.JVM的生命周期 6.JVM的整体结构 1.java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。JVM平台的各种语言可以共享Java…

数据同步操作需要注意哪些点?

前言 有时候基于业务&#xff0c;我们会做一些数据清洗&#xff0c;或者老项目数据同步新项目的相关操作。在做这些业务的时候&#xff0c;往往需要注意一些必要的关键点&#xff0c;否则会造成数据的错乱&#xff0c;我们知道数据一单错乱是很难处理的。 参考文章 原作者&a…

unittest--封装excel操作

封装excel操作 操作流程类和对象初始化对象操作获取表格的数据初始化一个用于操作Excel文件的对象获取表头和所有测试用例数据数据拼接 (dict)主函数调用 操作流程 1、初始化表格对象&#xff1a; 文件路径workbook&#xff0c;表单名称sheet_name 2、初始化sheet对象 &#xf…

RIPGeo参文31—36(关于对比学习):鼓励对同一数据点进行各种增强(视图),以学习更健壮的表示

RIPGeo中有: —干扰参数。在内部最大化中,我们提出了步骤,以增加损失的方向更新。我们的方法不是用简单的一步方案最大化内部部分,而是在每次迭代结束时将扰动投影到球面空间上(第2-7行),这允许模型产生更微妙但有价值的扰动[31]。 [31] A. Kurakin, I. J. Goodfellow…

ChatGPT丨“智领科研新纪元:AI大模型,您的第二大脑!“

AI大模型引领未来智慧科研暨ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用 以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数…

【蓝桥杯嵌入式】四、各种外设驱动(七)定时器的输出比较功能

温馨提示&#xff1a;本文不会重复之前提到的内容&#xff0c;如需查看&#xff0c;请参考附录 【蓝桥杯嵌入式】附录 重点提炼&#xff1a; 根据手册内容&#xff0c;输出比较模式&#xff08;output Compare CHx&#xff09;的功能主要需要由以下参数决定&#xff1a; 通…

Ubuntu Flask 运行 gunicorn+Nginx 部署

linux Ubuntu 下运行python 程序出现killed 原因&#xff1a;CPU或内存限制&#xff1a;在华为云上&#xff0c;你可能有CPU或内存使用的限制。例如&#xff0c;如果你使用的是一个固定大小的实例&#xff0c;那么超过该实例的CPU或内存限制可能会导致进程被杀死。 参考&am…

react中hooks使用限制

只能在最顶层使用Hook 不要在循环、条件中调用hook&#xff0c;确保总是在React函数最顶层使用它们 只能React函数中调用Hook 不要在普通的js函数中调用 在React的函数组件中调用Hook 在自定义hook中调用其他hook 原因&#xff1a; 我们每次的状态值或者依赖项存在哪里&…

matplotlib-散点图

日期&#xff1a;2024.03.14 内容&#xff1a;将matplotlib的常用方法做一个记录&#xff0c;方便后续查找。 # 引入需要使用的库 from matplotlib import pyplot as plt# 设置画布大小 plt.figure(figsize(20,8),dpi 300)# 全局设置中文字体 plt.rcParams[font.sans-serif]…

JAVA学习9

目录 一.继承 1.继承的原理&#xff1a; 2.继承的细节&#xff1a; 3.继承的本质&#xff1a; 二.super的使用&#xff1a; 1.基本介绍&#xff1a; 2.注意事项与使用细节&#xff1a;&#xff08;1&#xff09;访问父类的属性super.属性名&#xff0c;但不能访问父类的p…

洛谷P1941题解

题目背景 NOIP2014 提高组 D1T3 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度&#xff0c;让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话&#xff0c;便宣告失败。 为了…

蓝桥杯2023年省A(一波三折的)【买瓜】折半搜索+剪枝+排序

题目&#xff1a;洛谷 P9234 [蓝桥杯 2023 省 A] 买瓜 折半搜索 一开始觉得像dp&#xff0c;试着写了&#xff0c;显然过不了&#xff0c;但我实在觉得搜索也过不了啊&#xff0c;去看题解&#xff0c;发现使用了折半搜索&#xff08;每天都觉得啥都不会捏 折半搜索就是先搜一…

CentOS部署 JavaWeb 实现 MySql业务

一、项目打war包 在eclispe或idea中找到项目&#xff0c;右键打war包。 二、上传项目到linux 2.1云服务器虚拟机均可 以tomcat为例 /usr/local/tomcat/webapps 将war包通过ssh连接上传到webapps目录下。 如果是root目录则不需要项目名即 ip或域名端口直接访问&#xff08…

数学建模-估计出租车的总数

文章目录 1、随机抽取的号码在总体的排序 1、随机抽取的号码在总体的排序 10个号码从小到大重新排列 [ x 0 , x ] [x_0, x] [x0​,x] 区间内全部整数值 ~ 总体 x 1 , x 2 , … , x 10 总体的一个样本 x_1, x_2, … , x_{10} ~ 总体的一个样本 x1​,x2​,…,x10​ 总体的一个样…

Linux磁盘配额

磁盘配额 概述 Linux系统作为一个多用户的操作系统&#xff0c;在生产环境中&#xff0c;会发生多个用户共同使用一个磁盘的情况&#xff0c;会造成Linux根分区的磁盘空间耗尽&#xff0c;导致Linux系统无法建立新的文件&#xff0c;从而出现服务程序崩溃、系统无法启动等故障…