java基础数据类型入门.docx

上传人:b****5 文档编号:7180918 上传时间:2023-01-21 格式:DOCX 页数:18 大小:257.91KB
下载 相关 举报
java基础数据类型入门.docx_第1页
第1页 / 共18页
java基础数据类型入门.docx_第2页
第2页 / 共18页
java基础数据类型入门.docx_第3页
第3页 / 共18页
java基础数据类型入门.docx_第4页
第4页 / 共18页
java基础数据类型入门.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

java基础数据类型入门.docx

《java基础数据类型入门.docx》由会员分享,可在线阅读,更多相关《java基础数据类型入门.docx(18页珍藏版)》请在冰豆网上搜索。

java基础数据类型入门.docx

java基础数据类型入门

1关键字

●关键字概述

•被Java语言赋予特定含义的单词

●关键字特点

•组成关键字的字母全部小写

●关键字注意事项

•goto和const作为保留字存在,目前并不使用

•类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

●1:

保留字:

在JDK的新版本中可能提升为关键字

●2:

通过一个案例演示Notepad对关键字有颜色标记

●3:

判断下列哪些是关键字

●class,HelloWorld,public,static,void,main,String,System

2标识符

●标识符概述

•就是给类,接口,方法,变量等起名字时使用的字符序列

●组成规则

•英文大小写字母

•数字字符

•$和_

●注意事项

•不能以数字开头

•不能是Java中的关键字

•区分大小写

●1:

起名字,不能太随便,无规矩,不成方圆。

●2:

针对注意事项,举例演示

●3:

下面那些合法,那些不合法:

●HelloWorld,DataClass,_983,$bS5_c7,class,DataClass#,98.3,HellWorld

标识符(常见命名规则)

●包(其实就是文件夹,用于解决相同类名问题)

•单级和多级分别举例

●类或者接口

•一个单词和和多个单词分别举例

●方法和变量

•一个单词和和多个单词分别举例

●常量

•一个单词和和多个单词分别举例

●包(其实就是文件夹,用于解决相同类名问题)

•单级和多级分别举例

●类或者接口

•一个单词和和多个单词分别举例

●方法和变量

•一个单词和和多个单词分别举例

●常量

•一个单词和和多个单词分别举例

注释

●注释概述

•用于解释说明程序的文字

●Java中注释分类格式

•单行注释

•格式:

//注释文字

•多行注释

•格式:

/*注释文字*/

•文档注释

格式:

/**注释文字*/

1:

对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。

2:

对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具javadoc所解析,

生成一套以网页文件形式体现的该程序的说明文档。

后面讲解

●注释是一个程序员必须要具有的良好编程习惯。

●初学者编写程序可以养成习惯:

先写注释再写代码。

●将自己的思想通过注释先整理出来,在用代码去体现。

●因为代码仅仅是思想的一种体现形式而已。

●把HelloWorld案例加入注释写出来

●需求:

写一个程序,在控制台输出HelloWorld

●分析:

●写一个java程序,首先定义类。

●程序要想能够被jvm调用,必须定义main方法。

●程序要想有输出结果,必须用输出语句。

●实现:

●定义类用的是class关键字,后面跟的是类名

●main方法基本格式

●输出语句基本格式

●//这是我的HelloWorld案例

●//用class定义类,HelloWorld是类名

●classHelloWorld{

●/*

●这是main方法

●是程序的入口

●被jvm自动调用

●*/

●publicstaticvoidmain(String[]args){

●/*

●这是输出语句

●""里面放的是在控制台上输出的内容

●*/

●System.out.println("HelloWorld");

●}

●}

●解释说明程序,提高程序的阅读性

●可以帮助我们排错

后面我们会讲解更高级的排错方式

1:

通过案例演示注释如何帮助我们排错

通过注释部分程序看效果

4常量

●常量概述

•在程序执行的过程中其值不可以发生改变

●Java中常量分类

•字面值常量

•自定义常量(面向对象部分讲)

●字符串常量用双引号括起来的内容

●整数常量所有整数

•12,23

●小数常量所有小数

•12.34,56.78

●字符常量用单引号括起来的内容

•‘a’,’A’,’0’

●布尔常量较为特有,只有true和false

●空常量null(数组部分讲解)

●1:

字符串是一个常量都可以输出,所以,我们也可以把其他的常量进行输出。

●Java针对整数常量提供了4种表现形式

•二进制

•八进制

•十进制

•十六进制

●进制概述

进制:

就是进位制,是人们规定的一种进位方法。

对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。

二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

二进制的由来:

任何数据在计算机中都是以二进制的形式存在的。

二进制早期由电信号开关演变而来。

一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。

所以就想把一大串缩短点,将二进制中的三位用一位表示。

这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。

但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,

四个二进制位最大是15,这就是十六进制。

规律,进制越大,表现形式越短。

●同进制的数据组成

•二进制

•由0,1组成。

以0b开头

•八进制

•由0,1,…7组成。

以0开头

•十进制

•由0,1,…9组成。

整数默认是十进制的

•十六进制

