您的位置:首页 > 编程语言 > Java开发

Java学习笔记之java基础语法,运算符(二)

2013-07-19 20:32 585 查看
在了解了java起源之后,我来进一步学习一下java的语言规则。在这里我主要说的 java基础语法,流程控制以及字符串这个几个方面的知识。

在了解基础语法之前我们来了解一下java的关键字和标识符,注释和变量。

标识符 :

在java中包,类,方法和变量的名字,都可以由任意的大小字母,数字,下划线和美元符号构成等构成。但是标识符不可以以数字开头,不可以是java中关键字。例子如下

正确的标识符 :
yourname    _name       $name
不正确的标识符 :
1_name
但是在这里提醒大家,为了方便以及代码的规范性,还是一般用字母开头比较好

关键字

JAVA语言与其他编程语言一样,都具有关键字(也成保留字)例如PUBLIE ,static 等,它们不可以作为标识符使用,而且标识符不需要大家

来特别记忆,因为在我们使用的过程中编译器会给我们提示的。java的关键字如图



需要注意的是goto这个关键字,java中关键字表中虽然有goto关键字但是在声明变量时是不可以使用该单词的因为goto
是 Java 中一个没有使用的关键字,如果想叫做保留字也可以。

在这里主要介绍几个关键字,new,final,this,static这几个关键字。

NEW 这个关键字主要的作用创建一个新对象的实例,New 子句必须指定一个可以用来创建实例的已定义类。可以在声明语句或赋值语句中使用
New。执行该语句时,它将调用指定类的构造函数,传递提供的所有参数。

THIS 引用属性,当方法中的参数和某个属性有相同的名字时,这是局部变量优先,属性被隐藏。然而,有时为了能够在方法中以用隐藏的属性,就可以用this区分,由this引用的就是属性,没有this引用的则是局部变量或者是参数。

FInal

final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。

final成员

当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。

注释

为程序添加注释可以解释某些语句的作用和功能,提高程序的可读性。同时添加注释可以添加编程人员的个人信息。此外,注释可以屏蔽一些不要执行的语句,在编译的时候不需要实行。在需要执行的时候可以去掉注释。注释功能可以分为三类。

(1)单行注释

(2)多行注释

(3)文档注释

单行注释只需要注释内容的前面添加//就可以了。如下面的例子
int  a = 13; //定义变量a,同时赋值为13
多行注释就是在注释内容的前面添加一个/*,并且在注释的末尾添加一个*/就可以了。例子如下
/*
int  a  = 14;
int  b  = 15 ;
*/
文档注释是以单斜线外加两个星行标记开头(/**),以星行标记家单斜线结束的(*/)结束。文档的注释的内容会被编译成
程序的正式文档,并能包含在javadoc类的工具生成文档里,从而进行说明文档的层次和结构


变量

变量在程序语言中扮演着很重要的角色。变量可以存放数据,使用变量之前必须先声明类型才可以使用。而且变量的生命必须符合JAVA的语言规则。定义变量时需要注意一句一行也可以一句多行。同时在声明变量的时候可以定义一个也可以定义多个,之间通过逗号间隔开。

int a = 13;

int a = 12,b=23,c=23;//定义多个int类型的变量

第一: java的基础语法

JAVA的数据类型主要分为两大类,第一大类 是基本的数据类型,第二类是引用类型,主要包括 类,接口和数组。 第一大类可以分为数值类型,字符型和布尔类型。

数值类型 有可以分为 整型 和浮点型。

整型又分为 byte ,short ,long,int四种类型。浮点型分为 flaot(单精度)和double(双精度)

在java中,它的数据类型都有一定的数据范围,超出这个范围,我们将无法进行运算。java中的基本数据类型的取值范围如下:



每一个数据类型都有一定的数据范围,在范围中进行运算,否则无法进行。在这里我们来说一下数据的溢出。所谓的数据溢出 就是指数据已经是最大或者最小值的时候,对数据进行加1或者减1 操作,数据最小值或者最大值。在数据运算的过程中为了避免数据的溢出我们可以对数据的类型进行扩充,改大数据的取值范围。
(1)java基本数据类型的默认值

类型默认初始化值
booleanfalse
int0
short0
float0.0
double0.0
char\
long0
byte0
objectnull
(2) 类型的详细解释 。
整数类型:byte、short、int、long都是表示整数的,只不过他们的取值范围不一样。

byte(字节类型) 一个byte 8位,取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)默认是0
short(短整型) 一个short 16位,取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)默认是0

