【Java】数据类型与变量

1.数据类型

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

  • 四类:整型、浮点型、字符型以及布尔型
  • 八种:
    在这里插入图片描述
    注意
  • 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
  • 整形和浮点型都是带有符号的
  • 整型默认为int型,浮点型默认为double
  • 字符串属于引用类型,该中类型后序介绍

2.变量

2.1变量概念

在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的计算结果等,对于这些经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的

2.2语法格式

定义变量的语法格式为:

数据类型   变量名 = 初始值

举个例子:
int a = 10; // 定义整形变量a,a是变量名也称为标识符,该变量中放置的值为10
double d = 3.14;
char c = 'A';
boolean b = true;
System.Out.println(a);
System.Out.println(d);
System.Out.println(c);
System.Out.println(b);

a = 100; // a是变量,a中的值是可以修改的,注意:= 在java中表示赋值,即将100交给a,a中保存的值就是100
System.Out.println(a);

// 注意:在一行可以定义多个相同类型的变量
int a1 = 10, a2 = 20, a3 = 30;
System.Out.println(a1);
System.Out.println(a2);
System.Out.println(a3);

2.3整型变量

2.3.1整型变量

// 方式一:在定义时给出初始值
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. int不论在何种系统下都是4个字节
  2. 推荐使用方式一定义,如果没有合适的初始值,可以设置为0
  3. 在给变量设置初始值时,值不能超过int的表示范围,否则会导致溢出
  4. 变量在使用之前必须要赋初值,否则编译报错
  5. int的包装类型为 Integer

2.3.2 长整型变量

int a = 10;
long b = 10; // long定义的长整型变量

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

// long型变量所能表示的范围:这个数据范围远超过 int 的表示范围. 足够绝大部分的工程场景使用.
System.Out.println(Long.MIN_VALUE);
System.Out.println(Long.MAX_VALUE);

注意事项

  1. 长整型变量的初始值后加L或者l,推荐加L
  2. 长整型不论在那个系统下都占8个字节
  3. 长整型的表示范围为: -263~263-1
  4. long的包装类型为Long

2.3.3 短整型变量

short a = 10;
System.Out.println(a);

// short型变量所能表示的范围:
System.Out.println(Short.MIN_VALUE);
System.Out.println(Short.MAX_VALUE);

注意事项

  1. short在任何系统下都占2个字节
  2. short的表示范围为:-32768 ~ 32767
  3. 使用时注意不要超过范围(一般使用比较少)
  4. short的包装类型为Short

2.3.4 字节型变量

byte b = 10;
System.Out.println(b);

// byte型变量所能表示的范围:
System.Out.println(Byte.MIN_VALUE);
System.Out.println(Byte.MAX_VALUE);

注意事项

  1. byte在任何系统下都占1个字节
  2. byte的范围是:-128 ~ 127
  3. 字节的包装类型为Byte

2.3.4 双精度浮点型

double d = 3.14;
System.Out.println(d);

在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 0.5, 需要使用 double 类型计算
注意事项

  1. double在任何系统下都占8个字节
  2. 浮点数与整数在内存中的存储方式不同,不能单纯使用 2n的形式来计算
  3. double的包装类型为Double
  4. double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值

2.4.2 单精度浮点型

float num = 1.0f; // 写作 1.0F 也可以
System.out.println(num);

float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑double,不太推荐使用 float. float的包装类型为Float

2.5 字符型变量

char c1 = 'A'; // 大写字母
char c2 = '1'; // 数字字符

System.out.println(c1);
System.out.println(c2);

// 注意:java中的字符可以存放整形
char c3 = '去';
System.out.println(c3);

注意事项

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

3.字符串类型

在Java中使用String类定义字符串类型,比如:

public static void main(String[] args) {
	String s1 = "hello";
	String s2 = " world";
	System.out.println(s1);
	System.out.println(s2);
	System.out.println(s1+s2); // s1+s2表示:将s1和s2进行拼接
}

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

  1. int 转成 String
