java变量常量基础入门.docx

上传人:b****1 文档编号:15135397 上传时间:2023-07-01 格式:DOCX 页数:14 大小:90.47KB
下载 相关 举报
java变量常量基础入门.docx_第1页
第1页 / 共14页
java变量常量基础入门.docx_第2页
第2页 / 共14页
java变量常量基础入门.docx_第3页
第3页 / 共14页
java变量常量基础入门.docx_第4页
第4页 / 共14页
java变量常量基础入门.docx_第5页
第5页 / 共14页
java变量常量基础入门.docx_第6页
第6页 / 共14页
java变量常量基础入门.docx_第7页
第7页 / 共14页
java变量常量基础入门.docx_第8页
第8页 / 共14页
java变量常量基础入门.docx_第9页
第9页 / 共14页
java变量常量基础入门.docx_第10页
第10页 / 共14页
java变量常量基础入门.docx_第11页
第11页 / 共14页
java变量常量基础入门.docx_第12页
第12页 / 共14页
java变量常量基础入门.docx_第13页
第13页 / 共14页
java变量常量基础入门.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java变量常量基础入门.docx

《java变量常量基础入门.docx》由会员分享,可在线阅读,更多相关《java变量常量基础入门.docx(14页珍藏版)》请在冰点文库上搜索。

java变量常量基础入门.docx

java变量常量基础入门

1数据类型

/*

数据类型:

Java是一种强类型的语言,针对每一种数据都定义了明确的数据类型。

数据类型分类:

A:

基本数据类型

B:

引用数据类型(类,接口,数值)

基本数据类型:

4类8种

A:

整数占用字节数

byte1

short2

int4

long8

B:

浮点数

float4

double8

C:

字符

char2

D:

布尔

boolean1

注意:

整数默认是int类型

浮点数默认是double类型。

长整型后缀用L或者l标记。

建议使用L。

单精度浮点数用F或者f标记。

建议使用F。

*/

classDataTypeDemo{

publicstaticvoidmain(String[]args){

//定义变量的格式:

//数据类型变量名=初始化值;

//定义一个字节变量

byteb=10;

System.out.println(10);

System.out.println(b);

//定义一个短整型变量

shorts=100;

System.out.println(s);

//定义一个整型变量

inti=1000;

System.out.println(i);

//超过了int的范围

//intj=1000000000000;

longj=1000000000000L;

//longj=100L;

System.out.println(j);

//定义浮点数据变量

floatf=12.345F;

System.out.println(f);

doubled=12.345;

System.out.println(d);

//定义字符变量

charch='a';

System.out.println(ch);

//定义布尔变量

booleanflag=true;

System.out.println(flag);

}

}

2使用变量注意的问题

/*

使用变量的时候要注意的问题:

A:

作用域

变量定义在哪个大括号内,它就在这个大括号内有效。

并且,在同一个大括号内不能同时定义同名的变量。

B:

初始化值

没有初始化值的变量不能直接使用。

你只要在使用前给值就行,不一定非要在定义的时候立即给值。

推荐在定义的时候给值。

定义变量的格式:

a:

数据类型变量名=初始化值;

b:

数据类型变量名;

变量名=初始化值;

C:

在一行上建议只定义一个变量

可以定义多个,但是不建议

*/

classDataTypeDemo2{

publicstaticvoidmain(String[]args){

//定义变量

intx=100;

//错误,不能有同名的

//intx=200;

//定义变量必须给值

//inty;

//System.out.println(y);

intz;

z=100;

System.out.println(z);

//在一行上定义多个变量

//inta=10;intb=20;intc=30;

//上面的写法可以,但是不建议。

inta=10;

intb=20;

intc=30;

//intd,e;

//d=40;

//e=50;

//intf,intg;//错误

//inth;inti;//正确

}

}

3运算符

/*

+是一个运算符(我们等会讲解)。

做加法运算的。

一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。

注意:

boolean类型不能转换为其他的数据类型

默认转换(从小到大的转换)

A:

byte,short,char—int—long—float—double

B:

byte,short,char相互之间不转换,他们参与运算首先转换为int类型

*/

classDataTypeDemo3{

publicstaticvoidmain(String[]args){

//直接输出的方式做加法

//System.out.println(3+4);

//两个int类型做加法

intx=3;

inty=4;

intz=x+y;

System.out.println(z);

//定义一个byte类型,一个int类型,做加法

bytea=3;

intb=4;

System.out.println(a+b);

//可能损失精度

//bytec=a+b;

intc=a+b;

System.out.println(c);

}

}

4强制转换

