上一篇文章介绍完怎么配置环境(环境配置),环境配置好以后接下来就要开始学习Java了,包括java语言的演化过程和java的语法。
java语言的演化过程
java语言历史比较早,形成了下面的三种技术架构:
javaSE:完成桌面应用程序的开发,是其它两者的基础;
javaEE:开发企业环境下的应用程序,主要针对web程序开发;
javaME:开发电子消费产品和嵌入式设备,如手机中的程序;
现在市面上JavaME已经没有了,因为移动端主要是Android和iOS,对于Android来说也是使用的java语言来进行开发的,所以学习Android只需要掌握JavaSE的知识即可,也就是掌握java的基本语法就可以了,下面开始说java的语法部分。
注释
注释的意思就是解释代码的,比如下面的例子:
//定义一个变量
int a = 5;
/* 再定义一个变量 */
int b = 6;
上面的汉字就是对下面代码的解释,计算机在识别代码的时候会忽略注释的内容。在java中有三种注释方式:
单行注释:使用 // … 来表示
多行注释:使用 /…/ 来表示
文档注释:使用 /** … */ 来表示
在实际开发中单行注释和多行注释使用比较多,文档注释基本不用。
基本数据类型
我们知道计算机是只能识别二进制的,就是在计算机的世界里只有0和1,但是为了便于编程,人们抽象出了很多高级语言,比如java
在这些高级语言中就不必使用二级制来和计算机沟通了,但是也需要定义一些数据类型,就好像我们汉语中定义的一些词语、成语,我们说的话都是通过这些词语组成的,在java语言中定义了八种基本数据类型,分别是:
byte、short、int、long、float、double、char、boolean
整型: byte、short、int、long
浮点型: float、double
字符型: char
布尔型: boolean
整型不用解释,就是使用他们这些类型来表示整数,他们四个的区别是在计算机内存中的大小不同。
byte 占一个字节
short 占两个字
int 占四个字节
long 占八个字节
在实际开发中 byte和short基本用不到,long使用比较少,int是使用最频繁的。
浮点型的变量用来表示小数,float和double的区别也是在内存中的大小不同。
float 占四个字节
double 占八个字节
在实际开发中float的使用比较多,double使用较少。
字符型变量表示的是字符,比如 ‘a’,在java中字符是使用单引号引起来的。
char 占两个字节
char字符在实际开发中使用的不是很多,因为它只能表示一个字符,比如’a’,一般我们会表示一串字符,比如"this is home",这就需要后面要说的字符串变量String。
布尔型变量boolean,这个只有两个值,true和false,一看就知道这个变量主要用来判断。
我们在实际使用中就是用它来做判断用的,boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
在java中定义变量是如下格式:
int a = 5;
类型 名字 = 变量
上面的写法就是定义了一个变量a,a的类型是int类型,然后把5这个整数复制给a,上面这句话被计算机执行完以后,计算机就知道了a等于5,在后面使用到a就是5。
下面举一些八大基本数据类型的例子:
//整数类型
byte b = 10;
short s = 20;
int i = 30; //整数默认的数据类型就是int类型
long x = 8888L; //占八个字节 如果long类型后面加L进行标识最好加大L,因为小l太像一了
//浮点类型
float f = 12.3F; //后面一半跟一个F,表示float类型
double d = 33.4; //小数默认的数据类型是double,double类型后面也可以用D或d标识,但是一般不加
//字符类型
char c = 'a'; //占两个字节
//布尔类型
boolean b1 = true;
虽然上面的 byte、short、int 看着都是一个整数,但是在计算机内存中的情况是不一样的,实际开发中一般都会使用int来定义。
运算符
当我们定义完上面的这些变量是需要运算的,比如加减乘除,比如大于小于等于,对于这些操作就需要使用到运算符。
算数运算符:+ - * / ++ –
前面四个就是加减乘除,就不说的,说说后面的两个 ++(自加)和 --(自减)。
++:对原有的数据进行+1
--:对原有的数据进行 -1
int a = 5;
a++; //++完以后a就等于6
int b = 4;
b--; //--完以后b就等于3
需要注意的是,除了有a++ 的写法,还有++a 的写法,他们的区别是:
当++在变量后面的时候(a++),会先将变量中的值取出做赋值操作,然后再自身加1。
当++在变量前面的时候(++a),会先自身加1,然后在将结果赋值。
int a = 5;
b = a++; //执行完这句以后b = 5 a = 6,因为是a++,计算机会先把a原来的值赋值给b,然后在自增
int c = 5;
d = ++c; //执行完这句以后,d = 6 c= 6
在实际开发中算数运算符每个的使用都挺多的。
赋值运算符:= += -= *= /=
分别是等号,加等,减等,除等
// 等号表示把5赋值给a变量
int a = 5;
//表示把a和5相加,然后把结果再赋值给a,最后a = 10
a += 5;
在实际开发中 = 是使用最多的,后面几个基本不用。
比较运算符: == != > >= < <=
他们分别是 等于,不等于,大于,大于等于,小于,小于等于。
比较运算符用来比较两个变量,结果肯定是boolean变量。
==:两个等号表示比较,一个等号表示赋值
!= :在java中否用 ! 来表示,这个表示不等于
后面的几个就不具体来说了,下面是例子
int a = 5;
int b = 6;
//定义一个变量c 来接收a == b 的结果
boolean c = a == b; //结果是false
boolean d = a != b; //结果是true
在实际开发中比较运算符使用很多。
逻辑运算符: & | ^ ! && ||
分别表示:与、或、异或 、非、双与、双或。
逻辑运算符一般用于连接boolean类型的表达式或者值。
& 逻辑与:有false则false
| 逻辑或:有true则true
^ 逻辑异或:相同false,不同true
! 逻辑非:非false则true,非true则false
int a = 10;
int b = 20;
int c = 30;
a < b & b < c //true & true = true
//逻辑或 或or 遇true则true
a < b | b < c //true | true = true
//逻辑异或 ^ 两边相同为false,两边不同为true
a < b ^ b < c //true ^true = false
//逻辑非!
!true
因为 & 的判断标准是:有false则false。
所以出现了&&(双与),即只判断 && 前面的结果,如果是false就不在去判断后面的变量是true还是false
int a = 10;
int b = 20;
int c = 30;
//前面的 a>b 已经是个false了已经能够确定这条语句的结果了
//此时因为是&&,所以计算机不会再去判断后面的 b<c 了。对于 || (双或)同理
a > b && b < c
在实际开发中,^(异或)用的不多,其他的使用还挺多。
各种句式
java中的各种句式有这样几种:选择语句、循环语句、控制跳转语句,这些句式都是为了模拟现实的语言场景达到能够和计算机沟通的效果。
选择语句:if if…else switch
if语句:表示的是:如果…就… ,和我们现实中的语言差不多,在代码中的格式如下:
if(比较表达式) {
语句体;
}
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体; 如果是false,就不执行语句体。
if…else语句:表示的是:如果…就…或者如果…就…,相当于判断了两次,代码格式如下:
if(比较表达式) {
语句体;
}else(比较表达式){
语句体;
}
switch语句:表示的是:根据不同的结果执行不同的逻辑,代码格式如下:
switch语句:表示的是:根据不同的结果执行不同的逻辑,代码格式如下:
如上,switch后边的表达式会有一个计算结果,计算结果会去匹配下面case后面的值,匹配上哪个就会执行对应的语句体,如果都没匹配上,就会执行default后面的语句体,当遇到break关键字的时候,这个语句就结束了。
int a = 3;
int b = 4;
if(a > b){
System.out.println("a 是最大值");
}else {
System.out.println("a 是最小值");
}
switch(a){
case 3:
System.out.println("a 的值为3");
break;
case 4:
System.out.println("a 的值为4");
break;
default:
System.out.println("a 既不等于3也不等于4");
break;
}
在实际开发中这三种语句使用的非常多。
循环语句:for while
循环语句的意思就是会一直执行,直到将任务执行完毕才停下来,比如显示生活中老师让我们抄五遍课文,我们就会一直循环执行五遍,知道五遍执行完了才停下来。
for语句:代码格式如下:
for(初始化表达式;条件表达式;循环后的操作表达式) {
循环体;
}
这样看可能有点抽象,看下面具体的例子:
for (int i = 1;i <= 10 ;i++ ) {
System.out.println("helloworld");
}
代码执行流程是:先定义int 类型的变量 i 为 1,然后执行后面的条件表达式 i <= 10,满足条件就会执行下面的循环体,循环体的代码执行完毕以后,会执行 i++ 表达式,给 i 变量 加1,然后再去执行条件表达式,如果不满足了就跳出循环,如果满足继续执行。
while语句:while语句也是用来表示循环的,它和for有点区别,格式如下:
while(判断条件语句) {
循环体语句;
}
while的格式比较简单,就是它会先去判断条件语句,语句为true的时候就会去执行循环语句,循环语句执行完毕以后会再次判断条件语句,如果还满足就会继续执行,如果不满足就会跳出循环。
int x = 1;
while (x <= 10) {
System.out.println("x = " + x);
x++;
}
如上,循环语句会执行10次。
在实际开发中这两种循环语句使用的非常多。
控制语句:break,continue
break语句:break语句上面已经提到过了,它主要是用来跳出语句的,它的使用场景也是有限制的,它只能使用在switch语句和循环语句中。
for (int x = 1;x <= 10 ;x++ ) {
if (x == 4) {
break; //跳出循环
}
}
continue语句:表示的是继续的意思,即遇到continue的时候,它后面的语句将不再执行,继续下一次的循环。它只能在循环语句中使用。
for (int x = 1;x <= 10 ;x++ ) {
if (x == 4) {
continue; //终止本次循环,继续下次循环
}
System.out.println("x = " + x);
}
在实际开发中这两种控制语句使用的非常多。
总结时刻
这一篇主要说了java语法中的三类语法知识点,基本数据类型、运算符和各种句式。
八大基本数据类型:byte、short、int、long、float、double、boolean、char
运算符:算数运算符、赋值运算符、比较运算符、逻辑运算符
句式:选择语句、循环语句、控制语句
其实在学习语法的时候最好的方式就是对比着我们生活中的语言来学,因为编程语言也是和计算机对话,告诉计算机要干什么活,好了这篇文章就到这里,下一篇接着讲java的语法,包括函数、数组、面向对象等语法知识。