int num = 10;
// 方法1
String str1 = num + "";
// 方法2
String str2 = String.valueOf(num);
  1. String 转成 int
String str = "100";
int num = Integer.parseInt(str);

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

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

相关文章

【Go-Zero】goctl生成model层后报错Unresolved reference ‘ErrNotFound‘解决方案

【Go-Zero】goctl生成model层后报错Unresolved reference ErrNotFound’解决方案 大家好 我是寸铁👊 总结了一篇goctl生成model层后报错Unresolved reference ErrNotFound’报错解决方案的文章✨ 喜欢的小伙伴可以点点关注 💝 问题背景 大家好&#xff…

【医学大模型 补全主诉】BioGPT + LSTM 自动补全医院紧急部门主诉

BioGPT LSTM 自动补全医院紧急部门主诉 问题:针对在紧急部门中自动补全主诉的问题子问题1: 提高主诉记录的准确性子问题2: 加快主诉记录的速度子问题3: 统一医疗术语的使用子问题4: 减少打字错误和误解子问题5: 提高非特定主诉的处理能力 解法数据预处理神经网络方…

centos中安装go

安装过程 (1)源码二进制下载地址 wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz (2)将下载的二进制包解压至 /usr/local目录。 tar -C /usr/local/ -xzf go1.13.5.src.tar.gz (3)设置环…

《基于CEEMDAN一小波包自适应阈值混凝土声发射信号降噪研究》算法思路笔记

