Java学习的第二章(基础语法)

java的基础语法

这里写图片描述


  • Java的关键字
  • Java的标示符
  • Java中使用的数据类型
  • Java的变量与常量
  • *Java中的运算符
  • Java的注释

Java的关键字

Java关键字是事先定义的,有特别意义的标示符,用来表示一种数据类型,或者表示程序的结构。关键字不能用作变量名、方法名、类名、包名和参数。
java的关键字如下图:

这里写图片描述

其中const和goto不能在Java中使用,这两个关键字列入该表的作用是为了方便将C和C++代码转换为Java代码。
byValue, cast, false, future, generic, inner, operator, outer, rest, true, var , goto ,const,null是其中的保留字,保留字是指现有Java版本尚未使用 但以后版本可能会作为关键字使用。


Java中的标示符

标示符顾名思义,打下标记帮助识别的符号。包括关键字、变量名、常量名、方法名、类名、参数名、返回类型等。
标示符分为两种,一种是系统定义的标示符,一种是自定义的标示符。
标示符的命名规则如下:
1.强制规则
1)标识符由字母、下划线、美元符号或者数字组成
2)不能使用数字开头
2) 标识符不能是关键字或true、false、null。
3) 标识符的第一个字符必须是一个字母、下划线(_)或美元符号($)。
4) 标识符是区别大小写的,并且没有规定最大长度。
2.潜规则
1)见名知意
2)驼峰命名法(类遵循大驼峰,方法名遵循小驼峰)
3)命名常量时全大写,语义详尽。
4)英文单词之间以_分隔
5)不可中文拼音简写,如姓名命名为xm


Java的数据类型

在各个语言中,数据都有自己的类型。Java中数据类型分为两大类,基础数据类型和引用数据类型。

基础数据类型又分为三类:数值型、字符型和布尔型(八大基础数据类型)。

1.数值型又分为整型和浮点类型。

整型中有字节型(byte)、短整型(short)、int(整型)、long(长整型)。
它们都用于存放整数型数据如-10,153,其区别是存放空间不一致。
byte型占1个字节的存储空间,8位二进制数,可表示数的范围是-128-127。
short型占2个字节的存储空间,16位二进制数,可表示数的范围是-32 768~32 767

int型占4个字节的存储空间,32为二进制数,可表示输的范围是–2 147 483 648~2 147 483 647

long型占8个字节的存储空间,64位二进制数,可表示的范围是-2^63-2^63-1。
整型默认的数据类型为int型。

浮点类型用于存放小数,如3.25,-1.234类数据。
浮点型分为两种float(单精度浮点型)和double(双精度浮点型),都用于存放小数,只是其精度不一样,double类型精度更高,当需要存放精度较高的数据时,应设数据类型为double型。
以下是两种类型的存储空间:
float型占4个字节的存储空间,32为二进制数。
double型占8个字节的存储空间,64位二进制数。

2.字符型
在Java中,如果要存放字符,如“A”,和C语言一样,char类型,可存放字符。但其存储空间仅为2个字节,只能存放单个字符(单个英文字母/单个汉字),放在‘ ’单引号中。
Java中的字符编码采用ASCII编码,在投入计算时会转换为ASCII码值。
如:char word=’ b’;
System.out.println(word+1);
此时输出的结果为99;
由于word是字符型,在计算时会转化成对应的ASCII码,b的值在ASCII码表中为98,所以输出结果为99.
ASCII表如下:
这里写图片描述
3.布尔型
布尔型的数据类型名为boolean,其值只有true和false,即真和假。没有具体设置存储空间。常用来表达逻辑判断和循环语句、选择结构中。描述一种非真即假的状态。

字段长度和表数范围受操作系统的影响,保证了Java的可移植性。


引用数据类型
String(字符串)型
上文说到char类型只能存放单个字符,而生活中所有的名称都不可能是单个字符。
于是在Java中我们可以用引用数据类型String来存放字符串型的数据。比如:
String user_Name=”张三”
这里就是定义了一个user_Name的变量,用于存放用户姓名。
字符串是以“ ”双引号括起来,与char型有区别。
当我们再加上字符串时,一般用拼接的方式“+”连接
如:user_Name=user_Name+”丰”
此时的user_Name=”张三丰”
StringBuffer型
该类型的仍然用于存放字符串型的数据,只是在实现拼接时加上一个append即可,StringBuffer的特点是线程同步。线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,目前实现线程同步的方法有很多,临界区对象就是其中一种。
StringBuilder型
类型的仍然用于存放字符串型的数据,只是在实现拼接时加上一个append即可,StringBuffer的特点是线程异步。线程异步在访问资源时空闲等待时同时访问其他资源,实现多线程机制。
引用类型主要是接口、数组及自定义类方法组成。
引用数据类型初始值为null.


