导航:首页 > 编程语言 > javaboolean几个字节

javaboolean几个字节

发布时间:2024-10-04 20:17:01

1. java-基本数据类型有哪几个

Java的基本数据类型在Java中,每个存放数据的变量都是有类型的,如:char ch;float x;int a,b,c;ch是字符型的,就会分配到2个字节内存。不同类型的变量在内存中分配的字节数不同,同时存储方式也是不同的。所以给变量赋值前需要先确定变量的类型,确定了变量的类型,即确定了数据需分配内存空间的大小,数据在内存的存储方式。1. Java中的数据类型Java中的数据类型有基本数据类型和引用数据类型两大类,图2-1呈现了Java中数据类型的概貌。图2-1 Java中的数据类型概貌本讲就基本数据类型进行讨论,引用数据类型将在下一篇中论述。以下讨论每一种数据类型时,对常量和变量作分别说明。所谓常量,就是直接的值;而变量则是放置常量的容器,除了放置常量之外,也可以给变量一个运算式,变量中的值是可变的。2. 布尔型—boolean布尔型又名逻辑型,它是最简单的数据类型,在流程控制时常会用到。有C++编程经验的学习者,要特别看清,Java中的布尔型数据不对应于任何整数值。布尔型常量:true和false。需要注意的是,布尔常量的组成字母一律都是小写的。 布尔型变量:以boolean定义的变量,如:boolean b = true; //定义变量b是boolean,且值为true3. 字符类型—char(1)字符常量字符常量指用单引号括起来的单个字符,如‘a’,‘A’。请特别注意,字符的定界符是单引号,而非双引号。除了以上所述形式的字符常量值之外,Java还允许使用一种特殊形式的字符常量值,这通常用于表示难以用一般字符来表示的字符,这种特殊形式的字符是以一个“\”开头的字符序列,称为转义字符。Java中的常用转义字符见表2-1。表2-1 Java中的转义字符转义字符 描述\ddd 1~3位八进制数所表示的字符(ddd)\uxxxx 1~4位十六进制数所表示的字符(xxxx)如‘\u0061’表示‘a’\’ \” 单引号字符和双引号字符\\ 反斜杠\r 回车\n 换行\t 横向跳格\f 走纸换页\b 退格(2)字符变量以char定义的变量,如char c='a';要特别加以说明的是,Java的文本编码采用Unicode集,Java字符16位无符号型数据,一个字符变量在内存中占2个字节。例1:编程测试十六进制数41、51对应的字符,并相隔一个tab位输出。分析:已知十六进制数,求字符。根据表2-1,可用'\uxxxx'的转义字符形式来表示所求字符,然后直接输出即可。[HDTest.java] class HDTest{ public static void main(String[] args){ char a='\u0041'; char b='\u0051'; System.out.println(a+" "+b); //字符之间以若干空格相间 } }程序运行结果:A Q4. 定点类型(整型)定点类型包括了字节型、整型、短整型和长整型,它们在内存中虽然占据的字节数互不相同,但它们的存储方式是同样的,所以这里把这些类型归并在一起讨论。“定点”的意思是把小数点定在末尾,小数点后没有数字的数据,Java中通常把它们称为整数。(1)定点常量定点常量是整型常数,它可用十进制、八进制、十六种进制三种方式来表示。ナ十进制定点常量:如123、-456、0。ナ八进制定点常量:以0前导,形式为0dd...d。如0123表示十进制数83,-011表示十进制数-9。ナ十六进制定点常量:以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。(2)定点变量定点变量即整型变量,可细分成字节型变量、整型变量、短整型变量和长整型变量四种。表2-2对各种定点变量的开销内存字节数和数值范围作简要说明。表2-2 关于整型变量的说明 定点变量 占字节数 范 围字节型byte 1 [-128,127],即从-27~27-1短整型short 2 [-32 768, 32 767],即-215~215-1整型int 4 [-2 147 483 648, 2 147 483 647],即-231~231-1长整型long 8 -263~263-1需要注意的是,如果要将一定点常量赋值给一个定点变量,需要查验常量是否在该变量的表达范围内,如超出范围程序会编译出错。如:byte b = 200; //JCreator编译时错误信息是“可能损失精度”例2:阅读程序,分析其运行结果。[OHTest.java] class OHTest{ public static void main(String[] args){ int x = 010; System.out.println("x = "+ x); int y = 0x10; System.out.println("y = " + y); } }程序运行结果略,请思考并调试验证。5. 浮点型(实型)(1)浮点常量即带小数点的实型数值,可以由直接带小数点的数值和科学计数法两种形式来表示:ナ带小数点的数值形式:由数字和小数点组成,如0.123、.123、123.、123.0。ナ科学计数法表示形式:由一般实数和e±n(E±n)组成,如12.3e3、5E-3,它们分别表示12.3×103和5×10-3。需要注意的是,e或E之前必须有数字,且e或E后面的指数必须为整数。(2)浮点变量浮点变量有单精度变量和双精度变量之分,不同的精度开销的内存字节数和表达的数值范围均有区别。两种浮点变量占内存字节数和数值范围见表2-3。表2-3 单精度变量和双精度变量简要说明浮点变量 占字节数 范围单精度float 4 3.4e-038~3.4e+038,-3.4e+038~-3.4e-038 双精度double 8 1.7e-308~1.7e+308,-1.74e+038~-3.4e-038浮点常量也有单精度和双精度之分,前面列出的常量均是双精度常量,如果要特别说明为单精度常量,可以数据末尾加上f或F作为后缀,如12.34f。如果要特别指明一个浮点常量是双精度常量,数据末尾不需要添加后缀,或者在数据末尾加上d或D作为后缀,如12.34d。例3:输入一个圆的半径,求圆面积。分析:圆半径在编写程序时是不确定的,其值在程序运行时输入,这样程序就比较通用,可以处理不同半径的求面积和周长问题。这就涉及数据输入的问题,参照本讲第一节,输入数据通过Scanner扫描器解决。[CircleArea.java] import java.util.Scanner; class CircleArea{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); double r = sc.nextDouble(); double area = Math.PI * r * r; System.out.println(area); } }

