news 2026/10/19 4:28:42

Java常量与数据类型全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java常量与数据类型全解析

1.对于字面常量, 咱们得弄明白这是个啥回事儿, 这里面分好了几种类型, 第一类叫做字符串常量, 第二类叫做整形常量,第三类叫做浮点型常量, 第四类叫做字符常量, 第五类叫做布尔常量, 还有一类叫做空常量。

被final修饰之后, size变量就变成字面常量了, 它是不可以再进行修改的。

2.对于这8种, 常见的数据类型的名字, 还有它们的内存占用的大小, 以及它们各自能够表示的范围的多少, 都需要去进行了解和掌握, 同时呢, 也还要清楚各种各样的数据类型之间, 是如何互相进行转换的, 这里所列举出来的常见数据类型, 具体包含有byte、short、int、long、float、char这些名称。

实际上长整型的后面部位也是能够添加一个小写的L字母的, 可是因为小写字母l的形状非常难以和数字1相区别, 容易让人搞混, 所以人们更加倾向于大家去使用大写的形式来进行标识。

它是双精度, 小数默认是那个类型的, 后面加 F 或者 f 这个标识的话就是 float。

只有那两个值的情况之下, 一个是true, 另一个是false, 默认的设定是false, 至于其他的变量, 它们的默认值就都是各自所属类型的零值。

把变量类型进行强制转换, 这种方式是不推荐的, 因为其存在这样的风险, 即可能会超出范围, 从而造成数据的丢失。

不同类型在相加的时候, 编译器会自动去进行转换处理。

3.字符串类型与整形数字之间的装换(字符串类型相加为拼接)

