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

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

变量的本质:

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

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

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

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

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

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

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

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

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

常量(Constant)

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

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)。

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

public class Test {public static void main(String[] args) {float f = 3.14F;//float类型赋值时需要添加后缀F/fdouble 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’是一

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个字节。

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。取模运算:其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操

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); }
}

扩展运算符:

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.mzph.cn/news/879709.shtml

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

相关文章

华为OD机试 - 二维伞的雨滴效应(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

ClickHouse-Kafka Engine 正确的使用方式

Kafka 是大数据领域非常流行的一款分布式消息中间件,是实时计算中必不可少的一环,同时一款 OLAP 系统能否对接 Kafka 也算是考量是否具备流批一体的衡量指标之一。ClickHouse 的 Kafka 表引擎能够直接与 Kafka 系统对接,进而订阅 Kafka 中的 …

镀金引线---

一、沉金和镀金 沉金和镀金都是常见的PCB金手指处理方式,它们各有优劣势,选择哪种方式取决于具体的应用需求和预算。 沉金(ENIG)是一种常用的金手指处理方式,它通过在金手指表面沉积一层金层来提高接触性能和耐腐蚀性…

【C++】模拟实现vector

在上篇中我们已经了解过的vector各种接口的功能使用,接下来我们就试着模拟实现一下吧! 注意:我们在此实现的和C标准库中实现的有所不同,其目的主要是帮助大家大概理解底层原理。 我们模拟vector容器的大致框架是: t…

2024年【四川省安全员B证】新版试题及四川省安全员B证考试试卷

题库来源:安全生产模拟考试一点通公众号小程序 四川省安全员B证新版试题参考答案及四川省安全员B证考试试题解析是安全生产模拟考试一点通题库老师及四川省安全员B证操作证已考过的学员汇总,相对有效帮助四川省安全员B证考试试卷学员顺利通过考试。 1、…

【webpack4系列】webpack基础用法(二)

文章目录 entryoutputloaderpluginmode前端构建基础配置关联HTML插件html-webpack-plugin构建 CSS 解析 ES6和React JSX解析 ES6解析 React JSX 解析CSS、Less和Sass解析CSS解析Less解析sass 解析图片和字体资源解析:解析图片资源解析:解析字体资源解析&…

JS - 获取剪切板内容 Clipboard API

目录 1,需求最终效果 2,实现示例 3,注意点1,只支持安全上下文环境2,只能读取当前页面的剪切板3,权限获取问题4,获取内容的 MIME_TYPE 问题1,文本内容2,图片内容 5&#x…

魅思-视频管理系统 getOrderStatus SQL注入漏洞复现

0x01 产品简介 魅思-视频管理系统是一款集成了视频管理、用户管理、手机端应用封装等功能的综合性视频管理系统。该系统不仅以其强大的视频管理功能、灵活的用户管理机制、便捷的手机端应用封装功能以及高安全性和现代化的界面设计,成为了市场上备受关注的视频管理系统之一。…

一个基于 laravel 和 amis 开发的后台框架, 友好的组件使用体验,可轻松实现复杂页面(附源码)

前言 随着互联网应用的发展,后台管理系统的复杂度不断增加,对于开发者而言,既要系统的功能完备,又要追求开发效率的提升。然而,传统的开发方式往往会导致大量的重复劳动,尤其是在构建复杂的管理页面时。有…

Web植物管理系统-下位机部分

本节主要展示上位机部分,采用BSP编程,不附带BSP中各个头文件的说明,仅仅是对main逻辑进行解释 main.c 上下位机通信 通过串口通信,有两位数据验证头(verify数组中保存对应的数据头 0xAA55) 通信格式 上位发送11字节…

机器学习:opencv--图像金字塔

目录 一、图像金字塔 1.图像金字塔是什么? 2.有哪些常见类型? 3.金字塔的构建过程 4.图像金字塔的作用 二、图像金字塔中的操作 1.向下采样 2.向上采样 3.注意--无法复原 三、代码实现 1.高斯金字塔向下采样 2.高斯金字塔向上采样 3.无法复…

基于SpringBoot+Vue+MySQL的志愿服务管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着社会对志愿服务需求的日益增长,传统的志愿服务管理方式已难以满足高效、透明、精准的管理需求。为提升志愿服务组织的运营效率,优化资源配置,增强志愿者参与度和满意度,开发基…

LinuxC高级作业1

1.已知网址www.hqyj.com截取出网址的每一个部分 2.整理思维导图 3.将配置桥接网络的过程整理成文档 i)) 保证虚拟机提供了桥接模式 菜单栏中 ----> 虚拟机 -----> 设置 -----> 网络适配器 ii) 保证虚拟机可以设置桥接网络 菜单栏中 ----> 编辑 -----> 虚拟网…

linux第一课(操作系统核心)

一.关于linux (1)linux是一款开源的操作系统(是多用户,多任务,多线程)。 (2)一般所说的linux指的是linux核心,即对计算机硬件资源负责调度管理,主要职责是进程管理,内存管理文件系统,设备驱动&#xff0c…

禹神3小时快速上手typescript

一、TypeScript简介 TypeScript 由微软开发,是基于 JavaScript 的⼀个扩展语⾔。TypeScript 包含了 JavaScript 的所有内容,即: TypeScript 是 JavaScrip t 的超集。TypeScript 增加了:静态类型检查、接⼝、 泛型等很多现代开发特…

(计算机毕设)基于SpringBoot+Vue的“乐锄”农产品销售网站的设计与实现

毕业设计(论文) 博主可接毕设!!! 基于SpringBootVue的“乐锄”农产品销售网站的设计与实现 摘 要 传统的农资采购销售模式,造成农业生产的效率和质量低,人们对食品安全问题关注不断增加&#x…

golang 字符串浅析

go的字符串是只读的 测试源代码 package mainimport ("fmt""unsafe" )func swap(x, y string) (string, string) {return y, x }func print_string(obj *string, msg string) {string_ptr : (*[2]uintptr)(unsafe.Pointer(obj))first_obj_addr : string_…

前后端分离,使用MOCK进行数据模拟开发,让前端攻城师独立于后端进行开发

mock是什么 Mock生成随机数据,拦截Ajax 请求,前后端分离,让前端攻城师独立于后端进行开发。 增加单元测试的真实性 通过随机数据,模拟各种场景。 在实际开发过程中,前端是通过axios来请求数据的,很多时候前端开发者就是通过写固定…

1.Seata 1.5.2 seata-server搭建

一:Seata基本介绍 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 详见官网链接:https://seata.apache.org/zh-cn/ 1.历史项目里的使用经验: 之前公司里的oem用户对应的App…

C# 修改项目类型 应用程序程序改类库

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…