2. java语言有几种数据类型怎样申明和赋值

一、基本数据类型
整型:byte、short、int、long (在计算机中以二进制补码格式存储)

浮点型:float、double (在计算机中以IEEE754格式存储)

字符型:char (在计算机中以unicode码格式存储)

布尔型:boolean (只有true和false两个值)

二、 1.长整型:long

定义:long a=100;int b=a; (编译出错)

给a重新赋值:long a=2147483648; (编译出错)

定义:long a=2147483648L;(正确,说明此时可以是long型的取值范围)

说明在long型的数据后不加L/l时,数据仍为long型,但其取值范围却是int型的取值范围;数据后加L/l时,取值范围才是long型的取值范围。

2.浮点型:long

定义:float a=19; 输出a时为19.0

定义:float a=19.1; (编译出错)

定义:float a=19.1f; (正确)

说明在 float型的数据后不加F/f,则数据不能有小数位,但输出时,能够输出一位小数;若在float型的数据后加上F/f,则数据可以有小数位;

三、类型转换(注:boolean型不会发生类型转换,基本类型和复合类型不能相互转换)

1.自动转换

1)赋值转换:用于短字节的数据类型转换成长字节的数据类型(byte型的数据不能转换成char型,short型和char型数据也不能相互转换)

2)单目运算符提升

++、——运算符不会自动提升,+(正)、-(负)会将byte、short、char型的数据自动转换成int型的数据

3)双目运算符提升

如果有一个操作数是double型的,则把另一个转换成double型;否则如果有一个操作数是float型的,则把另一个转换成float型;否则 如果有一个操作数是long型的,则把另一个转换成long型;否则两个操作数都转换成int型。

4)三目运算符<op1> ? <op2> : <op3>其中op1必须是boolean型的,而op2和op3两操作数必须是能够自动转换成相同类型的数据,op2和op3会自动提升为两操作数中字节较长的一个,并且结果为提升后的类型。

如:byte a1=20;

short a2=10;

boolean b=true;

short c = b ?

a1 : a2;

结果为short型的数据c

2.强制转换

例子:

int a;

byte b=(byte)a;

定义:a=-126;

(分析:int形的数据有4个字节,而byte形的数据只有1个字节,所以只取int型数据的最后一个字节)

a的原码: 10000000,00000000,00000000,01111110

补码: 11111111,11111111,11111111,10000010

法一:r=(10000010)=130 (此时将 10000010 看成是纯的二进制数去计算,而不考虑它的符号位); byte型数据范围〔-128,127〕,由于 r>127,所以 r=r-M (若整型数据值域[-L,R],则M=L+R+1),如果r还不在byte型数据的取值范围内,则继续 r=r-M 直至r在其取值范围内,取得r后,即为byte型的 b .此处r=-126,所以输出b为-126.

法二:直接将int型数据的最后一个字节看成是byte型数据的补码形式,在将补码转换成原码,即得到 b

四、逻辑运算符

1.&&和|| (&&的优先级要高于||的)

特点:只要左操作数已经得出整个表达式的值,就不再计算右操作数的之值,左右操作数必须为boolean型的。

例子:

boolean test1= ++x==-1 && ++x==1 || ++x=2;
boolean test2= ++y==-1 || ++y==1 && ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
结果:1 false
2 true

2.&和| (逻辑位运算符)

特点:先把两个操作数的值计算出来,然后再进行逻辑运算

int x=-1,y=-1;
boolean test1= ++x==-1 & ++x==1 | ++x=2;
boolean test2= ++y==-1 | ++y==1 & ++y=2;
System.out.println(x+" "+test1);
System.out.println(y+" "+test2);
结果: 2 false
2 true

五、移位运算

<< (左移)高位丢失、低位以0填充

>> (右移) 低位丢失、高位以符号位填充

>>> (无符号位右移) 低位丢失、高位以0填充

