java-1.基础与数据类型

第三节数据类型

1.Java程序基本结构

package Mr;定义了 Java程序中类所在的包是Mr,其中Mr是一个标识符

public class Example是创建类的语句,其中publicJava程序的关键字,这里用于修饰类;class是用于创建类的关键字

static int ONE = 1;定义了类的成员变量,其中staticJava程序的关键字,这里用 于修饰成员变量;int也是一个关键字,是Java程序中的整数数据类型,用于定义常量和变量,这里定义的是类的成员变量;ONE是一个标识符,是该类的成员变量,其名称由程序员自己定义,该成员变量的数据类型是整数类型

public static void main(String[] args)是类的主方法,是Java应用程序的入口点,Java 程序是从该方法开始执行的,其中main是主方法的名称,程序员不可以更改;publicJava程序的关键字,这里用于修饰主方法;staticJava程序的关键字,这里用于修饰主方法;void也是一个关键字, 用于修饰方法,表示方法没有返回值;String也是一个类,用于创建字符串对象,这里用于修饰主方法 的形参,在String后跟上一对方括号“[”和“]”表示主方法的形参是一个字符串数组;args是一个标 识符,是主方法的形参数组,其数据类型是String类型

String var = "Hello;在主方法内定义了一个局部变量,其中String是一个类,用于 创建字符串 对象,这里创建了一个局部变量;var是局部变量的名称,是程序自己定义的一个标识符, "Hello"是局部变量var的值,是一个字符串常量;等号“=”是赋值运算符,用于将等号右边的字符串 常量赋值给等号左边的变量var,这样变量var的值就是Hello 了.

System.out.println(ONE);是一个输出语句,可以在命令行或控制台输出信息,其中 System.out.println()是输出语句的固定写法,其中System是一个系统类的名称,其第一个字母必须大写,outSystem类提供的一个标准输出流,println是标准输出流out提供的方法,用于输出信息;println()方法内部的ONE是要输出的内容,这里的ONE是类的一个成员变量,其值是1,所以执行该语句将输出1

最后一条语句System.out.println(var)是一个输出语句,其含义同第6条语句,这里的var是主方法内定义的一个局部变量,其值是"Hello",所以执行该语句将输出Hello

2.标识符和关键字

2.1 标识符

标识符 可以简单地理解为一个名字,用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。

【例2.1】 定义变量i并赋值为100.

int i = 100;
System.out.println(i);	//在控制台输出信息

变量名i就是标识符,由程序员所起,但并不是随便取的,也有一定的规则。下面将介绍标识符 的命名规则

2.2 关键字

关键字是Java语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。Java 中的关键字如表3.1所示。

JDK 1.8 中,共有 50 个关键字

访问控制

关键字 含义
private 私有的
protected 受保护的
public 公共的

类、方法和变量修饰符

关键字 含义
abstract 表明类或者成员方法具有抽象属性
class 声明一个类
extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
implements 表明一个类实现了给定的接口
interface 接口
native 本地,原生方法(非 Java 实现);用来声明一个方法是由与计算机相关的语言(如 C/C++/FORTRAN 语言)实现的
new 用来创建新实例对象
static 表明具有静态属性
strictfp 用来声明 FP_strict(单精度或双精度浮点数)表达式遵循 [IEEE 754](https://baike.baidu.com/item/IEEE 754) 算术规范
synchronized 表明一段代码需要同步执行
transient 声明不用序列化的成员域
volatile 表明两个或者多个变量必须同步地发生变化

程序控制语句

关键字 含义
break 提前跳出一个块
case 用在 switch 语句之中,表示其中的一个分支
continue 回到一个块的开始处
default 默认,例如,用在 switch 语句中,表明一个默认的分支。Java 8 中也作用于声明接口函数的默认实现
do 用在 do-while 循环结构中
else 用在条件语句中,表明当条件不成立时的分支
for 一种循环结构的引导词
if 条件语句的引导词
instanceof 用来测试一个对象是否是指定类型的实例对象
return 从成员方法中返回数据
switch 分支语句结构的引导词
while 用在循环结构中

错误处理

关键字 含义
assert 断言,用来进行程序调试
catch 用在异常处理中,用来捕捉异常
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
try 尝试一个可能抛出异常的程序块

包相关

关键字 含义
import 表明要访问指定的类或包
package

基本类型

关键字 含义
boolean 基本数据类型之一,声明布尔类型的关键字
byte 基本数据类型之一,字节类型
char 基本数据类型之一,字符类型
double 基本数据类型之一,双精度浮点数类型
float 基本数据类型之一,单精度浮点数类型
int 基本数据类型之一,整数类型
long 基本数据类型之一,长整数类型
short 基本数据类型之一,短整数类型

变量引用

关键字 含义
super 表明当前对象的父类型的引用或者父类型的构造方法
this 指向当前实例对象的引用
void 声明当前成员方法没有返回值

保留关键字

关键字 含义
goto 是关键字,但不能使用
const 是关键字,但不能使用

注意: constgoto 是保留字 注意: truefalsenull 不是关键字,而是常量标识

3.基本数据类型

Java中有8种基本数据类型,其中6种是数值类型,另外两种分别是字符类型和布尔类型,而

6种数值类型中有4种是整数类型,另外两种是浮点类型

3.1 整数类型

整数类型用来存储整数数值,即没有小数部分的数值,可以是正数、负数,也可以是零。根据所占 内存的大小不同,可以分为byteshortintlong****4种类型。它们所占的内存和取值范围如表3.1所示, 表**3.1整数类型

数据类型 内存空间(****8位等于1字节) 取值范围
byte 81个字节) -128〜127
short 162个字节) -32768〜32767
int 324个字节) -2147483648〜2147483647
long 648个字节) -9223372036854775808〜9223372036854775807