•由0,1,…9,a,b,c,d,e,f(大小写均可)。

以0x开头

●进制转换

•其他进制到十进制

•通过十进制推出结论

•把0b100,0100,0x100转换成十进制

•十进制到其他进制

•通过十进制推出结论

•把52分别表示成二进制,八进制,十六进制

●1:

其他进制到十进制

●系数:

就是每一位上的数据。

●基数:

X进制,基数就是X。

●权:

在右边,从0开始编号,对应位上的编号即为该位的权。

●结果:

把系数*基数的权次幂相加即可。

●2:

十进制到其他进制

●除基取余,直到商为0,余数反转。

●十进制和二进制的快速转换

•8421码

•100转成二进制

•101101转成十进制

●二进制和八进制,十六进制如何转换

•以十进制作为桥梁

•二进制到八进制3位组合

•100110

•二进制到十六进制4位组合

•100110

●1:

8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。

●在这种编码方式中每一位二值代码的1都是代表一个固定数值,

●把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。

●有符号数据表示法

•在计算机内,有符号数有3种表示法:

原码、反码和补码。

所有数据的运算都是采用补码进行的。

•原码

•就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

•反码

•正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

•补码

•正数的补码与其原码相同;负数的补码是在其反码的末位加1。

6变量

●变量概述

•在程序执行的过程中,在某个范围内其值可以发生改变的量

•理解:

如同数学中的未知数

●变量定义格式

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

•注意:

格式是固定的,记住格式,以不变应万变

●1:

从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。

通过画图说明一个变量的组成部分

●数据类型,变量名,变量值

●2:

为什么要定义变量呢

●用来不断的存放同一类型的常量,并可以重复使用

数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

所谓有效数字:

具体地说,是指在分析工作中实际能够测量到的数字。

所谓能够测量到的是包括最后一位估计的,不确定的数字。

对于一个近似数,从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。

Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。

Java语言的整型常量默认为int型,声明long型常量可以后加‘l’或‘L’,如:

inti1=600;//正确longl1=88888888888L;//必须加l否则会出错

与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。

Java浮点类型常量有两种表示形式

十进制数形式,如:

3.14314.0

科学记数法形式,如3.14e23.14*10^2

Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:

doubled=12345.6;//正确floatf=12.3f;//必须加f否则会出错

char型数据用来表示通常意义上的“字符”

字符常量为用单引号括起来的单个字符,例如:

charch1='a';charch2='中';

Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示。

注:

Unicode是全球语言统一编码

boolean类型适于逻辑运算,一般用于程序流程控制。

boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。

●编写案例演示每种不同数据类型的变量定义

●使用变量注意事项:

•作用域

•变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。

相同的作用域中不能定义两个同名变量。

•初始化值

•没有初始化值不能直接使用

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

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

●编写案例演示每种不同数据类型的变量定义

●使用变量注意事项:

•作用域

•变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。

相同的作用域中不能定义两个同名变量。

•初始化值

•没有初始化值不能直接使用

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

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

●+是一个运算符,我们应该能够看懂,做数据的加法。

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

●默认转换

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

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

●强制转换

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

●1:

案例演示隐式转换,并画图讲解

●byteb=10;

●inti=100;

●System.out.println(b+i);

●//有问题

●bytebb=b+i;

●System.out.println(bb);

●//没有问题

●intj=b+i;

●System.out.println(j);

●2:

刚才上面的那个例子不可以,但是,我们明明知道它就是在这个范围内,我就想赋值,肿么办呢?

●用强制转换

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

●3:

那么,我们到底用那种转换呢?

●一般建议,最好不要随意使用强制类型转换,容易造成数据精度的损失。

(1)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。

(2)有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

●面试题

•byteb1=3,b2=4,b;

•b=b1+b2;

•b=3+4;

•哪句是编译失败的呢?

为什么呢?

●思考题

•byteb=130;有没有问题?

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

结果是多少呢?

练习:

byteb=300;

b=3+4,3和4都是常量,所以java在编译时期会检查该常量的和是否超出byte类型的范围。

如果没有可以赋值。

b=b1+b2不可以,是因为b1和b2是变量,因为变量的值会变化,不确定具体的值,所以默认使用int类型进行存储。

b=3+4,3和4都是常量,所以java在编译时期会检查该常量的和是否超出byte类型的范围。

如果没有可以赋值。

b=b1+b2不可以,是因为b1和b2是变量,因为变量的值会变化,不确定具体的值,所以默认使用int类型进行存储。

1:

在这里引入ASCII码表

2:

任何数据和字符串进行操作,结果都是字符串类型。

但是要注意运算的顺序。

数据类型中补充几个小问题

1:

在定义Long或者Float类型变量的时候,要加L或者f。

整数默认是int类型,浮点数默认是double。

byte,short在定义的时候,他们接收的其实是一个int类型的值。

这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。

2:

byte值的问题

byteb1=127;

byteb2=(byte)128;//-128

byteb3=(byte)129;//-127

byteb4=(byte)130;//-126

byte的范围:

-128~127

128:

10000000