此运算符不会对左右两操作数作算术提升,但会对左操作数进行单独提升,若为byte、short、char、int型,则得到结果为int型,若为long型,则结果为long型,但左右操作数均不能为浮点型,否则出错。

当左操作数为int型时,右操作数的低5位才有用,这样可以防止移位超过int型所具有的位数,当左操作数为long型时,右操作数的低6位才有用。

例子:

int a=-2;
short b=-10;
int c=a>>b;

b的补码:11111111,11111111,11111111,11110110

取b的最后5位, r=(10110)=22;

a的补码:11111111,11111111,11111111,11111110

将a向右移动22位,再在高位补上1,得到 11111111,11111111,11111111,11111111 ,转换成原码得到 c=-1

六、赋值运算

1.简单赋值运算

表达式: <变量>=<表达式>

左操作数可以事先没有赋值

表达式的类型必须和变量的类型相同,或能赋值转换成变量的类型,

2.组合赋值运算

表达式:<变量> op= <表达式>

int a=10;

double b=23.3;

a*=b;

左操作数事先一定要赋值

左边的类型和右边的类型不一定要相同,此处a*b得到的是double型的,组合运算符会自动把double型的值转换成int型的值存入变量a中。

3. java中的数据类型

java中的数据类型分两大类分别是基本类型和引用数据类型。

一、基本类型

1)Java中的数据类型有八种,即基本类型。具体如下:

数据类型 位数 取值范围:

Boolean 1 True|False

Byte 8 -128~127

Short 16 -32768~32767

Int 32 -2e31~2e31-1

Long 64 -2e63~2e63-1

Float 32 略

Double 64 略

Char 16 0~65535

‘ /u0000’ ~’uFFFF‘

二、引用数据类型

1)定义一个byte变量 如:byte b= -256;

由于-256超出了’Byte’的取值范围,所以要使程序不报错,有一下几种解决方法:

A:更改变量的数据类型(如:将byte改为int);

B:更改变量名的赋值,使其包括在变量的数据类型的值域内;

C:进行强制转换:如: byte b=(byte)-256:

‘进行强制转换后,虽然程序不在报错,但是有可能会使原值的精度收到影响’

D:定义一个浮点类型数时,记得要在数值的后面加上“f”或“F”。(如:Float f=10000.0f;)

E:若定义 Char c=a;定义 int n=c;则输出的n值为“a“的ASCII值,即97。

2)引用数据类型的定义

A:对象都是引用数据类型

B:应用类型使用NEW调用构造方法进行赋值

C:在Java中,除了基本数据类型以外,其余的全都属于引用数据类型, 如:

a:API中的类,如String,File等;

b:数据;

c:自定义的类,如Cars,Student

d:对象全部是引用数据类型。

(3)javaboolean几个字节扩展阅读

其他数据类型:

在java中,String本身也提供了很多的方法供我们使用:

获取到指定索引位置的字符:char c = 字符串.charAt(索引位置);

获取到指定索引位置的字符:char c = 字符串.charAt(索引位置);

获取第一次出现在字符串中的字符:int index = 字符串.index('a');

获取在字符串中字符的索引位置:int index = 字符串.index('a',1);

如果想比较两个字符串是否相等:字符串.equeals(字符串);

判断字符串是否为空:字符串.isEmpty();

获取字符串的长度:字符串.length();

根据某一个条件,将字符串进行分割:字符串.split("abc");

根据条件取出内容:字符串.substring(开始位置,结束位置);



4. JAVA中8个数据类型的取值范围是多少

在JAVA中一共有八种基本数据类型,他们分别是
byte、short、int、long、float、double、char、boolean

整型:
其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样。

byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1);

short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1) ;

int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1) ;

long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1);

可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。

在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。

浮点型 :

float和double是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同 ;

float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节 ;

double 1.797693e+308~ 4.9000000e-324 占用8个字节 ;

double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。

浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

boolean型(布尔型):

这个类型只有两个值,true和false(真和非真);

boolean t = true;
boolean f = false;

char型(文本型) :

用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容
字符的存储范围在u0000~uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1。

5. java有几种数据类型

四种八类:

基本数据类型

整数类型:


阅读全文

与javaboolean几个字节相关的资料

热点内容
干程序员可以干兼职吗 浏览:640
go中文pdf 浏览:530
电脑dns的服务器地址设置 浏览:530
编程出1000以内水仙花数 浏览:113
程序员多大转行 浏览:879
单片机灯 浏览:871
如何启动u8管理服务器 浏览:280
程序员消费多少 浏览:510
编译室半年总结怎么写范文 浏览:469
windowsapi编程入门教程 浏览:837
单片机51系列 浏览:58
python迭代器是什么 浏览:538
bat备份文件夹删除 浏览:928
推拉的文件夹 浏览:517
嵌入式linux前景 浏览:13
屏幕滚动命令 浏览:504
解压珠含毒素 浏览:770
美文诵读配乐用什么app 浏览:567
java代码设置字体 浏览:450
linuxsamba重启命令 浏览:825