【无标题】Java_Se 数据变量与运算符

news/2024/9/19 4:46:19 标签: java

   标识符、变量、常量、数据类型、运算符、基本数据类型的类型转换等。这些是编程中的“砖块”,是编程的基础。要想开始正式编程,还需要再学“控制语句”,控制语句就像“水泥”,可以把“砖块”粘到一起,最终形成“一座大厦”。

变量的本质:

1.变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。

2.可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

3.Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。比如,int a=3; 表示a变量的空间大小为4个字节。

变量有三种类型:局部变量,成员变量(也称为实例变量)和静态变量。

  局部变量(local variable):方法或语句块内部定义的变量。生命周期是从声明位置开始到到方法或语句块执行完毕为止。局部变量在使用前必须先声明、初始化(赋初值)再使用。

java">public class Test {
    public static void main(String[] args) {
        int i;
        i=10;
        int j=i+5;
        System.out.println(j);
    }
}

  成员变量(也叫实例变量 member variable):方法外部、类的内部定义的变量。从属于对象,生命周期伴随对象始终。如果不自行初始化,它会自动初始化成该类型的默认初始值。

java">public class Test {
    public static void main(String[] args) {
        int i;
    }
}

  静态变量(类变量 static variable)使用 static 定义。 从属于类,生命周期伴随类始终,从类加载到卸载。如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值.

常量(Constant)

在 Java 语言中,用关键字 final 来定义一个常量。常量一旦被初始化后不能再更改。

java">public class Test {
    public static void main(String[] args) {
        final double Pl= 3.14;// PI= 3.15; //编译错误,不能再被赋值!
         double r = 4;
         double area = Pl*r* r;
         double circle = 2 * Pl* r;
        System.out.println("area = " + area);
        System.out.println("circle ="+ circle);
    }
}

  为了更好的区分和表述,一般将1、2、3、'a' 、 'b'、true、false、”helloWorld”等称为字符常量,而使用 final 修饰的 PI等称为符号常量。

基本数据类型(primitive data type)

Java数据类型分为两大类:基本数据类型(primitive data type)和引用数据类型(referencedata type)。

java">public class Test {
    public static void main(String[] args) {
// 方式一:在定义时给出初始值
        int a = 10;
        System.out.println(a);
        
// 方式二:在定义时没有给初始值,但使用前必须设置初值
        int b;
        b = 10;
        System.out.println(b);
        
// 使用方式二定义后,在使用前如果没有赋值,则编译期间会报错
        int c;
        System.out.println(c);
        c = 100;
// int型变量所能表示的范围:
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);
        
// 注意:在定义int性变量时,所赋值不能超过int的范围
        int d = 12345678901234; // 编译时报错,初值超过了int的范围
    }
}

1.float类型又被称作单精度类型,尾数可以精确到7位有效数字。

2.double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。

3.Java浮点类型常量有两种表示形式:

(1)十进制数形式:例:3.14314.00.314(2)科学记数法形式例:3.14e03.14E23.14E-1

4.浮点型不精确,不要用于比较浮点数存在舍入误差,数字不能精确表示。浮点数适合普通的科学和工程计算,精度足够;但不适合精度要求非常高的商业计算,这时候要使用BigDecimal进行运算和比较。

5.浮点常量默认类型是double,要改成float可以后面加F或f

java">public class Test {
    public static void main(String[] args) {
        float f = 3.14F;//float类型赋值时需要添加后缀F/f
        double d1= 3.14;
        double d2= 3.14D;
    }
}

      ASCII字符集表示了英文字母、数字、特殊字符、控制符,所有字符集的老祖宗,大家都会兼容它。但是一个字节能够表示256个状态,而ASCII字符只用到128个,后面128个一直是空的。于是有了ISO8859-1,别名叫latin-1, 包含了256个字符。前128个字符与ASCII中完全相同。后128个包括了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。

   随着我国的计算机普及,汉字的处理也有了我们自己的方案。那就是GB2312,两个字节表示1个汉字。两个字节可以表示65536个状态,汉字再多也能全部包含。后来,又有了GBK、GB18030。我国的台湾地区自己搞了一套显示繁体中文的大五码BIG5。全世界各个地方,都有自己的文字编码。由于不互通,经常造成乱码的问题。

        如果有一种统一的字符集,将世界上所有语言字符都纳入其中,每一个字符都给予一个全球独一无二的编码,那么乱码问题就会消失。于是,全球所有国家和民族使用的所有语言字符的统一字符集诞生了,这就是Unicode字符集。Unicode字符集是为了给全世界所有字符一个唯一的编码,“唯一”对应的英文为Unique,而编码的英文为code。Unicode采用了字符集和编码分开的策略。Unicode之前,Unicode诞生之前可以将字符集和字符编码混为一谈,而在Unicode中必须严格区分开。

