栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第二章 Java语言基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第二章 Java语言基础

目录

2.1 代码注释与编码规范

2.2 变量与常量

2.2.1 标识符与关键字

2.2.2 变量

2.2.3 常量

2.3 基本数据类型

2.3.1 整数类型 

2.3.2 浮点 类型 

2.3.3 字符类型

2.3.4 布尔类型

2.4 数据类型转换

2.4.1 隐式转换

2.4.2 显式转换

2.5 运算符

2.5.1 赋值运算符

2.5.2 算术运算符

2.5.3 自增和自减运算符

2.5.4 关系运算符

2.5.5 逻辑运算符 

2.5.6 位运算符

2.5.7 复合赋值运算符

2.5.9 圆括号

2.5.10 运算符优先级


2.1 代码注释与编码规范

1.“//”注联标记,从符号“//”开始直到换行为止的所有内容均作为注释而被编泽器忽略。

例如:

2.“”为多行注释标记,符号“”之间的所有内容均为注释内容。注释中的内容可以换行。

 例如:

 3.“”为文档注释标记。符号“”之间的内容均为文档注释内容。当文档注释出现在声明(如类的声明、类的成员变量的声明、类的成员方法声明等)之前时,会被Javadoc文档工具读取作为Javadoc文档内容。文档注释的格式与多行注释的格式相同。

2.2 变量与常量

2.2.1 标识符与关键字

1.Java语言规定标识符由任意顺序的字母、下划线(_)、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的保留关键字。

编写Java代码命名规范:
(1)类名:通常使用名词,第一个单词字母必须大写,后续单词首字母大写。
(2)方法名:通常使用动词。第一个单词首字母小写,后续单词首字母大写。
(3)变量:第一个单词首字母小写,后续单词首字母大写。
(4)常量:所有字母均大写。
(5)单词的拼接法:通常使用“userLastName"方式拼接单词,而不是user-last-name

 2.关键字是Java语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。简单理解为凡是在Eclipse变成红色粗体的单词,都是关键字。

2.2.2 变量

变量名的规则

(1)变量名必须是一个有效标识符。
(2)变量名不可以使用java 中的关键字。
(3)变量名不能重复。
(4)应选择有意义的单词作为变量名。 

2.2.3 常量
package hellojava;
public class ConstantTest{
final double PI=3.14;//声明常量PI
  public static void main(String[] args) {
	final double PI=3.14;
	//PI=1.1;
	System.out.println("常量PI的值为:"+PI);
	System.out.println("半径为3的圆的周长为:"+(PI*2*3));//使用常量
	System.out.println("半径为4的圆的面积为:"+(PI*4*4));
   }
  
}

 

2.3 基本数据类型

2.3.1 整数类型 

1.整数类型用来存储整数数值,即没有小数部分的数值,可以是正数,也可以是负数。整型数据根据它在内存中所占大小的不同,可分为byte、short int和long 4种类型。它们具有不同的取值范围。

整数数据类型 

数据类型

内分配空间

取值范围

字节

长度

byte

1字节

8位

-128~127

short

2字节

16位

- 32768~32767

int

4字节

32位

-2147483648~2147483647

long

8字节

64位

-9223372036854775808~9223372036854775807

 2.整型数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。

package hellojava;

public class Keben {
public static void main(String[] args) {
    int a=11;//十进制整型
    System.out.println(a);//1输出十进制表示的整型值
    int b=001;//八进制整型
    System.out.println(b);//输出八进制表示的整型值
    int c=0x11;//十六进制整型
    System.out.println(c);//输出十六进制表示的整型值
	}

}

2.3.2 浮点 类型 

1. 浮点类型表示有小数部分的数字。Java 语言中浮点类型分为单精度浮点类型(loat) 和双精度浮点类型(double), 它们具有不同的取值范围。

浮点型数据类型 

数据类型

内存空间(8位等于1字节)

取值范围

字节

长度

float

4字节

32位

1.4E-45~3.4028235E38

double

8字节

64位

4.9E-324~1.7976931348623157E308

2. 在默认情况下小数都被看作double型,若想使用float 型小数,则需要在小数后面添加F或f,另外,可以使用后缀d或D来明确表明这是一个double 类型数据。但加不加“d”没有硬性规定,可以加也可以不加。而声明float 型变量时如果不加“f”,系统会认为是double类型而出错。下 面举例介绍声明浮点类型变量的方法。

package hellojava;
public class Dkjkjk {
	public static void main(String[] args) {
	double a =4.35*100;//用double计算4.35*100的结果
	System.out.println("a="+a);//输出这个double值
	int b =(int) a;//将double类型强制转换成int类型
    System.out.println("b="+b);//输出int值
    System.out.println("a的四舍五入值="+Math.round(a));//使用四舍五入
	}

}

 