public class Test {

public static void main1(String[] args) {

System.out.println(10);

//被final修饰过的变量,叫做常量,不能再进行修改了,类似于c当中的const

final int size = 10;

System.out.println(size);

}

public static void main2(String[] args) {

//四个字节

int a = 10;

System.out.println(a);

System.out.println(Integer.MIN_VALUE);

System.out.println(Integer.MAX_VALUE);

//Integer为int的包装类(特殊,其他只需首字母大写)

//这样子可以打印出int类型的最大值和最小值(-2^31~2^31-1)

Integer b = 10;

//当然包装类也可以当作数据类型来定义变量

}

public static void main3(String[] args) {

//8个字节

long a = 10L;

//长整型变量的初始值后加L,标识这为长整形,否则整形数字默认为int

System.out.println(a);

System.out.println(Long.MIN_VALUE);

System.out.println(Long.MAX_VALUE);

//-2^63~2^63-1

}

public static void main4(String[] args) {

/*

短整型 2个

-2^15 2^15 -1

*/

short sh = 10;

System.out.println(sh);

System.out.println(Short.MIN_VALUE);

System.out.println(Short.MAX_VALUE);

}

public static void main5(String[] args) {

/*

字节型 1个字节

char

-2^7 2^7 -1

*/

byte a = 9;

System.out.println(a);

System.out.println(Byte.MAX_VALUE);//127

System.out.println(Byte.MIN_VALUE);//-128

}

public static void main6(String[] args) {

/*double d = 12.5;

System.out.println(d); 屏蔽/取消 ctr+shift + / */

// double a = 1;

// double b = 2;

// System.out.println(a / b); 屏蔽/取消 ctr + /

double num = 1.1;

System.out.println(num * num);//1.21 8个字节

//单精度

float f = 12.5F;

System.out.println(f);

//小数默认是double类型的,后面加F标识为float类型

}

public static void main7(String[] args) {

//char 类型 是2个字节 unicode字符集

char ch1 = 'a';

char ch2 = '高';

//不同于c语言,Java的字符编码包含了汉字

System.out.println(ch1);

System.out.println(ch2);

Character c = 'p';

}

public static void main8(String[] args) {

// 没有明确说明 大小是多少字节 ?

boolean b = true;//Boolean

System.out.println(b);

}

public static void main9(String[] args) {

/*int a = 10;

long b = 100L;

//b = a;

a = (int)b;*/

byte a = 10;

int b = 129;

a = (byte)b;

//强制转换但是不推荐,有风险

System.out.println(a);

}

public static void main10(String[] args) {

int a = 10;//4字节

long b = 20;//8字节

//a提升为long long类型 和 long类型 进行运算 结果就是long类型

int c1 = (int)(a+b);

long c2 = a+b;//推荐这种

}

public static void main11(String[] args) {

byte a = 10;

byte b = 20;

//虽然为两个byte类型相加,但是由于默认数字为int

//所以会导致相加结果变为int类型

int c = a + b;

}

public static void main12(String[] args) {

String str = "hello";

String str2 = "word";

System.out.println(str+str2);

//相加为拼接——helloword

System.out.println(str.length());

//计算长度

System.out.println(str.charAt(0));

//字符串可以相当于数组,这个意思就是字符串中下标为0的字符

}

public static void main13(String[] args) {

int a = 10;

//a==10

System.out.println("a == " + a);

//打印可以直接打印内容加变量

int c = 20;

System.out.println("a == " + a + c);

System.out.println("a == " + (a + c));

System.out.println(a + c + " = a+c");

//System.out.printf("a = %d\n",a);

}

//字符串变成整数

public static void main14(String[] args) {

String s = "123";

//int a = Integer.valueOf(s);//底层实现 parseInt

int a = Integer.parseInt(s);

System.out.println(a+1);

}

//整数变成字符串

public static void fun() {

int a = 123;

String str = a+"";

System.out.println(str);

System.out.println("========");

String str1 = String.valueOf(a);

System.out.println(str1);

}

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 4:28:17

open-code-review:基于Git Diff的开源CLI代码评审工具

1. 项目概述:这不是又一个“AI写代码”玩具,而是一套可嵌入日常开发流的开源代码评审协作者“open-code-review”这个名字乍看平平无奇,甚至有点拗口——它既不是某个大厂新发布的闭源SaaS服务,也不是某款打着“AI编程”旗号的浏览…

作者头像 李华
网站建设 2026/10/19 4:27:14

Linux程序崩溃无core文件?排查ulimit与core_pattern配置链路

1. 从一次深夜排查说起:core 文件为什么凭空消失线上服务在凌晨两点突然挂掉,进程没了,日志只留下一行“Segmentation fault”。你第一反应是去看 core 文件,结果目录里空空如也。这不是玄学,是 Linux 系统里一个非常经…

作者头像 李华
网站建设 2026/10/19 4:27:14

大模型微调实战:从LoRA原理到显存优化与部署全流程解析

最近后台隔三差五就有人问我:微调到底难不难?我是不是得先把几篇核心论文啃完才能上手?还有人说自己是刚转方向的小白,一看到“全参微调”“LoRA”“量化”这些词就觉得头大,根本不知道该从哪一步开始。说实话&#xf…

作者头像 李华
网站建设 2026/10/19 4:26:38

OpenClaw 中 MCP 的完全管理指南:从配置到排障

最近和几个朋友聊他们的智能体项目,发现不少人在某个环节吃了大亏:明明把一堆外部能力接进去了,结果工具调用混乱、变量互相污染、权限收不住,调试半天也找不出是哪个环节出了问题。后来发现,问题往往出在OpenClaw 使用…

作者头像 李华
网站建设 2026/10/19 4:26:26

PaddleX实战:森林火灾目标检测从数据到部署全流程

做森林火灾检测这个项目,是我第一次正儿八经用PaddleX跑完一套目标检测的完整流程。坦率讲,在动手之前我一度有点抗拒,觉得既然已经会Python、也写过简单的图像分类脚本,目标检测不过就是换个模型的事。但真到了要把“火焰”和“烟…

作者头像 李华
网站建设 2026/10/19 4:26:25

open-code-review:规则+LLM协同的代码审查新范式

1. 项目概述:这不是又一个代码审查工具,而是一次开发协作范式的迁移“open-code-review”这个名称乍看像某个开源项目仓库名,但拆开来看——open(开放)、code(代码)、review(审查&am…

作者头像 李华