-128:

10000000(这里的1即是符号位,也是数值位)

3:

数据类型转换之默认转换

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

long:

8个字节

float:

4个字节

A:

它们底层的存储结构不同。

B:

float表示的数据范围比long的范围要大

long:

2^63-1

float:

3.4*10^38>2*10^38>2*8^38=2*2^3^38=2*2^114>2^63-1

4:

Java语言中的字符char可以存储一个中文汉字吗?

为什么呢?

可以。

因为java语言中的字符占用两个字节。

Java语言采用的是Unicode编码。

总结

1:

运算符(掌握)

(1)算术运算符

A:

+,-,*,/,%,++,--

B:

+的用法

a:

加法

b:

正号

c:

字符串连接符

C:

/和%的区别

数据做除法操作的时候,/取得是商,%取得是余数

D:

++和--的用法

a:

他们的作用是自增或者自减

b:

使用

**单独使用

放在操作数据的前面和后面效果一样。

a++或者++a效果一样。

**参与操作使用

放在操作数的前面:

先自增或者自减,再参与操作

inta=10;

intb=++a;

放在操作数的后面:

先参与操作,再自增或者自减

inta=10;

intb=a++;

(2)赋值运算符

A:

=,+=,-=,*=,/=,%=等

B:

=叫做赋值运算符,也是最基本的赋值运算符

intx=10;把10赋值给int类型的变量x。

C:

扩展的赋值运算符的特点

隐含了自动强制转换。

面试题:

shorts=1;

s=s+1;

shorts=1;

s+=1;

请问上面的代码哪个有问题?

(3)比较运算符

A:

==,!

=,>,>=,<,<=

B:

无论运算符两端简单还是复杂最终结果是boolean类型。

C:

千万不要把==写成了=

(4)逻辑运算符

A:

&,|,^,!

&&,||

B:

逻辑运算符用于连接boolean类型的式子

C:

结论

&:

有false则false

|:

有true则true

^:

相同则false,不同则true。

情侣关系。

!

:

非true则false,非false则true

&&:

结果和&是一样的,只不过有短路效果。

左边是false,右边不执行。

||:

结果和|是一样的,只不过有短路效果。

左边是true,右边不执行。

(5)位运算符(了解)

A:

^的特殊用法

一个数据针对另一个数据位异或两次,该数不变

B:

面试题

a:

请实现两个变量的交换

**采用第三方变量

**用位异或运算符

左边a,b,a

右边a^b

b:

请用最有效率的方式计算出2乘以8的结果

2<<3

(6)三元运算符

A:

格式

比较表达式?

表达式1:

表达式2;

B:

执行流程:

首先计算比较表达式的值,看是true还是false。

如果是true,表达式1就是结果。

如果是false,表达式2就是结果。

C:

案例:

a:

比较两个数据是否相等

b:

获取两个数据中的最大值

c:

获取三个数据中的最大值

2:

键盘录入(掌握)

(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。

(2)如何实现呢?

目前就记住

A:

导包

importjava.util.Scanner;

位置:

在class的上边

B:

创建对象

Scannersc=newScanner(System.in);

C:

获取数据

intx=sc.nextInt();

(3)把三元运算符的案例加入键盘录入改进。

3:

流程控制语句

(1)顺序结构从上往下,依次执行

(2)选择结构按照不同的选择,执行不同的代码

(3)循环结构做一些重复的代码

4:

if语句(掌握)

(1)三种格式

A:

格式1

if(比较表达式){

语句体;

}

执行流程:

判断比较表达式的值,看是true还是false

如果是true,就执行语句体

如果是false,就不执行语句体

B:

格式2

if(比较表达式){

语句体1;

}else{

语句体2;

}

执行流程:

判断比较表达式的值,看是true还是false

如果是true,就执行语句体1

如果是false,就执行语句体2

C:

格式3

if(比较表达式1){

语句体1;

}elseif(比较表达式2){

语句体2;

}

...

else{

语句体n+1;

}

执行流程:

判断比较表达式1的值,看是true还是false

如果是true,就执行语句体1

如果是false,就继续判断比较表达式2的值,看是true还是false

如果是true,就执行语句体2

如果是false,就继续判断比较表达式3的值,看是true还是false

...

如果都不满足,就执行语句体n+1

(2)注意事项

A:

比较表达式无论简单还是复杂,结果是boolean类型

B:

if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。

建议:

永远不要省略。

C:

一般来说,有左大括号,就没有分号,有分号,就没有左大括号。

D:

else后面如果没有if,是不会出现比较表达式的。

E:

三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。

(3)案例:

A:

比较两个数是否相等

B:

获取两个数中的最大值

C:

获取三个数中的最大值(if语句的嵌套)

D:

根据成绩输出对应的等级

E:

根据月份,输出对应的季节

F:

根据x计算对应y的值并输出

(4)三元运算符和if语句第二种格式的关系

所有的三元运算符能够实现的,if语句的第二种格式都能实现。

反之不成立。

如果if语句第二种格式控制的语句体是输出语句,就不可以。

因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1