package hellojava;
public class DoubleUnAccurate {
	public static void main(String[] args) {
		double a=0.1;
		double b=2.0-1.9;
		System.out.println("a="+a);
		System.out.println("b="+b);
		System.out.println("a==b的结果:"+(a==b));//a==b的结果是false
		
		boolean bool=Math.abs(a-b)<(1e-6);
		System.out.println("两数之差绝对值小于最小数的结果:"+bool);
	}

}

 

2.3.3 字符类型

1.字符类型(char) 用于存储单个字符,占用16位(两个字节)的内存空间。在声明字符型变量时,要以单引号表示,如‘s’表示一个字符。
2.同C、C++语言一样,Java语言也可以把字符作为整数对待。由于Unicode编码采用无符号编码,可以存储65536个字符(0x0000 0ffff),所以Java中的字符几乎可以处理所有国家的语言文字。

 3.转义字符是一种特殊的字符变量, 其以反斜杠“》”开头,后跟-一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。

转义字符 

4.将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号。

package hellojava;
public class Zhuanyizifu {
	public static void main(String[] args) {
		char c1='\';//反斜杠转义字符
		char c2=''';//单引号转义字符
		char c3='"';//双引号转义字符
		char c4='u2605';//16进制表示的字符
		char c5='101';//8进制表示字符
		char c6='t';//制表符转义字符
		char c7='n';//换行符转义字符
		System.out.println("["+c1+"]");
		System.out.println("["+c2+"]");
		System.out.println("["+c3+"]");
		System.out.println("["+c4+"]");
		System.out.println("["+c5+"]");  
		System.out.println("["+c6+"]");
		System.out.println("["+c7+"]");
	}

}

 

2.3.4 布尔类型

1.布尔类型又称逻辑类型,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。

2.通过关键字boolean来声明布尔类型变量。

package hellojava;
public class BooleanTest {
	public static void main(String[] args) {
		boolean b;//声明布尔型变量b
		  boolean bl,b2; // 声明布尔型变量bl、b2
		  boolean b3=true,b4=false;//声明布尔型变量b1赋给初值true,b2赋给初值false
		  boolean b5=2<3,b6=(2 == 4);//声明布尔型变量赋与逻辑判断的结果 
		  System.out.println("b5的结果是:"+b5);
		  System.out.println("b6的结果是:"+b6);
	}

}

 

3. 在Java虚拟机中,布尔值只使用1位(bit), 但由于Java最小分配单元是1字节,所以一个布尔变量在内存中会分配一个字节。

2.4 数据类型转换

 1.类型转换是将一个值从一种类型更改为另种类型的过程。 例如,不仅可以将String类型数据“457”转换为一个数值型,而且可以将任意类型的数据转换为String 类型。

2.如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。

3.数据类型转换有两种方式,即隐式转换与显式转换。

2.4.1 隐式转换

1.从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换, 也可以称为自动转换。下列基本数据类型会涉及数据转换,不包括逻辑类型。这些类型按精度从“低”到“高”排列的顺序为byte < short < int < long < float < double。

 

package hellojava;

public class Shujuzhuanhuan {

	public static void main(String[] args) {
		//声明byte型变量mybyte,并把byte型变量允许的最大值赋给mybyte
		byte mybyte =127;
		  int myint=150;//声明int型变量myint,并赋值150
		  float myfloat=452.12f;//声明float型变量myfloat,并赋值
		  char mychar=10; //声明char型变量mychar,并赋值
		  double mydouble=45.46546;//声明double型变量,并赋值
		  
		  System.out.println("byte型与float型数据进行运算结果为:"+(mybyte+myfloat));
		  System.out.println("byte型与int型数据进行运算结果为:"+(mybyte*myint));
		  System.out.println("byte型与char型数据进行运算结果为:"+(mybyte/mychar));
		  System.out.println("double型与char型数据进行运算结果为:"+(mydouble+mychar));
 }
}

2.4.2 显式转换

 当把高精度的变量值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换,当执行显式类型转换时可能会导致精度损失。

package hellojava;

public class ExplicitConversion {

	public static void main(String[] args) {
		    int a=(int)45.23;//double类型强制转换int类型
		    long b=(long)456.6f;//float类型强制转换long类型 
		    char c=(char)97.14;//double类型强制转换char类型
		    System.out.println("45.23强制转换成int的结果:"+a);
		    System.out.println("456.6f强制转换成int的结果:"+b);
		    System.out.println("97.14强制转换成int的结果:"+c);
	}

}

2.5 运算符

 提供了丰富的运算符,如赋值运算符、算术运算符和比较运算符等。本节将向读者介绍这些运算。 

2.5.1 赋值运算符

 1.赋值运算符以符号“=”表示,它是一个双目运算符(对两个操作数做处理),其功能是将右边操作数所含的值赋给左边的操作数。

2.左边的操作数必须是一个量, 而右边的操作数则可以是变量(如a、number)、 常量(如123、‘book’)、有效的表达式(如45*12)。

package hellojava;
public class EqualsSign {
	public static void main(String[] args) {
			     int a,b,c=11;//声明整型变量a,b,c
			     a=32;//将32赋值给变量a
			     c=b=a+4;//将a与4的和先赋值给变量b,再赋值给变量c
			     System.out.println("a="+a);
			     System.out.println("b="+b);
			     System.out.println("c="+c);
	}

}

 

2.5.2 算术运算符

 算术运算符

运算符说明实例结果
+12.45f+1527.45
-4.56-0.164.4
*5L*12.45f62.25
/7/23
%取余12%102

 其中,“+”和“_”运算符还可以作为数据的正负符号,如+5、-7。

package hellojava;

public class ArithemticOperator {

	public static void main(String[] args) {
		float num1 = 45.2f; 
		  int num2 = 120;
		  int num3 =17, num4=10;
		  System.out.println("num1+num2的和为:"+(num1+num2)); 
		  System.out.println("num1-num2的差为:"+(num1-num2));
		  System.out.println("num1*num2的积为:"+(num1*num2)); 
		  System.out.println("num1/num2的商为:"+(num1 /num2)); 
		  System.out.println("num3/num4的余数为:"+(num3%num4));
	}

}

 

2.5.3 自增和自减运算符

 1.自增和自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增和自减运算符的作用是使变量的值增1或减1。

package hellojava;

public class AutoIncrementDecreasing {
	public static void main(String[] args) {
		int a =1;//创整型量初始值为1
		  System.out.println("a="+a);//输出此时a的值 
		  a++;
		  // a自增+1
		  System.out.println("a++="+a);//输出此时a的值 
		  a++;
		  // a自增+1
		  System.out.println("a++="+a);// 输出此时a的值 
		  a++;
		  //a自增+1
		  System.out.println("a++="+a);// 输出此时a的值 
		  a--;
		  //a自减-1
		  System.out.println("a--="+a);// 输出此时a的值
	}

}

 

 2.自增自减运算符摆放位置不同,增减的操作顺序也会随之不同。前置的自增、自减运算符会先将变量的值加1 (减1),再让该变量参与表达式的运算。后置的自增、自减运算符会先让变量参与表达式的运算,再将该变量加1 (减1)。

2.5.4 关系运算符

 关系送算符属于双目运算符,用来判断一个操作数与另外一个操作数之间的关系。关系运算符的计算结果都是布尓炎型的。

运算符说明实例结果
==等于2==3false
<小于2<3true
>大于2>3false
<=小于等于5<=6true
>=大于等于7>=7true
!=不等于2!=3ture
package hellojava;
public class RelationalOperator {
	public static void main(String[] args) {
		int num1 =4,num2=7; 
		  int num3 =7;
		  System.out.println("numlnum2 的结果:"+(num1 > num2)); 
		  System.out.println("num1==num2的结果:"+(num1 ==num2)); 
		  System.out.println("numl!=num2 的结果:"+(num1 != num2)); 
		  System.out.println("numl<=num2的结果:"+(num1 <= num2)); 
		  System.out.println("num2>=num3的结果:"+(num2>= num3));
	}

}

 

2.5.5 逻辑运算符 

1. 逻辑运算符是对真和假这两种逻辑值进行运算,运算后的结果仍是一个逻辑值。逻辑运算符包括&& (逻辑与)、 II (逻辑或)、! (逻辑非)。逻辑运算符计算的值必须是boolean 型数据。在逻辑运算符中,除了“!”是单目运算符之外,其他都是双目运算符。

 逻辑运算符

运算符含义举例结果
&&逻辑与A&&B(对)与(错)=错
||逻辑或A||B(对)或(错)=对
逻辑非!A不(对)=错

 逻辑运算符的运算结果

A

B

A&&B

A||B

!A

ture

ture

ture

ture

false

ture

false

false

ture

false

false

ture

false

ture

ture

false

false

false

false

ture

 2.逻辑运算符与关系运算符同时使用,可以完成复杂的逻辑运算。 

package hellojava;

public class LogicalAndRelational {

	public static void main(String[] args) {
		int a = 2;      //声明int型变量a
		  int b =5;      //声明int型变量b
		  //声明boolean型变量,用于保存应用逻辑运算符“&&”后的返回值
		  boolean result =((a >b) && (a != b));
		  // 声明boolean 型变量,用于保存应用逻辑运算符“||”后的返回值
		  boolean result2 = ((a > b) || (a !=b));
		  System.out.println(result);   // 将量result 输出 
		  System.out.println(result2);  //将变量result2输出
	}

}

 

2.5.6 位运算符

1. 位运算的操作数类型是整型,可以是有符号的也可以是无符号的。位运算符可以分为两大类:位逻辑运算符和位移运算符。

运算符

含义

举例

&

a&b

|

a|b

~

取反

~a

^

异或

a^b

<<

左移位

a<<2

>>

右移位

b>>4

>>>

无符号右移位

x>>>2

 2.位逻辑运算符包括&、|、^和~,前三个是双目运算符,第四个是单目运算符。

A

B

A&B

A|B

A^B

~A

0

0

0

0

0

1

1

0

0

1

1

0

0

1

0

1

1

1

1

1

1

1

0

0

1.位逻辑与实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求与,若两个操作数对象同一位都为1,则结果对应位为1,否则结果对应位为0。
2.位逻辑或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求或,若两个操作数对象同一位都为0, 则结果对应位为0,否则结果对应位为1.
3.位逻辑异或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求异或,若两个操作数对象同一位不同时,则结果对应位为1,否则结果对应位为0。
4.取反运算符,实际上是将操作数转换成二进制表示方式,然后将各位二进制位由1变为0,由0变为1。

A

B

A&B

A|B

A^B

ture

ture

ture

ture

false

ture

false

false

ture

ture

false

ture

false

ture

ture

false

false

false

false

false

package hellojava;

public class LogicalOperator {

	public static void main(String[] args) {
		short x = ~123;       //给short x 赋值
		  System.out.println("12与8的结果为: " + (12 & 8));  //位逻辑与计算整数的结果
		  System.out.println("4或8的结果为: " + (4|8));      //位逻辑与计算整数的结果
		  System.out.println("31异或22的结果为: " + (31^ 22));  //位逻辑异与计算整数的结果
		  System.out.println("123取反的结果为: " + x);          //位逻辑取反与计算整数的结果
		  System.out.println("2>3与4!-7的与结果: " + (2 >3 &4 != 7));   //位逻辑与计算布尔值的结果
		  System.out.println("2>3与4!-7的或结果: " + (2 > 3 | 4 != 7));  //位逻辑与计算布尔值的结果
		  System.out.println("2<3与4!=7的与异或结果: " + (2 < 3 ^ 4 != 7));  //位逻辑与计算布尔值的结果
	}

}

 

 1.移位运算有三个,分别是左移<<、 右移>>和无符号右移>>>,这三个运算符都是双目的。

(1)左移是将一个二进制操作数对象按指定的移动位数向左移,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。左移相当于乘以2的幂。

(2)右移是将一个二进制的数按指定的位数向右移动,右边(低位端)滋出的位被丢弃,左边(高位端)用符号位补充,正数的符号位为0,负数的符号为1.右移位运算相当于除以2的幂。

(3)无符号右移是将一个二进制的数按指定的位数向右移动,右边(低位端)溢出的位被丢弃,左边(高位端)一律用0填充,运算结果相当于除以2的幂。

package hellojava;

public class BitwiseOperator1 {

	public static void main(String[] args) {
		int a = 24;
		   System.out.println(a +"右移两位的结果是:"+ (a >> 2)); 
		   int b = -16;
		   System.out.println(b+"左移三位的结果是:"+ (b << 3));
		   int c = -256;
		   System.out.println(c+"无符号右移2位的结果是:"+ (c >>> 2));//输出C+2
	}

}

package hellojava;
public class BitwiseOperator2 {
	public static void main(String[] args) {
		byte a = (byte)(-32 >>> 1);
		   System.out.println("byte无符号右移的结果:" + a);
		   short b=(short) (-128 >>> 4);
		   System.out.println("short无符号右移的结果:" + b);
	}

}

2.5.7 复合赋值运算符

 和其他主流编程语言一样, Java 中也有复合赋值运算符。所谓的复合赋值运算符,就是将赋值运算符与其他运算符合并成个运算符来使用,从而同时实现两种运算符的效果。

2.5.9 圆括号

 圆括号可以提升公式中计算过程的优先级,在编程中常用,使用圆括号更改运算的优先级,可以得到不同的结果。

2.5.10 运算符优先级

1.Java中的表达式就是使用运算符连接起来的符合Java规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。通常优先级由高到低的顺序依次是增量和减量运算、算术运算、比较运算、逻辑运算、赋值运算。

2.如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号