1. byte

使用byte关键字来定义byte型变量,可以一次定义多个变量并对其进行赋值,也可以不进行赋值。 byte型是整型中所分配的内存空间最少的,只分配1个字节;取值范围也是最小的,只在-128-127 之间,在使用时一定要注意,以免数据溢出产生错误。

【例3.2】 定义byte**型变量。

byte x = 48,y = -108,z; //定义 byte 型变量 x、y、z,并赋初值给 x、y

2. short

short型即短整型,使用short关键字来定义short型变量,可以一次定义多个变量并对其进行赋值, 也可以不进行赋值。系统给short型分配2个字节的内存,取值范围也比byte型大了很多,在-3276832767之间,虽然取值范围变大,但还是要注意数据溢出。

3. int

int型即整型,使用int关键字来定义int型变量,可以一次定义多个变量并对其进行赋值,也可以 不进行赋值。int型变量取值范围很大,在-21474836482147483647之间,足够一般情况下使用,所 以是整型变量中应用最广泛的。

【例3.3】 定义int型变量。

Int x = 450,y = -462,z; //定义int型变量x、y、z,并赋初值给x、y

4. long

long型即长整型,使用long关键字来定义long型变量,可以一次定义多个变量并对其进行赋值, 也可以不进行赋值。而在对long型变量赋值时结尾必须加上"L”或者“1”否则将不被认为是long型。当数值过大,超出int型范围时就使用long型,系统分配给long型变量8个字节,取值范围则更 大,在-9223372036854775808~9223372036854775807 之间。

【例3.4】 定义long型变量。

long x = 4556824L,y = -4624477161,z;	〃定义 long 型变量 X、y、z.并赋初值给 X、y

在定义long型变量时最好在结尾处加“L”因为“1”非常容易和数字“1”弄混.

【例3.5]在项目中创建类Number,在主方法中创建不同的整数类型变量,并将这些变量相加, 将结果输出。

public class Number{ 
    public static void main (String[] args) {
        byte mybyte = 124; 
        short myshort = 32564; 
        int myint = 45784612; 
        long mylong = 46789451L; 
        long result = mybyte+myshort+myint+mylong; 
        System.out.println("四种类型相加的结果为:"+result);
    }
}

上面的4种整数类型在Java程序中有3种表示形式,分别 为十进制表示法、八进制表示法和十六进制表示法。

十进制表示法。十进制的表现形式大家都很熟悉,即 逢十进一,每位上的数字最大是9,1200-127 都是十进制数。

八进制表示法。八进制即逢八进一,每位上的数字最大是7,且必须以0开头。例如,0123 (转换成十进制数为83)-0123 (转换成十进制数为-83)都是八进制数。

十六进制表示法。中国古代使用的就是十六进制数,所谓半斤八两就是如此,逢十六进一, 每位上最大数字是f (15),且必须以0X0x开头。例如,0x25 转换成十进制数为37)0Xb01e (转换成十进制数为45086)都是十六进制数。

