读书笔记--第2章:Java编程基础

**

读书笔记–第2章:Java编程基础

**
本书使用的是Java基础案例教程 黑马程序员编著 ISBN 978-7-115-43937-6
在这里插入图片描述
1:编写java代码,注意的几个关键点

(1):Java中的程序代码可分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。
(2):Java语言是严格区分大小写的。
(3):编写Java代码时,为了便于阅读,通常会使用一种良好的格式进行排版。
(4):Java程序中一句连续的字符串不能分开在两行中书写。(ps:将一个太长的字符串分在两行书写,可以先将这个字符串分成两个字符串,然后用(+)将这两个字符串连起来,在加号(+)处断行。)
例:可以写成这种形式:

System.out.println("这是一个"+
"Java程序!")

2:注释:

注释是对程序的某个功能或者某行代码的解释说明,它只在Java源文件中有效,在编译程序时,编译器会忽略这些注释信息,不会将其编译到class字节码文件中去。
(1):单行注释

int c=10;		//定义一个整型变量

(2):多行注释

/* int c=10;
   int x=5;   */

(3):文档注释
以“ /** ”开头,并在注释内容末尾以“ */ ”结束。

3:标识符

标识符可以有字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的关键字。
标识符要遵循一下规则
(1):包名所有字母一律小写;
(2):类名和接口名每个单词的首字母都要大写。
(3):常量名所有字母都大写,单词之间用下划线连接。
(4):变量名和方法名的第一个单词首字母小写,从第2个单词开始,每个单词首字母大写。
(5):在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。

4:Java关键字

使用java关键字,需要注意的地方
(1):所有的关键字都是小写的;
(2):程序中的标识符不能以关键字命名;
(3):const和goto是保留关键字,虽然Java中还没有任何意义,但在程序中不能用来作为自定义的标识符;
(4):true、false和null不属于关键字,它们是一个单独表示类型,不能直接使用。

5:常量

(1):整型常量
二进制:以0b或0B开头;
八进制:以0开头;
十进制:
十六进制:以0x或0X开头。
(2):浮点型常量
float 单精度浮点数
double 双精度浮点数
(3):字符常量
一个字符常量要用一对英文半角格式的单引号 ‘ ’ 引起来,它可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。
Java采用的是Unicode字符集,Unicode字符以 \u 开头,空白字符在Unicode码表中对应的值为 ‘ \u0000 ’ 。
(4):字符串常量
一个字符串常量要用一对英文半角格式的双引号( “ ” )引起来。
一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,及长度为零。
(5):布尔常量
布尔常量即布尔型的两个值true和flalse,该常量用于区分一个事物的真与假。
(6):null常量
null常量只有一个值null,表示对象的引用为空。

6:Java中的变量

Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序就会报错。在这里插入图片描述
其中,8种基本数据类型是Java语言内嵌的,在任何操作系统中都具有相同大小和属性,而引用数据类型是在Java程序中由编程人员自己定义的变量类型。

7:变量的类型转换

(1):自动类型转换(隐式类型转换)
满足一下两个条件
第一是两种数据类型彼此兼容;
第二是目标类型的取值范围大于源类型的取值范围。
例:short、char类型的数据可以赋值给int、long类型的变量。
(2):强制类型转换(显式类型转换)
格式:目标类型 变量名 = (目标类型) 值 ;

byte b = (byte) num ;

多学一招:表达式类型自动提升
byte、short和char类型的值都被提升为int类型;

如果有一个操作数是long类型,就将整个表达式提升为long类型;

如果有一个操作数是float类型,就将整个表达式提升为float类型;

如果任何一个操作数为double类型,结果将为double类型。

8:Java中的运算符

在Java中,运算符可分为算数运算符、赋值运算符、比较运算符、逻辑运算符。
(1):算数运算符
注1:在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。

例:3500/1000*3000    =3000

注:2:在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)符号无关。

-5%3  =-2 ;  而5%-3=2

(2):赋值运算符
注:在Java中可以通过一条赋值语句对多个变量进行赋值

int x ,y ,z ;
x=y=z=5;      //为3个变量同时赋值
int x=y=z=5;   //这样写是错误的。

