java 直接量是什么?java问题,请问在java中什么是直接量
大家好,感谢邀请,今天来为大家分享一下java 直接量是什么的问题,以及和java问题,请问在java中什么是直接量的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
java问题,请问在java中什么是直接量
直接量是指在程序中通过源代码直接给出的值,代码如下:
public static void main(String[] args)
{
//在这行代码中,为变量a所分配的初始值5就是一个直接量
int a= 5;
}
直接量的类型
并不是所有的数据类型都可以指定直接量,能指定直接量的通常只有三种类型,基本类型,字符串类型和null类型,具体而言,Java支持如下8种类型的直接量。
1),int类型的直接量:在程序中直接给出的整数数值
2),long类型的直接量:在整形数值后添加l或者L就变成了long类型的直接量
3),float类型的直接量:在一个浮点数后增加f或F就变成了float类型的直接量,这个浮点数可以是标准的小数形式,也可以是科学计数法形式
4),double类型的直接量:直接给出一个标准小数形式或者科学计数法形式的浮点数就是double类型的直接量
5),double类型的直接量:这个类型的直接量只有true和false
6),char类型的直接量:char类型的直接量有三种形式,分别是用单引号括起来的字符,转义字符和Unicode值表示的字符
7),String类型的直接量:一个用双引号括起来的字符序列就是String类型的直接量
8),null类型的直接量:这个类型的直接量只有一个值,即null
在上面的8种类型的直接量中,null类型是一种特殊类型,它只有一个值,null,而且这个直接量可以赋给任何引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即
还未指向任何有效对象。
直接量的赋值
通常总是把一个直接量赋值给对应类型的变量,除此之外,还有两点需要注意:
1),Java还支持数值之间的自动类型转换,因此允许把一个数值直接量直接赋给另一种类型的变量,这种赋值必须是系统所支持的自动类型转换。
比如把int类型的直接量赋给一个long类型的变量。
2),String类型的直接量不能赋给其他类型的变量,null类型的直接量可以直接赋给任何引用类型的变量,包括String类型。
boolean类型的直接量只能赋给boolean类型的变量,不能赋给其他任何类型的变量。
关于字符串补充
先补充一个概念,什么是常量池?常量池(constant pool)值的是在编译期被确定,并被保存在已编译的.class文件中的一些数据,常量池包括了一些类,方法,接口中的常量
也包括字符串直接量。
当程序第一次使用某个字符串直接量时,Java会使用常量池来缓存该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,Java会直接使用常量池中的字符串直接量。
String类是一个典型的不可变类,因此String对象创建出来就不可能被改变,所以无须担心共享String对象会导致混乱。
Java会确保每个字符串常量只有一个,不会产生多个副本。代码中使用一个字符串,他们在编译期就被确定下来了,在使用的时候,直接从该常量池中拿出来就好了。
public static void main(String[] args)
{
String name1="LinkinPark";
String name2="LinkinPark";
String name3="Linkin"+"Park";
//下面2行代码输出都为true
System.out.println(name1== name2);
System.out.println(name1== name3);
}
初学者之Java基本数据类型都有什么呢
变量就是用来储存值而保留的内存位置。这就意味着当你创建一个变量时就会在内存中占用一定的空间。
基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母。
Java中有两种有效地数据类型:原始数据类型,引用数据类型。
1.原始数据类型
Java支持 8种原始数据类型。原始数据类型是由该语言预先定义的并用关键词命名的。下面让我们深入学习一下这 8种数据类型。
字节型
byte
字节型是一种 8位有正负的二进制整数
最小值是-128(-2^7)
最大值是 127(2^7-1)
默认值为 0
字节型数据类型主要是为了在大型数组内节省空间,主要是替代整数由于字节型比整数小 4倍。
例如:byte a= 100, byte b=-50
短整形
short
短整数是一种 16位有正负的二进制整数
最小值是-32768(-2^15)
最大值是 32767(2^15-1)
短整数类型的数据也可以像字节型一样用于节省空间。短整数比整数小两倍
默认值为 0
例如:short s= 10000, short r=-20000
整数型
int
整数型是一种 32位有正负的二进制整数
最小值是- 2,147,483,648(-2^31)
最大值是 2,147,483,647(2^31-1)
整数型一般默认被应用于整数值除非担心内存不够用。
默认值为 0
例如:int a= 100000, int b=-200000
长整形
long
长整型是一种 64位有正负的二进制整数
最小值是-9,223,372,036,854,775,808(-2^63)
最大值是 9,223,372,036,854,775,807(2^63-1)
这种数据类型一般是在需要比整数型范围更大时应用。
默认值为 0L
例如:long a= 100000L, int b=-200000L
浮点型
float
浮点型数据是一种单精度的 32位 IEEE 754标准下的浮点数据。
浮点型数据主要是为了在大型浮点数字数组中节约内存。
默认值是 0.0f。
浮点型数据不能用于如货币这样的精确数据。
例如:float f1= 234.5f
双精度型
double
双精度型数据是一种双精度的 64位 IEEE 754标准下的浮点数据。
这种数据类型主要是默认被用于表示小数的值,一般是默认的选择。
双精度型数据不能用于如货币这样的精确数据。
默认值是 0.0d
例如:double d1= 123.4
布尔型
boolean
布尔型数据代表一个信息比特。
它只有两个可能的值:真(true)和假(false)
这种数据类型用于真假条件下的简单标记。
默认值是假(false)
例如:boolean one= true
字符型
char
字符型数据是简单的 16位 Unicode标准下的字符。
最小值是:'\u0000'(或 0)。
最大值是:'\uffff'(或 65,535)。
字符型数据可以用来储存任意字母。
例如: char letter A(字符型的字母A)='A'
2.引用数据类型
引用数据类型是由类的编辑器定义的。他们是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee, Puppy等等。
类对象和数组变量就是这种引用数据类型。
任何引用数据类型的默认值都为空。
一个引用数据类型可以被用于任何声明类型和兼容类型的对象。
例如:Animal animal= new Animal("giraffe");
Java常量
常量是代表固定值的源代码。他们直接以代码的形式代表而没有任何估计。常量可以被分配给任意的原始变量类型。例如:
bytea=68;chara='A';
字节型,整数型,长整型和短整型也可以由十进制,十六进制和八进制计数系统表示。
当用这些技术系统表示直接量时,前缀 0是为了标明八进制,前缀 0x是为了标明十六进制。例如:
intdecimal=100;intoctal=0144;inthexa=0x64;
Java中的字符串型常量的规定和其他大多数语言一样,也是要写在双引号中间。字符串型直接量的例子如下:
"HelloWorld""two\nlines""\"Thisisinquotes\""
字符和字符串型常量可以包含任意的 Unicode字母。例如:
chara='\u0001';Stringa="\u0001";
Java语言也支持一些特殊的转义序列的字符和字符串直接量。他们是:
转义字符含义
\n换行(0x0a)
\r回车(0x0d)
\f换页(0x0c)
\b退格(0x08)
\s空格(0x20)
\t tab
\"双引号
\'单引号
\反斜杠
\uxxxx十六进制 UNICODE字符(xxxx)
欢迎想学习Java的小伙伴加入Java学习交流群,群号码:495273252【长按复制】我们一起学Java!
java语言中'8'和8描述有什么不同
由单引号括起来的'8'是字符,是char类型的,在java中char类型是unicode编码的,长度是2字节。'8'的代码点('8'的编码)是56。
8是数字,是整型。在java中,整型默认是用int类型来储存,int类型的长度是4字节。
而如果是双引号的"8",就是字符串常量(也叫字符串字面量或字符串直接量)。在java中,字符串是类String的对象,且字符串是不可变对象。
文章到此结束,如果本次分享的java 直接量是什么和java问题,请问在java中什么是直接量的问题解决了您的问题,那么我们由衷的感到高兴!