首页 > 代码库 > 2-1 Java语言基础

2-1 Java语言基础

本章内容:

· 关键字

· 标识符

· 注释

· 常量和变量

· 运算符

· 语句

· 函数

· 数组

关键字:

· 关键字概述

被Java语言赋予特定含义的单词

· 关键字特点

组成关键字的字母全部小写

· 关键字的注意事项

goto和const作为保留字存在,目前并不使用

类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

判断下列哪些是关键字

class,HelloWorld,public,static,void,main,String.System

用于定义数据类型的关键字

class

Interface

byte

short

Int

long

float

double

char

boolean

void

用于定义数据类型值得关键字

true

false

null

用于定义流程控制的关键字

if

else

switch

case

default

while

do

for

break

continue

return

用于定义访问权限修饰符的关键字

private

protected

public

用于定义类、函数、变量修饰符的关键字

abstract

final

static

synchronized

用于定义类与类之间关系的关键字

extends

implements

用于定义建立实例及引用实例,判断实例的关键字

new

this

super

instanceof

用于异常处理的关键字

try

catch

finally

throw

throws

用于包的关键字

package

Import

其他修饰符关键字

native

strictfp

transient

volatile

assert

标识符

· 标识符概述

就是给类,接口,变量等起名字时使用的字符序列

· 组成规则

英文大小写字母

数字字符

$和_

· 注意事项

不能以数字开头

不能是Java中的关键字

区分大小写

注意:

1:起名字,不能再随便,无规矩,不成方圆

2:针对注意事项,举例演示

3:下面那些合法,那些不合法:

HelloWorld,DataClass,_983,$bS5_c7,class(X),DataClass#(X),98.3(X),Hello World(X)

标识符(常见命名规则)

· 包(其实就是文件夹,用于解决相同类名问题)

单级和多级分别举例

· 类或者接口

一个单词和和多个单词分别举例

· 方法和变量

一个单词和和多个单词分别举例

· 常量

一个单词和和多个单词分别举例

注释:

注释概述

用于解释说明程序的文字

Java中注释分类格式

单行注释

格式: //注释文字

多行注释

格式: /* 注释文字 */

文档注释

格式:/** 注释文字 */

注意事项:

注释是一个程序员必须要具有的良好编程习惯。初学者编写程序可以养成习惯:先写注释再写代码。

将自己的思想通过注释先整理出来,在用代码去体现。因为代码仅仅是思想的一种体现形式而已。

HelloWorld的注释版:

需求:写一个程序,在控制台输出HelloWorld

分析:

写一个java程序,首先定义类。

程序要想能够被jvm调用,必须定义main方法。

程序要想有输出结果,必须用输出语句。

实现:

定义类用的是class关键字,后面跟的是类名

main方法基本格式

输出语句基本格式

注释的简单功能:

解释说明程序,提高程序的阅读性

可以帮助我们排错,后面我们会讲解更高级的排错方式

常量:

常量概述

在程序执行的过程中其值不可以发生改变

Java中常量分类

字面值常量

自定义常量(面向对象部分讲)

字符串常量 用双引号括起来的内容

整数常量 所有整数

12,23

小数常量 所有小数

12.34,56.78

字符常量 用单引号括起来的内容

‘a’,’A’,’0’

布尔常量 较为特有,只有true和false

空常量 null(数组部分讲解)

不同进制:

clip_image002

Java针对整数常量提供了4种表现形式

二进制

八进制

十进制

十六进制

进制概述

进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

不同进制的数据组成

二进制

由0,1组成。以0b开头

八进制

由0,1,…7组成。以0开头

十进制

由0,1,…9组成。整数默认是十进制的

十六进制

由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

进制转换

其他进制到十进制

通过十进制推出结论

clip_image004

clip_image006

把0b100,0100,0x100转换成十进制

clip_image007

十进制到其他进制

通过十进制推出结论

把52分别表示成二进制,八进制,十六进制

十进制和二进制的快速转换

8421码

100转成二进制

101101转成十进制

二进制和八进制,十六进制如何转换

以十进制作为桥梁

二进制到八进制 3位组合

100110

二进制到十六进制 4位组合

100110

clip_image009

有符号数据表示法

在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。

原码

就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码

正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码

正数的补码与其原码相同;负数的补码是在其反码的末位加1。

clip_image011

clip_image012

变量

clip_image014

变量概述

在程序执行的过程中,在某个范围内其值可以发生改变的量

理解:如同数学中的未知数

变量定义格式

数据类型 变量名 = 初始化值;

注意:格式是固定的,记住格式,以不变应万变

数据类型:

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

clip_image015

clip_image016

使用变量注意事项:

作用域

变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

初始化值

没有初始化值不能直接使用

在一行上建议只定义一个变量

可以定义多个,但是不建议

+是一个运算符, 我们应该能够看懂,做数据的加法。

boolean类型不能转换为其他的数据类型

默认转换

byte,short,char—int—long—float—double

byte,short,char相互之间补转换,他们参与运算首先转换为int类型

强制转换

目标类型 变量名=(目标类型)(被转换的数据);

1:案例演示隐式转换,并画图讲解

byte b = 10;

int i = 100;

System.out.println(b+i);

//有问题

byte bb = b + i;

System.out.println(bb);

//没有问题

int j = b + i;

System.out.println(j);

