java 变量 基础类型及其转换

news2024/12/23 14:53:57

为什么需要变量

一个程序就是一个世界
在这里插入图片描述
变量是程序的基本组成单位

//不论是使用那种高级程序语言编写程序,变量都是其程序的基本组成单位,比如
//变量有三个基本要素(类型+名称+值)
class Test{
    public static void main(String[] args) {
        //定义了一个变量,类型int整型,名称a,值1
        int a=1;
        //定义了一个变量,类型int整型,名称b,值2
        int b=2;
        //把99的值赋值给b变量
        b=99;
        //输出a的值
        System.out.println(a);
        //输出b的值
        System.out.println(b);
    }
}

简单的原理示意图

在这里插入图片描述

变(变化)量(值)的介绍

变量相当于内存中一个数据存储空间的标识,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量

变量的基本使用步骤

  1. 声明变量

    int a;
    
  2. 赋值

    a=1 //应该这么说,把60赋值给a
    //也可以一步到位int a = 60;
    

变量快速入门

变量使用入门案例
看演示并对代码进行说明, 演示记录 人的信息的代

public class Var02 {
//编写一个 main 方法
public static void main(String[] args) {
		//记录人的信息
		int age = 30;
		double score = 88.9;
		char gender = '男';
		String name = "king";
		//输出信息, 快捷键
		System.out.println("人的信息如下:");
		System.out.println(name);
		System.out.println(age);
		System.out.println(score);
		System.out.println(gender);
	}
}

变量使用注意事项

  1. 变量表示内存中一个存储区域[不同的变量,类型不同,占用空间大小不同],
    比如: int 4个字节,double就是8个字节
  2. 该区域有自己的名称[变量名]和类型[数据类型]
  3. 变量必须先声明,后使用,即有顺序
  4. 该区域的数据/值可以在同一类型范围内不断变化
  5. 变量在同一个作用域内不能重名
  6. 变量=变量名+值+数据类型,即变量三要素
public class VarDetail {
	//编写一个 main 方法
	public static void main(String[] args) {
		//变量必须先声明,后使用, 即有顺序
		int a = 50;//int
		System.out.println(a);//50
		//该区域的数据/值可以在同一类型范围内不断变化
		//a = "jack"; //×
		a = 88; //对
		System.out.println(a);//88
		//变量在同一个作用域内不能重名
		//int a
	}
}
class Dog {
	public static void main(String[] args) {
		int a = 666;//对
	}
}

程序中 +号的使用

  1. 当左右两边都是数值(char)类型时,做加法运算
  2. 当左右两边有一方为字符串时,做拼接运算
  3. 运算顺序,从左到右

示例如下

public class Main {
    public static void main(String[] args) {
        //输出198因为是数值+数值
        System.out.println(100+98);
        //输出10099因为有字符串是拼接
        System.out.println("100"+99);
        //输出101100,因为从左往右
        System.out.println(100+1+"100");
        //输出197,因为char是数值
        System.out.println(100+'a');
    }
}

数据类型

每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)。
在这里插入图片描述

  1. java数据类型分为两大类,基本类型和引用类型
  2. 基本数据类型中有8种
    byte short int long float double char boolean
  3. 引用类型类型 接口 数组

整数类型

java的整数类型就是用于存放整个数值的,比如12,13,23423等
示例如下

byte n1 = 10;
short n2 = 10;
int n3 = 10;//4 个字节
long n4 = 10; //8 个字节

整型的类型细节如下

类型占用存储空间范围及精度
byte1字节-128127
short2字节-32,76832,767
int4字节-2,147,483,6482,147,483,647
long8字节-9,223,372,036,854,775,8089,223,372,036,854,775,807

整型的使用细节

  1. java各整数都有固定的范围和字段长度,不受具体os[操作系统]的影响,以保证java程序的可移植性
  2. java的整型常量(具体值)默认为int型,声明long型常量必须后加l或L
  3. java程序中变量常声明为int型,除非是非常大的数才使用long
  4. bit:计算机中最小存储单位,byte计算机中基本存储单元1byte=8bit

浮点类型

Java 的浮点类型可以表示一个小数,比如 123.4 ,7.8
浮点数分类

