Java基本语法小结

来源:互联网 发布:流量攻击软件 编辑:程序博客网 时间:2024/04/30 23:10

一、Java相关的一些小知识


1.JDK,JRE,JVM的作用及关系

JVM:保证Java语言跨平台

JRE:Java程序的运行环境,包括了JVM和一些基本类库

JDK:Java程序的开发环境,包括了JRE和一些工具:比如javadoc等。

2.环境变量

path环境变量:保证javac命令可以在任意目录下运行。

classpath环境变量:保证class文件可以在任意目录下运行


二、Java基本语法


1.关键字:

被Java语言赋予特定含义的单词,全部小写。注意事项:goto和const作为保留字存在。

2.标识符:

给类,接口,方法,变量等起名字的字符序列。

1)构成:英文大小写字母,数字,$和_

2)注意事项:不能以数字开头且不能是关键字且区分大小写

3)约定俗成的命名规则:

A:包,全部小写,如:com;多级包情况下,包与包直接用.隔开如:com.itheima

B:类与接口,首字母大写,每个单词首字母大写,如:StudentClass

C:方法与变量,首字母小写,多个单词则从第二个单词开始,每个单词首字母大写: 如studentName

D:常量,全部大写,多个单词用_隔开如:DEFAULT_STUDENT_AGE

3.注释:

对程序进行解释说明的文字

1)分类:

A:单行注释://

B:多行注释:/**/

C:文档注释:/** */ 用于使用javadoc生成帮助文档

2)作用:解释说明程序,提高了代码的阅读性。


4.常量

程序执行的过程中,其值不发生改变的量。

1)分类:

A:字面值常量 :

字符串常量 "hello"

整数常量 12,23

小数常量 12.345

字符常量 ‘a’,’A’,'0’

布尔常量 true,false

空常量 null

B:自定义常量

用final修饰变量,如:final int a = 0;则a代表常量0

2)整数常量的四种表现形式

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.变量

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

6.数据类型

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

分类:

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

整数    占用字节数

byte          1

short        2

int             4

long         8

浮点数

float         4

double    8

字符

char         2

布尔

boolean  1

注意事项:

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

长整数要加L或者l,单精度的浮点数要加F或者f。

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

7.数据类型转换

1)分类:

A:默认转换

从小到大,基本过程如下:

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

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

B:强制转换

从大到小,可能会有精度的损失,一般不建议这样使用。

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

2)注意事项:

boolean类型不参与转换

8.运算符

1)算术运算符:+,-,*,/,%,++,--

A:+的3个含义:加法,正号,字符串连接符

B:/和%的区别:除法操作时,/取商,%取余数

C:++(--)的作用是自增(自减)

单独使用,放在操作数据的前面和后面效果一样。即a++或者++a效果一样。

参与操作使用,放在操作数的前面:先自增或者自减,再参与操作,例:

int a = 1;

int b = ++a;

最终b的值为2

放在操作数的后面:先参与操作,再自增或者自减,例:

int a = 1;

int b = a++;

最终b的值为1

2)赋值运算符:=,+=,-=,*=,/=,%=等

A:=叫做赋值运算符,是最基本的赋值运算符

int a = 0; 把0赋值给int类型的变量a。

B:+=,-=,*=,/=,%=叫做扩展赋值运算符,特点是隐含了自动强制转换。

3)比较运算符:==,!=,>,>=,<,<=,最终结果总是boolean类型。注意:千万不要把==写成了=

4)逻辑运算符:&,|,^,!,&&,||,用于连接boolean类型的式子

总结:

&:有false则false

|:有true则true

^:相同则false,不同则true。

!:非true则false,非false则true

&&:结果和&是一样的,不过有短路效果。左边是false,右边不执行。

||:结果和|是一样的,不过有短路效果。左边是true,右边不执行。

5)位运算符:^,<<,>>,>>>等。一个数据针对另一个数据位异或两次,该数不变

6)三元运算符:?:,格式为,比较表达式?表达式1:表达式2;

执行流程:

首先计算比较表达式的值。

如果是true,取表达式1为结果。

如果是false,取表达式2为结果。

9:流程控制语句

1)顺序结构:从上往下,依次执行

2)选择结构:按照不同的选择,执行不同的代码

A:if语句


B:switch语句

switch (表达式) {case 值1:语句体1;break;case 值2:语句体2;break;default:语句体n+1;break;}

首先计算表达式的值,和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。如果没有匹配,就执行default的语句体n+1。

注意:

表达式只可以是byte,short,int,char(JDK5以后可以是enum,JDK7以后可以是 String)

case后面只能是常量,不能是变量,多个case后面的值不能出现相同的

default可以在任意位置。但是建议在最后。

3)循环结构:做一些重复的代码有for,while,do...while

A:

for(初始化语句;判断条件语句;控制条件语句){循环体语句;}


循环体语句如果是一条,可以省略大括号,但是不建议

执行流程:

a:执行初始化语句

b:执行判断条件语句

如果是true,继续

如果是false,循环结束

c:执行循环体语句

d:执行控制条件语句

e:回到b

B:

while(判断条件语句) {循环体语句;}


扩展格式:

while(判断条件语句){循环体语句;控制条件语句;}


初始化语句;

C:do...while循环

基本格式
do {循环体语句;}while(判断条件语句);


扩展格式:
初始化语句;
do {循环体语句;控制条件语句;}while(判断条件语句);


D:for和while的区别

a:使用上的区别

for语句的控制条件变量,在循环结束后不能在使用了。

而while的可以继续使用。

b:理解上的区别

for适合于一个范围的判断

while适合次数不明确的

E:do...while和另外两种循环的区别:do...while循环至少执行一次循环体,for和while必须先 判断条件是否是true,然后才能决定是否执行循环体
4)控制跳转语句
A:break:中断
用在循环和switch语句中,离开此应用场景无意义。

用于跳出单层循环和跳出多层循环,跳出多层循环时需要标签语句的配合

B:continue:继续

用在循环中,离开此应用场景无意义。用于跳出单层循环的一次,可以继续下一次

C:return:返回

用于结束方法,一旦遇到return,程序就不会在继续往后执行。


10.方法

就是完成特定功能的代码块。在很多语言里面有函数的定义,而在Java中,函数被称为方法。

1)格式:

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


修饰符:有 public static,等

返回值类型:功能结果的数据类型

方法名:方法的名字,方便我们调用该方法。

参数类型:参数的数据类型

参数名:变量

参数分类:

实参:实际参与运算的数据

形参:方法上定义的,用于接收实际参数的变量

方法体语句:完成功能的代码块

return:结束方法

返回值:功能的结果,由return带给调用者。

2)注意事项

A:方法不调用不执行
B:方法之间是平级关系,不能嵌套定义
C:方法定义的时候,参数是用,隔开的
D:方法在调用的时候,不用在传递数据类型
E:如果方法有明确的返回值类型,就必须有return语句返回。

3)方法重载

在同一个类中,方法名相同,参数列表不同。与返回值无关。

参数列表不同:

参数的个数不同。

参数的对应的数据类型不同。

11.数组

存储同一种数据类型的多个元素的容器。

1)特点:每一个元素都有编号(索引),从0开始,最大编号是长度-1。

2)定义格式
A:数据类型[] 数组名;
B:数据类型 数组名[];(不建议使用)

3)初始化

A:动态初始化:只给长度,系统给出默认值,如:int[] arr = new int[3];

B:静态初始化:给出值,系统决定长度,如:int[] arr = new int[]{1,2,3};简化版:int[] arr = {1,2,3};

4)二维数组

元素是一维数组的数组。

格式:

A:数据类型[][] 数组名 = new 数据类型[m][n];

B:数据类型[][] 数组名 = new 数据类型[m][];

C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};

D:数据类型[][] 数组名 = {{...},{...},{...}};

12.Java的内存分配

Java的内存分配主要为五部分:

A:栈 存储局部变量

B:堆 存储所有new出来的

C:方法区(面向对象部分详细讲解)

D:本地方法区(系统相关)

E:寄存器(CPU使用)

注意事项:

a:局部变量 在方法定义中或者方法声明上定义的变量。

b:栈内存和堆内存的区别

栈:数据使用完毕,就消失。

堆:每一个new出来的东西都有地址,每一个变量都有默认值

byte,short,int,long 0

float,double 0.0

char '\u0000'

boolean false

引用类型 null

   数据使用完毕后,在垃圾回收器空闲的时候回收。




0 0
原创粉丝点击