Unicode字符集统一采用两个字节表示一个字符,包括英文字母。但是,由于英文占据互联网信息的绝大部分。真实存储和传输时,会造成极大的浪费;因此,目前主要采用UTF8编码来实现具体的存储和传输。

    UTF-8是变长编码,用1-6个字节编码Unicode字符。西欧字符仍然是1个字节,汉字3个字节。字符型在内存中占2个字节。在Java中使用单引号来表示字符常量。例如’A’是一

java">public class Test {
    public static void main(String[] args) {
        char c1 = 'A'; // 大写字母
        char c2 = '1'; // 数字字符
        System.out.println(c1);
        System.out.println(c2);
// 注意:java中的字符可以存放整形
        char c3 = '帅';
        System.out.println(c3);
    }
}

1.boolean类型有两个常量值,true和false。

2.在内存中占一个字节或4个字节,不可以使用0 或非0 的整数替代true 和false,这点和C语言不同。【注意点】JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

java">public class Test {
    public static void main(String[] args) {
        boolean flag;
        flag = true;  
        flag=false;
        
        if (flag) {     // true分支
        } else {  
            //false分支
        }
    }
}

1.+,-,*,/,%属于二元运算符。%是取模运算符,就是我们常说的求余数操作。

2.算术运算符中++(自增),--(自减)属于一元运算符。二元运算符的运算规则:整数运算:如果两个操作数有一个为long, 则结果也为long。没有long时,结果为int。即使操作数全为short,byte,结果也是int。浮点运算:如果两个操作数有一个为double,则结果为double。只有两个操作数都是float,则结果才为float。取模运算:其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操

java">public class Test {
    public static void main(String[] args) {
        int a = 3;
        int b = a++;  //执行完后,b=3。先给b赋值,再自增。
        System.out.println("a="+a+"\nb="+b);
        
        a = 3;
        b=++a;    //执行完后,b=4。a先自增,再给b赋值
        System.out.println("a="+a+"\nb="+b); 
    }
}

扩展运算符:

java">public class Test {
    public static void main(String[] args) {
        int a=3;
        int b=4;
        a+=b;  //相当于a=a+b;
        System.out.println("a="+a+"\nb="+b);a=3;
        
        a*=b+3;  //相当于a=a*(b+3)
        System.out.println("a="+a+"\nb="+b);
    }
}

  短路与和短路或采用短路的方式。从左到右计算,如果只通过运算符左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。


http://www.niftyadmin.cn/n/5664985.html

相关文章

LED灯、蜂鸣器、继电器的控制

LED灯的控制 该专栏所有文章都默认使用STM32F103ZET6开发板 目录 LED灯的控制 一、简单的LED灯控制 1、初始化函数 led灯 2、应用函数 2、蜂鸣器 3、继电器 一、简单的LED灯控制 编程框架:初始化函数和应用函数 1、初始化函数 初始化函数一般包括&#xf…

如何 吧一个 一维数组 切分成相同等分,一维数组作为lstm的输入(三维数据)的数据预处理 collate_fn的应用

要将一个一维数组切分成相同等分,你可以使用 Python 的内置功能或者 NumPy 库(如果你处理的是数值数据)。以下是几种不同的方法: 方法3 pad_sequence 结合dataloader 应该是最佳方案 ### 方法 1: 使用 Python 的内置切片功能 如果…

TypeScript入门 (二)控制语句

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的TypeScript学习总结文档。本文主要讲解TypeScript中控制语句的部分;希望通过我的知识点总结,能够帮助你更好地…

笔记整理—内核!启动!—kernel部分(8)动态编译链接库与BSP文件

linux的C语言程序是用编译的,但是如果要在开发板上运行的话就不能使用默认的ubuntu提供的gcc编译器,而是使用arm-linux版本的一类的编译器。我们可以用file xx去查看一个程序的架构。 (arm架构) (intel的80386架构&…

Fiddler抓包工具实战

文章目录 🟢 Fiddler入门到精通👉主要功能👉使用场景 🟢 一、Fiddler抓包和F12抓包对比🟢 二、Fiddler的核心功能🟢 三、Fiddler的工作原理🟢 四、Fiddler功能配置使用👉规则设置&am…

FastAPI--如何自定义Docs UI,包括多个APP、静态资源、元数据等

如何mount 一个FastAPI Application? “Mounting” means adding a completely “independent” application in a specific path, that then takes care of handling everything under that path, with the path operations declared in that sub-application. 示例代码 主…

「已解决」KeyError: ‘getpwuid(): uid not found: 1004‘

#问题描述 docker中,调用pwd.getpwuid()出现报错: Traceback (most recent call last):...File "/root/miniconda3/envs/octo/lib/python3.10/site-packages/etils/epath/backend.py", line 235, in statowner pwd.getpwuid(st.st_uid).pw_n…

在 Java 中,super关键字和this关键字的区别

在 Java 中,super关键字和this关键字的区别如下: 一、指代对象不同 this: 代表当前对象的引用。即正在调用成员方法或构造方法的那个对象实例。例如,在一个类的方法中,this可以用来引用当前对象的成员变量和方法。 su…