3.2 浮点类型

浮点类型表示有小数部分的数字。在Java语言中,浮点类型分为单精度浮点类型(float)和双精

度浮点类型(double),他们具有不同的取值范围,如表3.2.1所示。

3.3浮点类型
数据类型 内存空间8位等于1字节) 取值范围
float 324个字节) 1.4E-453.4028235-E38
double 648个字节) 4.9E-324~1.7976931348623157E-308

3.2.1 float

float型即单精度浮点型,使用float关键字来定义float型变量,可以一次定义多个变量并对其进行 赋值,也可以不进行赋值。在对float型进行赋值时在结尾必须添加“F”或者“f”如果不加,系统自动将其定义为double型变量。float型变量的取值范围在1.4E-453.4028235E-38之间。

定义float型变量。

float x = 12.521F,y = -5.264f,z;	//定义 float 型变量 x、y、z,并赋初值给 X、y

2. double

double型即双精度浮点型,使用double关键字来定义double型变量,可以一次定义多个变量并对 其进行赋值,也可以不进行赋值。在给double型赋值时,可以使用后缀“D"“d”明确表明这是一 个double类型数据,但加不加并没有硬性规定,可以加也可以不加.double型变量的取值范围在4.9E-3241.7976931348623157E-308 之间。

定义double型变量。

double x = 12.521D,y = -5.264d,z=5.115,p;	//定义 double 型变量 X、y、z、p.并赋初值给 X、y、z

在项目中创建SumNumber类,在类的主方法中声明字符型变量,然后进行加法运算, 并将运行结果输出

public class SumNumber(  //创建类  
	public static void main(String[] args) {  //主方法  
	float f1 = 13.23f;  //定义float型变量  
	double d1 = 4562.12d;  //定义double型变量  
	double d2 = 45678.1564;  //定义double型变量  
	double result = f1+d1+d2;  //获得各数相加后的结果  
	System.out.println("浮点型相加达到结果为:"+result); 
	}
}  //将以上变資相加的结果输出

3.3 字符类型

char型即字符类型,使用char关键字进行声明,用于存储单个字符,系统分配两个字节的内存空间。在定义字符型变量时,要用单引号括起来。例如,'s'表示一个字符,且单引号中只能有一个字符,多了就不是字符类型了,而是字符串类型,需要用双引号进行声明。

【例3.3.1] 声明char型变量。

char x = 'a';

由于字符aUnicode表中的排序位置是97,因此允许将上面的语句写成:

char x = 97;

说明:与CC++语言一样,Java语言也可以把字符作为整数对待.由于Unicode编码采用无符 号编码,可以存储65536个字符(OxOOOO-Oxffif),所以Java中的字符几乎可以处理所有国家的语 言文字.若想得到一个0〜65536之间的数所代表的Unicode表中相应位置上的字符,也必须使用char 型显式转换

【例3.3.1] 在项目中创建类Export,实现将Unicode表中某些位置上的字符以及一些字符在Unicode表中的位置在控制台上输出。

public class Export ( 
	public static void main(StringO args) ( 
        int i = 'd';
		char c = 97;
		System.out.println("字符 d 的 Unicode 码是:"+i); 
        System.out.println("Unicode 码 97 代表的字符是:"+c); 
        }
}

转义符

\ddd 13位八进制数据所表示的字符,如\456
\dxxxx 4位十六进制所表示的字符,如\0052
\’ 单引号字符
\\ 反斜杠字符
\t 垂直制表符,将光标移到下一个制表符的位置
\r 回车
\n 换行
\b 退格
\f 换页
public class Number{
    public static void main(String[] args){
        char char1 = '\\';
        char char2 = '\u2605';
        System.out.println("输出反斜杠" +char1);
        System.out.println("输出五角星" +char2);
    }
}

布尔类型

逻辑类型,只有true和鱼false两个值,分别代表布尔逻辑中的“真”和“假”。使用boolean关键字声明布尔类型变量,通常被用在流程控制中作为 判断条件。

声明boolean型变量。

boolean b1 = true,b2 = false,b3;	//定义布尔型变量 b1、b2、b3.并给 b1、b2 赋初值

变量与常量

运算符

类型转换

代码注释和编码规范

经典范例

实战练习

posted @ 2020-05-04 10:53  薄荷少年郎微微凉  阅读(250)  评论(0编辑  收藏  举报