数据类型的转换
数据类型的转换分为两种自动转换和强制转换。
例1:
System.out.print(180+1223456);
180为short型,1223456为int型。
此时180+1223456自动转换为int型。

自动转型原则为就高不就低,short为2个字节,int4个字节。
当字节数一致时,观察谁的精度更高,便作为数据类型。
例2:
int num=(int)1+2.5;
此时num的值为3,丢掉小数部分,由于强制转换成了int型。

故强制转换时,可能造成精度降低。


Java的常量、变量的申明与初始化

常量即不会变化的量,如圆周率PI=3.14,永远不会改变。
变量即可改变的一个量,如我们银行卡的余额信息,会随之改变。
以下将介绍如何声明常量、变量与初始化:

常量命名规则
1.通常所有字母全大写
2.几个英文单词用_线隔开
3.见名知意原则
如:double PI=3.14;
可在常量中使用final关键字,表示不可更改,已经是最终的量。

变量命名规则:
(1) 不能是Java中的关键字
(2) 不能以数字开头
(3) 以数字、字母下划线组成,可用$符号
(4) 多个单词以_隔开
(5) 见名知意
(6) 驼峰命名法
(7) 不能在同一方法中,定义相同类型,相同名称的变量名。
与标识符类似。

声明变量与初始化
基本语法:数据类型 变量名
如:int num;
double score;
char word;
初始化:
可在定义后初始化:
num=1;
score=87.5;
word=‘B’;
也可在定义时即初始化:
int num=1;
double score=”87.5
在定义多个相同类型时,可写在同一行,以,号隔开
如:int num1=1,num2=10,num3=20;
变量有全局变量和局部变量之分,从名称上分析,全局的作用域更广,所以全局变量是定义在类中,所有方法均可使用。而局部变量是定义在方法内部,仅限于该方法,只作用于{ }中。全局变量一处修改处处修改。


Java的运算符

Java中有很多运算符,算数运算符、增量运算符、赋值运算符、比较运算符、移位运算符、三目运算符、逻辑运算符等。

算数运算符
算数运算符即数学中的“+”,“-”,*,/等符号,常用于算数运算。
增量运算符
在程序中,希望一个数自我增加或减少,此时便用到增量运算符。
a++ === a=a+1(两者相等);
++/–在不参与运算时++/–所在位置不影响。
参与运算时:
++/–在前,先自增/自减,再计算
++/–在后,先计算,再自增/自减
赋值运算符
在计算机语言中,=代表赋值号,并不是数学意义上的相等。
int a=5;//读作定义一个整型变量a,并将5赋值给它。
==代表相等,与数学中的等号一致。
上文所提a=a+1,也可写做a+=1;
赋值运算符符一般有+=,-=,*=,/=,%=等。
*移位运算符
一般分为<<左移和>>右移
例3:
00001011<<2=00101100
00001011>>2=00000010
左移两位即去掉最左边两位,在后边添0
右移两位即去掉右边两位,在前面添0;
例4:
int a=2;
a<<1=4;
a<<2=8;
a<<3=16;
a>>1=1;
a>>2=0;
a>>3=-1
左移可得公式a=a*2^n(n为移位位数)
右移可得公式a=a*2^(-n)
比较运算符
比较运算符有:>,<,>=,<=,!=,==,===
比较运算符返回结果均为布尔型,要么为真,要么为假。
三目运算符
格式:
(布尔表达式)? 表达式1 :表达式2
即布尔表达式成立则取表达式1,否则取表达式2


Java中的注释

注释是为了提高代码的可读性,对某个操作的描述。
Java中的注释分为三种:单行注释、多行注释和文档注释。

单行注释:
解释该行变量意义,或者操作的意义。
常用//表示
如:
float score=85;//定义成绩变量赋值为85
多行注释用于方法体内部代码的描述。
多行注释:
/*
注释内容
*/

文档注释:
文档注释一般是描述某个类、某个方法、某个属性,定义变量意义与操作行为的描述。
格式:
/**
*该类是描述学生的成绩….
*2018-8-23 xx
/*
这就是Java基础语法部分的大部分内容!

猜你喜欢

转载自blog.csdn.net/qq_38527427/article/details/81951066