2:刚才上面的那个例子不可以,但是,我们明明知道它就是在这个范围内,我就想赋值,肿么办呢?

用强制转换

目标数据类型 变量名 = (目标数据类型)(被转换的数据);

3:那么,我们到底用那种转换呢?

一般建议,最好不要随意使用强制类型转换,容易造成数据精度的损失。

(1)容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。

(2)有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

面试题

byte b1=3,b2=4,b;

b=b1+b2;

b=3+4;

哪句是编译失败的呢?为什么呢?

思考题

byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?

练习:byte b = 300;

请写出下列程序结果

System.out.println(‘a’);

System.out.println(‘a’+1);

System.out.println(“hello”+’a’+1);

System.out.println(‘a’+1+”hello”);

System.out.println(“5+5=”+5+5);

System.out.println(5+5+”=5+5”);

总结:

1:关键字(掌握)

(1)被Java语言赋予特定含义的单词

(2)特点:

全部小写。

(3)注意事项:

A:goto和const作为保留字存在。

B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记

2:标识符(掌握)

(1)就是给类,接口,方法,变量等起名字的字符序列

(2)组成规则:

A:英文大小写字母

B:数字

C:$和_

(3)注意事项:

A:不能以数字开头

B:不能是java中的关键字

C:区分大小写

(4)常见的命名规则(见名知意)

A:包 全部小写

单级包:小写

举例:liuyi,com

多级包:小写,并用.隔开

举例:cn.itcast,com.baidu

B:类或者接口

一个单词:首字母大写

举例:Student,Demo

多个单词:每个单词首字母大写

举例:HelloWorld,StudentName

C:方法或者变量

一个单词:首字母小写

举例:name,main

多个单词:从第二个单词开始,每个单词首字母大写

举例:studentAge,showAllNames()

D:常量

全部大写

一个单词:大写

举例:PI

多个单词:大写,并用_隔开

举例:STUDENT_MAX_AGE

3:注释(掌握)

(1)就是对程序进行解释说明的文字

(2)分类:

A:单行注释 //

B:多行注释 /**/

C:文档注释(后面讲) /** */

(3)把HelloWorld案例写了一个带注释的版本。

后面我们要写一个程序的过程。

需求:

分析:

实现:

代码体现:

(4)注释的作用

A:解释说明程序,提高了代码的阅读性。

B:可以帮助我们调试程序。

后面我们会讲解一个更高端的一个调试工具

4:常量(掌握)

(1)在程序执行的过程中,其值不发生改变的量

(2)分类:

A:字面值常量

B:自定义常量(后面讲)

(3)字面值常量

A:字符串常量 "hello"

B:整数常量 12,23

C:小数常量 12.345

D:字符常量 ‘a‘,‘A‘,‘0‘

E:布尔常量 true,false

F:空常量 null(后面讲)

(4)在Java中针对整数常量提供了四种表现形式

A:二进制 由0,1组成。以0b开头。

B:八进制 由0,1,...7组成。以0开头。

C:十进制 由0,1,...9组成。整数默认是十进制。

D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

5:进制转换(了解)

(1)其他进制到十进制

系数:就是每一个位上的数值

基数:x进制的基数就是x

权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。

结果:系数*基数^权次幂之和。

(2)十进制到其他进制

除基取余,直到商为0,余数反转。

(3)进制转换的快速转换法

A:十进制和二进制间的转换

8421码。

B:二进制到八进制,十六进制的转换

6:变量(掌握)

(1)在程序的执行过程中,其值在某个范围内可以发生改变的量

(2)变量的定义格式:

A:数据类型 变量名 = 初始化值;

B:数据类型 变量名;

变量名 = 初始化值;

7:数据类型(掌握)

(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。

(2)分类:

A:基本数据类型:4类8种

B:引用数据类型:类,接口,数组。

(3)基本数据类型

A:整数 占用字节数

byte 1

short 2

int 4

long 8

B:浮点数

float 4

double 8

C:字符

char 2

D:布尔

boolean 1

注意:

整数默认是int类型,浮点数默认是double。

长整数要加L或者l。

单精度的浮点数要加F或者f。

8:数据类型转换(掌握)

(1)boolean类型不参与转换

(2)默认转换

A:从小到大

B:byte,short,char -- int -- long -- float -- double

C:byte,short,char之间不相互转换,直接转成int类型参与运算。

(3)强制转换

A:从大到小

B:可能会有精度的损失,一般不建议这样使用。

C:格式:

目标数据类型 变量名 = (目标数据类型) (被转换的数据);

(4)思考题和面试题:

A:下面两种方式有区别吗?

float f1 = 12.345f;

float f2 = (float)12.345;

B:下面的程序有问题吗,如果有,在哪里呢?

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;

byte b4 = 3 + 4;

C:下面的操作结果是什么呢?

byte b = (byte)130;

D:字符参与运算

是查找ASCII里面的值

‘a‘ 97

‘A‘ 65

‘0‘ 48

System.out.println(‘a‘);

System.out.println(‘a‘ + 1);

E:字符串参与运算

这里其实是字符串的连接

System.out.println("hello"+‘a‘+1);

System.out.println(‘a‘+1+"hello");

System.out.println("5+5="+5+5);

System.out.println(5+5+"=5+5");

附录:

常用字符与ASCII代码对照表

ASCII代码

2-1 Java语言基础