类型占用存储空间范围及精度
float4字节大约 ±3.4028235 × 10³⁸(有效位数大约6-7位)
double8字节大约 ±1.79769313486231570 × 10³⁰⁸(有效位数大约15位)
  1. 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
  2. 尾数部分可能丢失,造成精度损失(小数都是近似值)。

浮点数使用细节

  1. 与整型类型类似,java浮点型也有固定的范围长度,不受具体os的影响,
  2. java的浮点型常量默认为double类型,声明float型常量需要加f或F
  3. 浮点型常量有两种表示形式
    十进制 5.12 520.0F .111(必须有小数点)
    科学计数法 5.21e10(5.21*10的2次方)
  4. 通常情况下,应该使用double型因为它比float型更精确
public class FloatDetail {
//编写一个 main 方法
public static void main(String[] args) {
	//Java 的浮点型常量(具体值)默认为 double 型,声明 float 型常量,须后加‘f’或‘F' //float num1 = 1.1; //对不对?错误
	float num2 = 1.1F; //对的
	double num3 = 1.1; //对
	double num4 = 1.1f; //对
	//十进制数形式:如:5.12 512.0f .512 (必须有小数点)
	double num5 = .123; //等价 0.123
	System.out.println(num5);
	//科学计数法形式:如:5.12e2 [5.12 * 10 的 2 次方 ] 5.12E-2 []
	System.out.println(5.12e2);//512.0
	System.out.println(5.12E-2);//0.0512
	//通常情况下,应该使用 double 型,因为它比 float 型更精确。
	//[举例说明]double num9 = 2.1234567851;float num10 = 2.1234567851F;
	double num9 = 2.1234567851;
	float num10 = 2.1234567851F;
	System.out.println(num9);
	System.out.println(num10);
	//浮点数使用陷阱: 2.7 和 8.1 / 3 比较
	//看看一段代码
	double num11 = 2.7;
	double num12 = 2.7; //8.1 / 3; //2.7
	System.out.println(num11);//2.7
	System.out.println(num12);//接近 2.7 的一个小数,而不是 2.7
	//得到一个重要的使用点: 当我们对运算结果是小数的进行相等判断是,要小心
	//应该是以两个数的差值的绝对值,在某个精度范围类判断
	if( num11 == num12) {
		System.out.println("num11 == num12 相等");
	}
	//正确的写法 , ctrl + / 注释快捷键, 再次输入就取消注释
	if(Math.abs(num11 - num12) < 0.000001 ) {
		System.out.println("差值非常小,到我的规定精度,认为相等...");
	}
	// 可以通过 java API 来看 下一个视频介绍如何使用 API
	System.out.println(Math.abs(num11 - num12));
	//细节:如果是直接查询得的的小数或者直接赋值,是可以判断相等
	}
}

字符类型(char)

字符类型可以表示单个字符,字符类型是 char,char 是两个字节(可以存放汉字),多个字符我们用字符串String

  1. 字符常量是用单引号(‘’)括起来的单个字符
  2. java中还允许使用转移字符’'来将其后的字符转变为特殊字符常量
    例如char c1 = ‘\n’ ; \n表示换行
  3. 在java中 char本质是一个整数,在输出时,是unicide码对应的字符
  4. 可以直接给char赋一个整数,在输出时,是unicode对应的字符
  5. char类型可以进行数学运算因为本质是一个整数

示例如下

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        //在java中,char的本质是一个整数,在输出时,是unicode码对应的字符
        char c1 = 97;
        System.out.println(c1); //a
        char c2 = 'a';
        System.out.println((int)c2);//97
        //char 类型是可以进行运算的,相当于一个整数,因为它都对应的unicode码
        System.out.println(c1+c2);//194 注意char相加后会变成整数
        System.out.println(c1+2);
        //字符类型本质
        //1: 字符型存储到计算机中,需要将对应的码值(整数)找出来,比如'a'
        //存储:'a'==>码值97===>'a'显示
        //读取:二进制(1100001)=>97===>'a'==>显示

    }
}

ASCII 码介绍

Unicode 编码介绍

UTF-8 编码介绍

布尔类型:boolean