int(整型) 一个int 32位,取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)默认是0

long(长整型) 一个long 64位,取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)默认是0L或0l推荐用大写;
可以看到byte和short的取值范围比较小,而long的取值范围太大,占用的空间多,基本上int可以满足我们的日常的计算了,而且int也是使用的最多的整型类型了。在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的
B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型的,就一定要在数据后面加“L”。
浮点型
浮点型就是平时所说的带小数点的类型,主要分为flaot 和double类型 。Float 类型是单精度类型,一个float 32位,取值范围是-2^128
~ +2^128,也即-3.40E+38 ~ +3.40E+38;占用两个字节。Double类型为双精度类型,一个double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308,占用8个字节。
字符型
字符型代表的是一个字母,只允许有一个字符,占用两个字节,它的取值范围是0-255.大小写字母ACII码中相差32位,代码如下
public class DemoTest1 {
public static   void main(String []args){
char  a ='a';
char  A = 'A';
System.out.println("a -  A =" + (a-A));
}
}
运算结果如下 : a - A = 32

而且在字符型中必须是单引号,是双引号会出现错误。因此也有转义字符的概念。转义字符代表了特殊含义的字符,转义可以避免了 敏感字符的混淆。转义字符如下:

1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'

\0:空字符

2.Unicode转义字符:\u + 四个十六进制数字;0~65535

\u0000:空字符

3.特殊字符:就3个

\":双引号

\':单引号

\\:反斜线

4.控制字符:5个

\' 单引号字符

\\ 反斜杠字符

\r 回车

n 换行

\f 走纸换页

\t 横向跳格

\b 退格

点的转义:. ==> u002E

美元符号的转义:$ ==> u0024

乘方符号的转义:^ ==> u005E