/*

强制转换:

从大的数据类型到小的数据类型。

格式:

目标数据类型变量=(目标数据类型)(被转换的数据);

注意:

不要随意的去使用强制转换,因为它隐含了精度损失问题。

*/

classDataTypeDemo4{

publicstaticvoidmain(String[]args){

bytea=3;

intb=4;

//这个肯定没有问题

//intc=a+b;

//bytec=7;

//这个是有问题的

//bytec=a+b;

//用强制类型转换改进

bytec=(byte)(a+b);

System.out.println(c);

}

}

7

/*

思考题1:

请问下面这个有没有问题

doubled=12.345;

floatf=d;

思考题2:

看看下面两个定义有没有区别呢?

floatf1=(float)12.345;

floatf2=12.345f;

f1其实是通过一个double类型转换过来的。

而f2本身就是一个float类型。

*/

classDataTypeDemo5{

publicstaticvoidmain(String[]args){

//把double赋值给float,加了强制类型转换

doubled=12.345;

floatf=(float)d;

//看看下面两个定义有没有区别呢?

floatf1=(float)12.345;

floatf2=12.345F;

}

}

6

/*

面试题:

byteb1=3,b2=4,b;

b=b1+b2;

b=3+4;

哪句是编译失败的呢?

为什么呢?

b=b1+b2;是有问题的。

因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。

常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。

*/

classDataTypeDemo6{

publicstaticvoidmain(String[]args){

//定义了三个byte类型的变量,b1,b2,b3

//b1的值是3,b2的值是4,b没有值

byteb1=3,b2=4,b;

//b=b1+b2;//这个是类型提升,所有有问题

b=3+4;//常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。

}

}

5

/*

byteb=130;有没有问题?

如果我想让赋值正确,可以怎么做?

结果是多少呢?

练习:

byteb=(byte)300;

*/

classDataTypeDemo7{

publicstaticvoidmain(String[]args){

//因为byte的范围是:

-128到127。

//而130不在此范围内,所以报错。

//byteb=130;

//我们可以使用强制类型转换

byteb=(byte)130;

//结果是多少呢?

System.out.println(b);

}

}

/*

分析过程:

我们要想知道结果是什么,就应该知道是如何进行计算的。

而我们又知道计算机中数据的运算都是补码进行的。

而要得到补码,首先要计算出数据的二进制。

A:

获取130这个数据的二进制。

00000000000000000000000010000010

这是130的原码,也是反码,还是补码。

B:

做截取操作,截成byte类型的了。

10000010

这个结果是补码。

C:

已知补码求原码。

符号位数值位

补码:

10000010

反码:

10000001

原码:

11111110

*/

4

/*

看程序写结果

通过字符和一个整数相加,我们给出一张表:

ASCII码表。

通过看完这张表以后,我们要记住三个值:

'a'97

'A'65

'0'48

*/

classDataTypeDemo8{

publicstaticvoidmain(String[]args){

//直接输出一个字符

System.out.println('a');//a

//输出一个字符和一个整数做加法

System.out.println('a'+1);//98

}

}

3

/*

看程序写结果

字符串数据和其他数据做+,结果是字符串类型。

这里的+不是加法运算,而是字符串连接符。

*/

classDataTypeDemo9{

publicstaticvoidmain(String[]args){

System.out.println("hello"+'a'+1);//helloa1

System.out.println('a'+1+"hello");//98hello

System.out.println("5+5="+5+5);//5+5=55

System.out.println(5+5+"=5+5");//10=5+5

}

}

9float是怎么存储的

float类型数字在计算机中用4个字节存储。

遵循IEEE-754格式标准:

一个浮点数有2部分组成:

底数m和指数e

底数部分使用二进制数来表示此浮点数的实际值

指数部分占用8bit的二进制数,可表示数值范围为0-255

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。

所以,float类型的指数可从-126到128

底数部分实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit

科学计数法。

格式:

SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM

S表示浮点数正负

E指数加上127后的值得二进制数据

M底数

举例:

17.625在内存中的存储

首先要把17.625换算成二进制:

10001.101

整数部分,除以2,直到商为0,余数反转。

小数部分,乘以2,直到乘位0,进位顺序取。

在将10001.101右移,直到小数点前只剩1位:

1.0001101*2^4因为右移动了四位

这个时候,我们的底数和指数就出来了

底数:

因为小数点前必为1,所以IEEE规定只记录小数点后的就好。

所以,此处的底数为:

0001101

指数:

实际为4,必须加上127(转出的时候,减去127),所以为131。

也就是10000011

符号部分是整数,所以是0

综上所述,17.625在内存中的存储格式是:

01000001100011010000000000000000

换算回去:

自己做。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2