首页 编程 软件学院 查看内容

Java SE学习(三)之Java的基础语法(上)

2017-6-18 10:45 |来自: 互联网 1328 0

摘要: Java的基础语法(上)要学习一门程序设计语言,首先必须得学习它的语法,这部分内容对于大部分人来说是非常枯燥的,因为要记忆的内容非常多,但是要想学好 Java,就必须了解这部分的内容。语法格式只是学习时最基础 ...

Java的基础语法(上)

要学习一门程序设计语言,首先必须得学习它的语法,这部分内容对于大部分人来说是非常枯燥的,因为要记忆的内容非常多,但是要想学好 Java,就必须了解这部分的内容。语法格式只是学习时最基础的知识,在实际的开发中,需要根据程序的需要,使用恰当的格式去实现程序逻辑,所以语法一定要熟练。这部分内容对于具有 C/C++ 编程经验的程序员来说,只需要快速的浏览一下,注意其中的差异就行了。

注释

注释(comment)是对代码功能和用途的说明。在程序中编写适当的注释,将使程序代码更容易阅读,增强代码的可维护性。与大多数程序程序设计语言一样,Java 中的注释也不会出现在可执行程序(即 .class 文件)中。因此,可以在源程序中根据需要添加任意多的注释,而不用担心代码会膨胀。

单行注释

单行注释是最常用的注释方式,只需要在要注释的内容前面加上 // 即可。例如:

// hello world

注意:单行注释从两个斜线开始到本行结束都是注释的内容,注释内容不能换行。

多行注释

多行注释可以将任意多行的内容注释,一般用于说明比较复杂的内容,只需要将需要注释的内容用 /**/ 包围起来。例如:

/*

注意:多行注释不能嵌套使用。

文档注释

文档注释可以自动地生成文档,是 Java 的特色注释格式,这种注释以 /** 开头,以 */结束。例如:

/** @version v1.0 @author Lucky Light

关键字

所谓关键字就是被 Java 语言赋予特殊含义,具有专门用途的单词,比如之前接触的 class,public,static等均为 Java 预设的关键字。组成关键字的字母全部都是小写,且不能用作常量、变量和其他标识符的名字。

常见关键字

关键字关键字关键字关键字
abstractassertbooleanbreak
bytecasecatchchar
classconstcontinuedefault
dodoubleelseenum
extendsfinalfinallyfloat
forgotoifimplements
importinstanceofintinterface
longnativenewpackage
privateprotectedpublicreturn
shortstaticstrictfpsuper
switchsynchronizedthisthrow
throwstransienttryvoid
volatilewhile

注意:goto 与 const 是 Java 中的保留字,即没有赋予特殊含义却仍被 Java 占用的单词

标识符

标识符即标识的符号,指程序中一切自己指定的名称,例如后续语法中涉及到的变量名称、常量名称、数组名称、方法名称、参数名称、类名、接口名、对象名等等。

组成规则

  • 英文大小写字母

  • 数字

  • 货币字符($)和下划线(_)

注意事项

  • 数字不能开头

  • 不可以使用关键字

  • 严格区分大小写,不限制长度

  • 起名时,尽量达到见名知意

标识符中常见的命名规则

  • 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型 的相关命名)DO / DTO / VO / DAO 等。

    正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion

    反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion

  • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

    正例: localValue / getHttpMessage() / inputUserId

  • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

    正例: MAX_STOCK_COUNT

    反例: MAX_COUNT

  • 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命 名以它要测试的类的名称开始,以 Test 结尾。

  • POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

    反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。

  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用 单数形式,但是类名如果有复数含义,类名可以使用复数形式。

    正例: 应用工具类包名为 com.alibaba.mpp.util、类名为 MessageUtils(此规则参考 spring的框架结构)

变量和常量

所谓变量,就是程序的运行过程中值会发生改变的量;所谓常量,就是程序运行过程中值不能发生改变的量。

在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量还是常量。

声明

由于 Java 语言是一种强类型的语言,所以变量和常量在使用以前必须首先声明,在程序中声明变量和常量的语法格式如下:

数据类型 变量或常量名称;

变量或常量名称是该变量或常量的标识符,需要符合标识符的命名规则,在实际使用中,该名称一般和变量或常量的用途对应,这样便于程序的阅读。例如:

int age;

赋值

变量和常量在使用前必须先赋值,给变量或常量赋值的格式为:

变量或常量名称 = 值;

赋值时,要求值的类型需要和声明变量或常量的数据类型一致。例如:

age = 18;

注意:= 表示赋值,将 = 右边的值赋给了左边的变量或常量。Java 中使用 == 表示相等,等价于数学中的 =

综合使用

可以在声明变量或常量的同时,设定该变量或常量的值,语法格式如下:

数据类型 变量或常量名称 = 值;

例如:

int age = 18;

数据类型

Java 是一种强类型语言,这意味着必须为每一个变量声明一种数据类型,基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字字母。

在 Java 中,数据类型分为原生数据类型和引用数据类型。

原生数据类型

Java 支持 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 a = 10000;short b = -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),默认值为0。

  • 这种数据类型一般是在需要比整数型范围更大时应用。

例如:

long a = 1000000L;long b = -20000000L;

浮点型(float)

  • 浮点型数据是一种单精度的 32 位 IEEE 754 标准下的浮点数据,默认值是 0.0f。

  • 浮点型数据主要是为了在大型浮点数字数组中节约内存。

  • 浮点型数据不能用于如货币这样的精确数据。

例如:

float a = 234.5F;

双精度型(double)

  • 双精度型数据是一种双精度的 64 位 IEEE 754 标准下的浮点数据,默认值是 0.0d。

  • 这种数据类型主要是默认被用于表示小数的值,一般是默认的选择。

  • 双精度型数据不能用于如货币这样的精确数据。

例如:

double a = 123.4;

布尔型(boolean)

  • 布尔型数据代表一个信息比特。它只有两个可能的值:真(true)和假(false),默认值是假(false)。

  • 这种数据类型用于真假条件下的简单标记。

例如:

boolean a = true;

字符型(char)

  • 字符型数据是简单的 16 位 Unicode 标准下的字符,最小值是: '\u0000' (或 0),最大值是: '\uffff' (或 65,535 )。

  • 字符型数据可以用来储存任意字母。

例如:

char a ='A';

原生数据类型的相互转换

在 Java 中,类型的转换随处可见。例如变量的定义、数值的计算以及方法的传递等等,类型转换在 Java 中具有重要的作用。在此,先简单介绍一下原生数据类型的相互转换。

要想理解数据类型的相互转换,首先必须知道以下两点:

  • 在 Java 中各种原生数据类型所占内存的大小,如下表所示:

数据类型所占的内存
boolean未定
byte1字节
char2字节
short2字节
int4字节
long8字节
float4字节
double8字节
  • 在 Java 中,整数的默认数据类型为 int,浮点数的默认数据类型为 double。

隐式类型转换

在 Java 中,隐式转换由系统自动进行,无需程序员干涉,且不会损失精度。规则如下表所示:

原类型目的类型
byteshort, int, long, float, double
shortint, long, float, double
charint, long, float, double
intlong, float, double
longfloat, double
floatdouble

例如:

byte + int

会自动转换成:

int + int

又如:

int + double

会转换成:

double + double

再如:

byte + char

会转换成:

int + int

显式类型转换

在 Java 中,显式类型转换又被称为强制类型转换,这种转换不会自动进行,需要由程序员显式指定,而且有可能损失精度。规则如下表所示:

原类型目的类型
bytechar
shortbyte, char
charbyte, short
intbyte, short, char
longbyte, short, char, int
floatbyte, short, char, int, long
doublebyte, short, char, int, long, float

例如:

int a;

要想将a转换成 byte 类型,需要这样写:

(byte) a;

如想将整个表达式的结果进行数据类型转换,必须将整个表达式用括号括起来。

例如:

int a;int b;byte c;

要想将 a + b 的结果赋值给 c,则需要这样写:

c = (byte) (a + b);

引用数据类型

  • 引用数据类型是由类的编辑器定义的。他们是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee, String 等等。

  • 类对象和数组变量就是这种引用数据类型。

  • 任何引用数据类型的默认值都为空。

  • 一个引用数据类型可以被用于任何声明类型和兼容类型的对象。

例如:

String string = new String("hello world");
本文出处: http://www.toutiao.com/a6432622790956794113/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部