![1]杨智中,林军志,汪魁等.基于CEEMDAN-小波包自适应阈值混凝土声发射信号降噪研究[J].振动与冲击,2023,42(03):139-149.DOI:10.13465/j.cnki.jvs.2023.03.016.](https://img-blog.csdnimg.cn/direct/9814ff64cc474cd3aa06ecaea60f2f75.png) 首先对周期循环荷载作用下混凝土试…

Cohere AI模型介绍

[Cohere AI模型介绍] Cohere有多种模型,涵盖许多不同的用例。如果需要更多自定义,可以训练模型以根据特定用例进行调整。 1. Command Command 是 Cohere 的默认生成模型,它接受用户指令(或命令)并按照指令生成文本。…

mkv和mp4什么区别?这篇文章告诉你(2024最新)

在数字视频的世界中,MKV和MP4是两种极为常见的封装格式。它们各自拥有独特的特点和优势,适用于不同的场景和需求。然而,对于许多用户来说,这两种格式之间的区别可能并不清晰。mkv和mp4什么区别?本文将探讨MKV和MP4之间…

CSS学习(三)

目录: 1. CSS引入方式 1.1 三种样式表 1.2 内部样式表(嵌入式引入) 1.3 行内样式表(内联样式表) 1.4 外部样式表 1.5 总结 1. CSS引入方式 1.1 三种样式表 1.2 内部样式表(嵌入式引入) …

知识蒸馏实战代码教学二(代码实战部分)

一、上章原理回顾 具体过程: (1)首先我们要先训练出较大模型既teacher模型。(在图中没有出现) (2)再对teacher模型进行蒸馏,此时我们已经有一个训练好的teacher模型,所以…

每日一题——LeetCode1464.数组中两元素的最大乘积

这题就是找数组里的最大值和次大值 方法一 排序 var maxProduct function(nums) {nums.sort((a,b)>b-a)return (nums[0] - 1) * (nums[1] - 1); }; 消耗时间和内存情况: 方法二 一次遍历: var maxProduct function(nums) {let first-1,second-…

IO进程线程第三天

1.使用fread,fwrite完成两个文件之间的拷贝 #include <myhead.h> //使用fread,fwrite完成两个文件之间的拷贝 int main(int argc, const char *argv[]) {if(argc!3){printf("input file error\n");printf("usage:./a.out srcfile destfile\n");retu…

Eclipse - Makefile generation

Eclipse - Makefile generation References right mouse click on the project -> Properties -> C/C Build -> Generate Makefiles automatically 默认会在 Debug 目录下创建 Makefile 文件。 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

智慧城市驿站:智慧公厕升级版,打造现代化城市生活的便捷配套

随着城市化进程的加速&#xff0c;人们对城市生活质量的要求也越来越高。作为智慧城市建设的一项重要组成部分&#xff0c;多功能城市智慧驿站应运而生。它集合了信息技术、设计美学、结构工艺、系统集成、环保节能等多个亮点&#xff0c;将现代科技与城市生活相融合&#xff0…

文献速递:GAN医学影像合成--联邦生成对抗网络基础医学图像合成中的后门攻击与防御

文献速递&#xff1a;GAN医学影像合成–联邦生成对抗网络基础医学图像合成中的后门攻击与防御 01 文献速递介绍 虽然深度学习在医疗保健研究中产生了显著影响&#xff0c;但其在医疗保健领域的影响无疑比在其他应用领域更慢、更有限。造成这种情况的一个重要原因是&#xff…

uniapp不同平台获取文件内容以及base64编码特征

前言 文件图片上传&#xff0c;客户端预览是很正常的需求&#xff0c;获取文件的md5特征码也是很正常的&#xff0c;那么&#xff0c;在uniapp中三种环境&#xff0c;h5, 小程序以及 app环境下&#xff0c;如何实现的&#xff1f; 参考&#xff1a; 如何在uniapp中读取文件Arr…

自动驾驶TPM技术杂谈 ———— RFID(Radio Frequency IDentification)技术

文章目录 介绍问题挑战新机遇基于RFID 的绑定式感知基于标签信号物理模型基于标签能量耦合变化基于信号变化模式匹配 基于RFID 的非绑定式感知基于标签电感耦合基于反射信号模型基于信号模式匹配 基于RFID 的混合式感知 介绍 马克维瑟&#xff08;Mark Weiser&#xff09;在199…

vue+element (el-progress)标签 隐藏百分比(%) ,反向显示 ,自定义颜色, demo 复制粘贴拿去用

1 效果: 2 页面代码: <el-row :gutter"10" ><el-col :span"12"><el-card ><div class"fourqu"><div><span slot"title">{{推送任务TOP5}}</span></div></div><div class&…

Maven(基础)、MyBatis

简介 Apache Maven是一个项目管理和构建工具&#xff0c;它基于项目对象模型 (POM)的概念&#xff0c;通过一小段描述信息来管理项目的构建、报告和文档 官网: http://maven.apache.org/ Maven作用 Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#x…

Vue 实现当前页的刷新

Vue 在缓存的基础上实现当前页的刷新 前进刷新&#xff0c;后退不刷新 一、Bus的实现 Bus.js 二、利用Bus实现不同页面的事件传播 1.引入Bus.js&#xff08;传递&#xff09;例如&#xff1a;A页面 2.引入Bus.js&#xff08;接收&#xff09;例如&#xff1a;B页面 3.路由组件设…

rocketMQ-Dashboard安装与部署

1、下载最新版本rocketMQ-Dashboard 下载地址&#xff1a;https://github.com/apache/rocketmq-dashboard 2、下载后解压&#xff0c;并用idea打开 3、修改配置 ①、修改端口及rocketmq服务的ip&#xff1a;port ②、修改访问账号、密码 3、然后启动访问&#xff1a; 4、mav…

WEB基础及HTTP协议概念

目录 一、http概述 1、http的相关概念名词 2、访问浏览器的过程 3、http 协议通信过程 4、扩展网络通信 二、http相关技术 1、web开发语言 2、URL 和 URN 3、URL的组成 4、MIME ​5、网站访问量 6、http协议版本及区别 7、http请求访问的七大过程 8、HTTP工作机制…