public class Boolean01 {
//编写一个 main 方法
	public static void main(String[] args) {
		//演示判断成绩是否通过的案例
		//定义一个布尔变量
		boolean isPass = true;//
		if(isPass == true) {
			System.out.println("考试通过,恭喜");
		} else {
			System.out.println("考试没有通过,下次努力");
		}
	}
}

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

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

相关文章

哈工大 | 乐聚人形机器人 | 最新演讲

笔者是清华在读研究生&#xff0c;主要关注人形机器人、具身智能。将持续分享行业前沿动态、学者观点整理、论文阅读笔记、知识学习路线等。欢迎交流 最近听了乐聚的最新进展演讲&#xff0c;以下是学习整理。部分图截自直播&#xff0c;若模糊望见谅 基本信息&#xff1a; 【…

光影漫游者:创新球形设计,重新定义移动空间—轻空间

在现代城市中&#xff0c;空间的灵活性和视觉吸引力变得越来越重要。为满足多样化的需求&#xff0c;“光影漫游者”以其独特的球形设计和引人注目的视觉效果&#xff0c;成为了移动空间解决方案的新标杆。无论是商业活动、文化展览&#xff0c;还是沉浸式体验&#xff0c;“光…

文档翻译软件哪个好?这5款文档翻译器还不错

相信大家都有过看着大量外文文档资料而无从下手的经历&#xff0c;曾几何时&#xff0c;我也和大家一样深深困于这种烦恼之中。 好在后来&#xff0c;被我发现了5款趁手的文档翻译器&#xff0c;这才从根本上解决了不少麻烦~今天借此机会也将它们一并整理出来分享给大家&#…

仪器校准周期建议多长时间一次?仪器无校准后果怎么样?

自从国内建立计量以来&#xff0c;仪器计量校准就一直是企业定期进行的一种设备维护工作。定期进行校准已经是企业墨守成规的习惯&#xff0c;但是对于仪器校准周期是多久&#xff0c;具体多久校准一次&#xff0c;大家却不是很清楚&#xff0c;那么仪器校准周期建议多长时间一…

以简单的例子从头开始建spring boot web多模块项目(五)-thymeleaf引擎

继续向里面加&#xff0c;这次是引入thymeleaf渲染引擎。 使用这个引擎的很多&#xff0c;主要是以下几个优点&#xff1a; Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 -HTML可以在浏览器中正确显…

华普微邀您共聚 2024 elexcon 深圳国际电子展!

elexcon2024深圳国际电子展将于2024年8月27日至29日在深圳会展中心&#xff08;福田&#xff09;开幕。汇聚全球优质品牌厂商齐聚现场&#xff0c;打造电子全产业链创新展示、一站式采购及技术交流平台。集中展示集成电路、嵌入式系统、电源管理/功率器件、电子元件与供应链、O…

气膜馆:亲子乐园中的新兴娱乐空间—轻空间

在亲子乐园中&#xff0c;气膜馆作为一种新兴的娱乐空间&#xff0c;凭借其独特的设计和灵活的功能&#xff0c;成为了孩子和家长们的理想去处。这个轻盈而充满趣味的空间&#xff0c;不仅让孩子们尽情玩耍&#xff0c;也为家长提供了舒适的陪伴环境。 全天候的舒适体验 气膜馆…

AOP+ 自定义注解 +SpringElExpress自研缓存组件

AOP 自定义注解 SpringElExpress自研缓存组件 背景前置知识改造代码 背景 思考下这段代码&#xff0c;想想项目中是不是到处存在 先查缓存&#xff0c;缓存里面有&#xff0c;直接返回&#xff1b;缓存没有&#xff0c;查数据库&#xff0c;并更新到缓存 思考&#xff1a;如何…

你遇到过哪些触发NPE的代码场景?

你遇到过哪些触发NPE的代码场景&#xff1f; NPE如何处理NPE 在Java编程实践中&#xff0c;空指针异常&#xff08;NPE&#xff09;是开发过程中常见的障碍&#xff0c;它不仅阻碍了代码的正常运行&#xff0c;还常常成为系统不稳定性的根源。那么如何识别那些潜藏于代码深处的…

6个你应该尝试Lens.org的理由:一个免费的文献可视化和专利网站

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 最近发现的一个免费的文献检索工具Lens.org介绍给大家&#xff0c;相比其他文献检索工具web of science、Scopus等&#xff0c;独到之处在于它对于搜索结果全面的可视化呈现效…

ubuntu右上角没有小键盘图标

这个比较奇怪&#xff0c;一开始好好的&#xff0c;用着用着就不行了。网上解决方案比较多&#xff0c;大多数能解决一部分问题。 1.设置“输入法系统” 2.在终端运行 sudo killall ibus-daemon&#xff08;结束进程&#xff09; bus-daemon -d&#xff08;重启ibus&#xff0…

Go之函数

一、函数基本使用 一&#xff09;函数概述 1、函数定义 对特定的功能进行提取&#xff0c;形成一个代码片段 2、函数的作用 提高代码的复用性&#xff0c;减少代码的冗余&#xff0c;代码的维护性也提高了 3、函数中间的关系 函数与函数是并列关系&#xff0c;所以定义的函数不…

Secure Coding in C and C ++ (四)局部静态构造函数 虚函数

前言 上一章节我们讲解了 关于C静态和指针与引用的部分 我们先来回顾一下相关的内容&#xff1a; 指针说白了就是地址&#xff0c; int a; int * ptr &a这里的整形指针 就是存放的整数变量的地址 静态 static 有两种层面&#xff1a; 第一种层面就是在其他的文件里&…

Ansys Zemax|如何自定义优化操作数

虽然Zemax OpticStudio有300多个内建优化操作数&#xff0c;但是还是会有一些特殊情况是这300多个操作数无法涵盖的。这就要求使用者根据要求计算出某些特定的数值&#xff0c;将这些数值返回到某个操作数&#xff0c;再对此操作数进行优化。 Zemax OpticStudio支持用户编程&a…

【SpringCloud】(一文通)多机部署, 负载均衡-LoadBalance

目 录 一. 负载均衡介绍1.2 什么是负载均衡1.3 负载均衡的⼀些实现 二. Spring Cloud LoadBalancer2.1 快速上手2.1.1 使用 Spring Cloud LoadBalancer 实现负载均衡2.1.2 启动多个product-service实例 2.2 负载均衡策略2.3 LoadBalancer 原理 三. 服务部署(Linux)3.2 服务构建…

(24)(24.4) MultiWii/DJI/HDZero OSD (version 4.2 and later)(一)

文章目录 前言 1 基于遥测的OSD 前言 ArduPilot 使用基于MSP&#xff08;MultiWii 串行协议&#xff09;的协议支持多种类型的屏幕显示&#xff08;OSD&#xff09;&#xff1a; 基于 MSP 遥测的操作系统&#xff0c;如大疆 FPV 护目镜 V1/V2、大疆护目镜 RE、FatShark Byte…

QML----QML+VTK+CMake示例

为了创建一个使用QML和VTK的示例项目,并使用CMake进行构建,将遵循以下步骤: 创建C++类以集成VTK和QML:这个类将负责设置VTK渲染数据,并与QML进行交互。设置CMake配置:配置CMake以找到并链接Qt和VTK库。创建QML界面:设计QML界面以显示VTK渲染的内容。编写主函数:初始化应…

C语言实现通讯录-动态版本与文件版本

C语言实现通讯录-动态版本与文件版本 1.前言2.动态版本2.1联系人信息之前的&#xff1a;改版: 2.2初始化之前的&#xff1a;改版&#xff1a; 2.3自动扩容 3.文件版本3.1自动保存函数实现&#xff1a;效果&#xff1a; 3.2打开时加载信息函数实现&#xff1a;效果&#xff1a; …

day37-https实战

1.知识点补充: 四层代理转发数据库 目的: 通过10.0.0.4 使用ssh远程连接到web01 ssh--->10.0.0.4:2222 ---------->172.16.1.7:22 xshell-->创建会话-->10.0.0.4 端口 2222 Linux系统 ssh 10.0.0.4 -p2222作业: 目的: 实现连接10.0.0.4的5555端口转发到后端数据库…

【hot100篇-python刷题记录】【只出现一次的数字】

R5-技巧篇 思路&#xff1a;使用哈希记录次数即可 class Solution:def singleNumber(self, nums: List[int]) -> int:dictdefaultdict(int)for num in nums:dict[num]1for num in nums:if dict[num]1:return num