(3):比较运算符
注:不能将比较运算符“==”误写成赋值运算符“=”;
(4):逻辑运算符

运算符 运算
&
|
^ 异或
!
&& 短路与
|| 短路非

注:与和短路与的区别是什么?
运算符“&”(与)和“&&”(短路与)都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则为false。当运算符“&”和“&&”的右边为表达式时,两者在使用上有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“&&”被称作短路与。(非与短路非是同样的道理)

9:选择结构语句

(1):if条件语句
if语句
if…else语句
if…else if…else语句
多学一招:在Java中有一种运算叫做三元运算,它和if-else语句类似,语法如下

判断条件?表达式1:表达式2

三元运算会得到一个结果,通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。
(2):switch条件语句

switch(表达式){
	case 目标值1:
		执行语句1
		breakcase 目标值2:
		执行语句2
		break.....
	case 目标值n:
		执行语句n
		breakdefault:
		执行语句n+1
		break}

在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则执行语句只需书写一次即可(在最下面书写。)
关于switch参数类型问题
   需要注意的是,在JDK5.0之前,switch语句中的表达式只能是byte,short,char,int类型的值,如果传入其他类型的值,程序会报错。在JDK5.0中,引入的新特性enum枚举可以作为switch语句表达式的值。在JDK7.0中也引入了新特性,switch语句可以接收一个String类型的值。
  
10:循环结构语句

(1):while循环语句
(2):do…while循环语句
注:while和do…while的区别:
  如果循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而do…while循环的循环体还是会执行一次。
(3):for循环语句

for(初始化表达式;循环条件;操作表达式){
	执行语句;
}

(4):跳转语句(break,continue)
在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现呢在循环语句中,作用是跳出循环语句,执行后面的代码。
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

11:方法(函数)

方法就是一段可以重复调用的代码。

修饰符  返回值类型  方法名([参数类型  参数名1,参数类型  参数名2...]){
	执行语句
	...
	return  返回值;
}

修饰符:有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等;
返回值类型:用于限定方法返回值的数据类型;
参数类型:用于限定调用方法时传入参数的数据类型;
参数名:是一个变量,用于接收调用方法时传入的数据;
return关键字:用于结束方法以及方法指定类型的值;
返回值:被return语句返回的值,该值会返回给调用者。

12:方法的重载

在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。值得注意的是,方法的重载与返回值类型无关,它需要满足两个条件,一是方法名相同,二是参数个数或参数类型不相同。

13:数组

数组是指一组数据的集合,数组中的每个数据被称作元素。数组可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。
下表是各类元素的默认值

数据类型 默认初始化值
byte,short,int,long 0
float,double 0.0
char 一个空字符,即’\u0000’
boolean false
引用数据类型 null,表示变量不引用任何对象

在定义数组时只指定数组的长度,由系统自动为元素赋初值的方式称作动态初始化。
在定义数组的同时就为数组的每个元素赋值,称作静态初始化。
静态初始化的两种格式:
<1>:类型 [ ] 数组名 = new 类型 [ ] {元素,元素,…};
<2>:类型 [ ] 数组名 = {元素,元素, 元素,…} (常用)
注:不能写成int [ ] x = new int [4]{1,2,3,4};。这样写编译器会报错。原因在于编译器会认为数据限定的元素个数[4]与实际存储的元素{1,2,3,4}个数有可能不一致,存在一定的安全隐患。

思考题:

1:请简述&和&&的区别

运算符“&”(与)和“&&”(短路与)都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则为false。当运算符“&”和“&&”的右边为表达式时,两者在使用上有一定的区别。在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“&&”被称作短路与。

2:简述break、continue和return语句的区别

  1. break :
    (1).结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。 (2).只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。[逐层判断,逐步跳出] (3).break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。 (4).当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。 总的来说:就近原则,结束当前的整个循环。

  2. return:
    (1).return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。 (2).return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。 (3). return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。

  3. continue:
    (1).终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。 (2).结束当前循环,进行下一次的循环判断。 (3).终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.

  • 文章是新手所写,难免会有些知识点不全或者错误,还望发现错误的朋友,留言批评改正。

猜你喜欢

转载自blog.csdn.net/m0_47305552/article/details/107210029