左大括号的转义:{ ==> u007B

左方括号的转义:[ ==> u005B

左圆括号的转义:( ==> u0028

竖线的转义:| ==> u007C

右圆括号的转义:) ==> u0029

星号的转义:* ==> u002A

加号的转义:+ ==> u002B

问号的转义:? ==> u003F

反斜杠的转义: ==> u005C

布尔型
boolean 型在java中只有真和徦 ,默认的值是false .在数值设置成boolean之后,只有true和false这两个值,除了这两个值以外就没有其他的值了。
第二大类 : 引用类型
引用类型就是对于一个对象的引用,和基本数据类型是不同的。JAVA中出去基本的数据类型,剩下的大部分都是引用类型变量。例如下面这个例子

public class DemoTest1 {

private int day  = 0;
private String name = null;

public static   void main(String []args){
DemoTest1 demo = new DemoTest1();//就是引用类型
demo.day = 8 ;
demo.name = "小王";

}
}

数据类型的转换

在JAVA中有在java中有严格的数据限制,一般不允许进行数据转换。但是在特殊的情况下需要进行数据转换,必须遵循一定的 原则才可以。数据类型的转换可以分为两种,一种是强制类型转换,另一种是自动类型转换。

自动类型转换

在程序中定义了一个数据类型变量,需要用另一个数据类型表示时,如果满足以下条件可以自动进行转换。

第一:转换前的数据类型和转换后的数据类型兼容

第二:转换后的数据类型比转换前的数据类型大。

把数据类型小的转换成数据类型大的可以自动转换,但是我们需要注意数据类型必须兼容,例如字符和整型变量不兼容,所以他们不可以进行转换。基本的数据类型转换转换是这样的。

byte--->short---->int--->long ----->float------->double

下面举一个例子看一下他们自动转换

public class DemoTest1 {

public static   void main(String []args){
int  a = 12;
float a1= 13;
System.out.print("a-a1="+(a-a1));

}
}
运行结果  ;    a- a1 = -1.0
在这里int自动转换成了float类型进行运算。

强制类型转换

对于强制类型转换的格式如下 :

(强制转换类型)变量名称

下面用一个程序来说明数据的强制转换的使用方法。

public class DemoTest2 {
public static   void main(String []args){
int a = 55 ;
int b = 9 ;
float g,h ;
System.out.println("a = "+a+"b = "+ b);
g = a/b ;
System.out.println("g ="+g);
h = (float) a/b;//这里进行强制类型转换
System.out.println("h ="+h);
}
}
/*
运算结结果
a = 55b = 9
g =6.0
h =6.111111
从程序的运行结果可以看出两个整数进行相除时,结果只保留整数部分后面的小数部分都被省略了,为了可以得到正确的结果
我们 需要在进行计算时把数据转换成float类型。下面的集中转换形式都是正确的
(float)a/b
a/(float)b
(float)a/b
只要在变量之前加上欲转换的数据类型,运行时就自动将此句转换成相应的变量,但是并不影响原来的定义。如果吧超出数据类型范围的数字赋给
这个变量,那么称作缩小变量。同时在转换中会丢人精度,因此JAVA 中并不会做这些类型的转换。

*/

运算符

运算符就是为了进行计算的符号,例如+ - 等符号。在JAVA中运算符可以分为以下几类。

分别是 算术运算符, 赋值运算符 , 位运算符 , 逻辑运算符,关系运算符,布尔运算符,条件运算符等。

运算符按照操作数的数目,又可以分为单目运算符(如+ -),双目运算符(+,>),三目运算符(如 ?,;)

在这里首先介绍以下算术运算符。算术运算符就是数学中进行的加减乘除等运算的特殊符号。JAVA中算术运算符主要包括如下几个运算符

+ 加 — 减 * 乘 / 除 ++ 递增运算 — — 递减运算 %模运算 += 加法赋值 -= 减法赋值 *= 乘法赋值

/= 除法赋值 %= 模运算赋值

算术运算符必须是数字类型,不可以是boolean类型的,但是可以在char类型进行运算,因为实质上char类型是int类型的一个子集。 下面用几个例子来说明一下算术运算的用法。

public class DemoTest3 {
/*
* 在这里进行算术运算的用法举例
*/
public static void main(String[] args) {

int a = 12;
int b = 12;
int c, d, g, e, f, h, i;
c = a + b; // 加法运算
System.out.println("a + b=" + c);
d = a - b;// 减法运算
System.out.println("a - b = " + d);
e = a * b; // 乘法运算
System.out.println("a * b = " + e);
f = a / b;// 除法预算
System.out.println("a / b =" + f);
g = a % b; // 模运算 简单的说就是进行求余的运算
System.out.println("a % b = " + g);
/*
* ++ 和-- 可以分为这两种,一种是 h=a++ 另一种是 h=--a,这两种的运算结果是不一样的,第一种是先把a 赋给h
* 之后再进行a+1的运算 h = --a 这个主要思路是先把a进行a = a-1 运算,之后再把a 的值赋给H
* ,下面我们用程序运行一看一下结果
*/
h = a++; // 这是变量++前面
System.out.println("a = " + a);
System.out.println("a进行++运算之后的结果是:" + a);
System.out.println("h = " + (a++));
System.out.println("b i进行--运算之前的值:");
System.out.println("b = " + b);
i = --b;
System.out.println("b进行--之后的值");
System.out.println("b = " + b);
System.out.println("i =" + (--b));
/*
* += 加法赋值 -=减法赋值 *= 乘法赋值 /=除法赋值 %= 摸运算赋值
*/
int a1 = 4;
int a2 = 4;
int a3 = 4;
int a4 = 4;
int a5 = 4;
System.out.println("在进行运算之前a1 到a5 的值");
System.out.println("a1 =a2=a3=a4=a5= " + a1);
System.out.println("进行运算之后的a1和a2 的值");
a1 += 2;// 这里可以写成 a1 = a1 +2 ;
System.out.println("a1+=2的值:" + a1);
a2 -= 2;
System.out.println("a2-=2的值:" + 2);
a3 *= 2;
System.out.println("a3*=2的值"+a3);
a4 /=2;
System.out.println("a4/=2的值"+a4);
a5 %=2;
System.out.println("a5%=2的值"+a5);
/*
* 在进行运算之前a1 和a2 的值 a1 = 4 a2 = 2 进行运算之后的a1和a2 的值 a1+=2的值6 程序运行可以得到a1+=2
* 的值等于6 就相当于 a1 = a1 +2 = 6
* a-=2 就相当于 a= a-2 = 2
* a*=2 就相当于a= a * 2 =8
* a/=2就相当于 a=a/2= 2
* a%2 就相当于 a= a%2 = 0
*/
程序的运行结果如下:

a + b=24
a - b = 0
a * b = 144
a / b =1
a % b = 0
a = 13
a进行++运算之后的结果是:13
h = 13
b  i进行--运算之前的值:
b = 12
b进行--之后的值
b = 11
i =10
在进行运算之前a1 到a5 的值
a1 =a2=a3=a4=a5= 4
进行运算之后的a1和a2 的值
a1+=2的值:6
a2-=2的值:2
a3*=2的值8
a4/=2的值2
a5%=2的值0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: