黑马程序员-JAVA基本的语法概念和常识

来源:互联网 发布:dijkstra算法优先队列 编辑:程序博客网 时间:2024/04/30 10:29


----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

0,Java概述及文件运行原理

Java开发现今就三种版本:JAVASE(标准版)、JAVAEE(企业版)、JAVAME(微小版),这三种版本的面对对象都是不一样的,SE是面对的大众,EE是面对的企业级开发,ME则是面对的手机JAVA开发。一般新手都开始从SE版入手,现在我们开始学习的就是SE版,至于EE我们要在后期学习。

Javase  程序的组成元素主要包括4个层次的内容,包、类、函数、字段、变量。最上层的组成元素是 javase 应用程序系统的话,javase 应用程序系统直接下一层组成元素是包,一个 java 应用程序系统由1个或者多个包构成。包是由一个或者多个类构成,在源码是各个 java 类,在字节码是各个 *.class 文件(ps:接口、枚举、注解我也算在类里面),在jvm中就是各个 Class 类的实例;类的组成元素有字段(ps:包含 final 修饰的变量)、函数、类(成员类);函数的组成元素有局部变量、类(局部类)、语句;变量不能在分(ps:变量是最小的数据单元,函数是最小的行为单元),类是最小的封闭单元。

1,基本格式

Java是严格区分大小写的。

Java是一种自由格式的语言。Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束。

2,三种注释

/***文档注释,用于对文档的详细情况进行标注*//**多行注释,用于对程序中的多个相连语句进行注释隐藏*///单行注释,用于对于程序中的一条语句进行注释隐藏

3,标志符

用作给变量、类、方法命名。

Java的标识符必须以字母、下划线_、美元符$开头,不能以数字开头,标识符除开头外的其他部分可以是字母、下划线_、美元符$、以及数字的任意组合,Java标识符大小写敏感,长度无限制,不能是Java中的关键字。

注意:Java不采用通常语言使用的 ASCII 字符集,而是采用 unicode 这样的标准的国际字符集,所以这里的字母的含义:英文、汉字等等,但尽量不要用汉字来定义标识符,更不能用关键字来作为发量名和方法名,但可以是关键字不其他单词的组合形式。

4,关键字

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

特点:关键字中所有字母都为小写



5,常量

在现实中,事物的属性这种信息在事物的运动发展过程中是变化的,或者是只能在事物发展到某个时刻才能确定这些信息,变量就是用来存储这种信息的对象,并把这种信息保存在内存中,方面我们使用语句来操作这些变量,实现事物运动变化的过程的描述,而常量表示不能改变的数值,是用来给我们向编译器表达数据的方式,人与编译器进行交流时用的数据形式

常量分类:整数常量;小数常量;布尔型常量;字符常量;字符串常量;null常量


整数”

byte 1个字节,最小值:-128,最大值:127

short 2个字节,最小值:-32768,最大值:32767

int 4个字节,最小值:-2147483648,最大值:2147483647

long 8个字节,最小值:-9223372036854775808,最大值:9223372036854775807

浮点数:

float 4个字节,最小值:1.4E-45,最大值:3.4028235E38

double 8个字节,最小值:4.9E-324,最大值:1.7976931348623157E308

字符:

char 2个字节,最小值:0,最大值:65535

布尔:

boolean 1个字节,true或false

6,变量

变量:内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。

定义变量的格式:数据类型  变量名初始化值;

作用域:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。

相同的作用域中不能定义两个同名变量。

生命周期:变量的生命周期从定义时开始,超出作用域后结束。变量生命周期以外不能使用。

补充:成员变量和局部变量的区别

(1)作用域:

成员变量:针对整个类有效;

局部变量:只在某个范围内有效(一般只的是方法,语句体内)。

(2)存储位置:

成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中;

局部变量:当方法被调用,或者语句被执行的时候存在,存储在栈内存中。当方法调用完,或者语句结束后,就自动释放。

(3)初始值:

成员变量:有默认的初始值;

局部变量:没有默认的初始值,使用前必须赋值。

7,函数

函数:就是一段有名字的代码,可以完成某一特定功能。

如果某个函数在执行的时候需要调用者传入数据,那么可以定义参数列表,用于接收数据。

如果函数运行之后需要返回给调用者数据,那么需要指定返回值类型,并且用关键字return返回。

定义函数的3个必要条件:函数名、参数列表、返回值类型。如果不需要参数也要写小括号,如果没有返回值类型要写void。

参数类型:函数的参数的类型,一旦定义传入时必须匹配。

返回值:函数运行结束后返回的值,使用return关键字返回。

返回值类型:函数运行结束后返回的值的类型,在类型非void情况下必须返回,而且必须类型匹配

形参:在定义函数时小括号中的参数,用来接收数据的参数。

实参:在调用函数时真正传入的参数,传递给函数的数据。

8,运算符

算数运算符


注意   

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

例如:int x=3510;x=x/1000*1000;  x的结果是3000

“+”除字符串相加功能外,还能把非字符串转换成字符串,

例如:System.out.println("5+5="+5+5);//打印结果是5+5=55

++、--:前缀是使用运算后的值,后缀是使用运算前的值。

比较运算符


逻辑运算符


| :两边都参与运算。

||:当左边为true时,右边不运算

&:无论左边是true还是false,右边都运算

&&:当左边为false时,右边不运算

<<:其实就是乘以2的移动的位数的次幂

>>:就是除以2的移动的位数次幂

>>:最高位补什么由原有数据的最高位值而定。

   如果最高位0,右移后,用0补空位

   如果最高位1,右移后,用1补空位

>>>:无论最高位是什么,右移后,都用0补

9,语句

1,条件语句

if语句

if(条件表达式){执行语句;}else{执行语句;}

switch语句
switch(表达式){case 取值1:执行语句;break;case 取值2:执行语句;break;…...default:执行语句;break;}


注意:

a,switch语句选择的类型只有四种:byte,short,int , char。

b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。

c,结束switch语句的两种情况:遇到break;执行到switch语句结束。

d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以 执行的语句,直到遇到break或者switch结尾结束。

对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广

2,循环语句

while语句

while(条件表达式){执行语句;}

dowhile语句

do{执行语句;}while(条件表达式);

do while特点是条件无论是否满足,循环体至少被执行一次

for语句

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

a,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。

b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

c,最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环

other语句

break(跳出),  continue(继续)

break语句:应用范围:选择结构(switch)和循环结构。

continue语句:应用于循环结构。

w:for(int x=0; x<3; x++){q:for(int y=0; y<4; y++){System.out.println("x="+x);break w;}}

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima