Java的数据类型,常量,变量

Java的数据类型

1.整形变量

int num = 10; // 定义一个整型变量
System.out.println(num) ;
 

在java中,一个int变量占4个字节,和操作系统没有直接关系

什么是字节?

字节是计算机中表示空间大小的基本单位.
计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte)
 

查看Java中整型数据范围

System.out.println(Integer.MAX_VALUE); // int 的最大值
System.out.println(Integer.MIN_VALUE); // int 的最小值
 

如果运算的结果超出了 int 的最大范围, 就会出现溢出的情况

int maxValue = Integer.MAX_VALUE;
System.out.println(maxValue+1);
int minValue = Integer.MIN_VALUE;
System.out.println(minValue-1);
 

长整型变量

long num = 10L; // 定义一个长整型变量, 初始值写作 10l 也可以(小写的 L, 不是数字1).
System.out.println(num) ;
 

使用以下代码查看 Java 中的长整型数据范围:
 

System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE)
// 运行结果
9223372036854775807
-9223372036854775808
 

这个数据范围远超过 int 的表示范围. 足够绝大部分的工程场景使用

短整型变量

short value = 0;
System.out.println(value);

使用以下代码查看 Java 中的短整型数据范围:

System.out.println(Short.MAX_VALUE);

System.out.println(Short.MIN_VALUE);

//结果

32767
-32768

这个表示范围比较小, 一般不推荐使用.
 

字节类型变量

byte value = 0;
System.out.println(value);

使用以下代码查看 Java 中的字节类型数据范围:

System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);

//结果

127
-128

字节类型和字符类型互不相干


双精度浮点型变量

double num = 1.0;
System.out.println(num);

代码1

int a = 1;
int b = 2;
System.out.println(a / b);
// 执行结果
0

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

double a = 1.0;
double b = 2.0;
System.out.println(a / b);
// 执行结果
0.5
 

代码2

double num = 1.1;
System.out.println(num * num)
// 执行结果
1.2100000000000002
 

Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范
围.
Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势
必会存在一定的精度误差

使用以下代码查看 Java 中的双精度浮点变量数据范围:

System.out.println(Long.MIN_VALUE);
System.out.println(Long.MAX_VALUE);

//结果

-9223372036854775808
9223372036854775807

单精度浮点变量

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

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

使用以下代码查看 Java 中的单精度浮点变量数据范围:

System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);

//结果

3.4028235E38
1.4E-45

字符类型变量

char ch = 'A';
System.out.println(ch);

举个例子

char ch = 'a';
char ch2 = 97;
char ch3 = '高';
// char ch4 = -9;

System.out.println(ch);
System.out.println(ch2);
System.out.println(ch3);
System.out.println(Character.MAX_VALUE);
System.out.println(Character.MIN_VALUE);

//结果


  

 

 

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

布尔类型变量

boolean value = true;
System.out.println(value);
 

1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
2. Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.
3. boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定
 

boolean value = true;
System.out.println(value + 1);
// 代码编译会出现如下错误
Test.java:4: 错误: 二元运算符 '+' 的操作数类型错误
System.out.println(value + 1);
^
第一个类型: boolean
第二个类型: int
1 个错误
 

字符串类型变量

String name = "zhangsan";
System.out.println(name);
 

1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值.
2. 和上面的类型不同, String 不是基本类型, 而是引用类型。
3. 字符串中的一些特定的不太方便直接表示的字符需要进行转义.


转义字符示例:
 

// 创建一个字符串 My name is "张三"
String name = "My name is \"张三\"";
System.out.println(name);

字符串的 + 操作, 表示字符串拼接:

String a = "hello";
String b = "world";
String c = a + b;
System.out.println(c); 

还可以用字符串和整数进行拼接:
 

String str = "result = ";
int a = 10;
int b = 20;
String result = str + a + b;
System.out.println(result);
// 执行结果
result = 1020

以上代码说明, 当一个 + 表达式中存在字符串的时候, 都是执行字符串拼接行为.
因此我们可以很方便的使用 System.out.println 同时打印多个字符串或数字
 

int a = 10;
int b = 20;
System.out.println("a = " + a + ",b = " + b)
 

常量

常量有两种形式: 直接表示数据的普通常量和标识符常量。 前者如3.14159、100、 'A'、
'\n ' 、true、false、null 等; 后者有final 修饰的变量, 只能赋值一次, 举例如下:
 

int n = 3 + 5;

final double PI = 3.1415;

PI = 3.14;//再次赋值时编译出错

1.整型常量

Java 根据字节长度和取值范围分为byte、short、int、long 几种, 常量的写法是相同的, 只
是允许的整数范围不同

在表达式中整数类型默认为int 类型,long 常量必须以 L 或l 做结尾, 为避免混淆, 推
荐以大写字母 L 结尾。 整型常量可以用十六进制、 十进制、 八进制的形式写出。
很长的数字可读性不好, 从JDK1.7 开始在int 和long 中支持下画线分隔, 支持使用二
进制字面量的表示方式。 举例如下:

int ix=0xff;                                                                    //十六进制以0x 开头

int i10=126;                                                                 //十进制数不能以0 开头,0 除外

int i8=067;                                                                   //八进制以0 开头

int n=1_234_5678;                                                      //下画线分隔

int binary = 0b1001_1001_1011_1111;                       //二进制字面量的表示方式
 

2.浮点型常量

Java 语言有单精度float(32bits) 、 双精度浮点数double(64bits) 两种类型。 浮点型有下
面两种表示形式。
(1) 小数形式: 12.37F、 -0.5234D。
(2) 指数形式: 2.5E4、2.1E-7。
注意: 浮点型常量默认为double, 如果要指定单精度浮点数类型请在浮点数后加 F(f) 。
举例如下:
 

float f1=3.14;                                         //错误

float f2=1.0f;
float f3=(float)3.14;                                 //强制转换

3.字符型常量

System.out.println((char)65) ;                          //输出编码为65 的字符A
System.out.println( '\u2666 ') ;                         //输出编码为2666 的字符◆
System.out.println( 'A ' +5) ;                             //输出70, 'A ' 自动转换为65 运算
System.out.println( 'A ' + 'a ') ;                          //输出162, 相当于65+97
System.out.println( '9 -' '0 ') ;                            //输出9, 相当于57-48

4.字符串常量

String 常量是用双引号括起来的 Unicode 字符序列。 String 类型不属于8 种基本类型,
而属于引用类型,String 与char 数组有着非常紧密的联系。
 

Strings1=newString("abc") ;
Strings2="abc" ;                                 //与上一行写法等价
char[] ca=s1.toCharArray() ;              //将字符串s1 转换为字符数组
char c=s2.charAt(0) ;                         //将字符串s2 中第0 位的字符赋给字符变量c

5.布尔常量

布尔常量只有true 和false 两种取值, 长度为1Byte。 与 C 语言不同,true 和false 不对
应任何0 和非0 的数值。 关系表达式和逻辑表达式的运算结果为布尔类型。

6.null

null 表示空, 引用类型的指针不指向任何对象。
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿瞒有我良计15

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值