Java基础组成分为8个部分
1、关键字 2、标识符 3、注释 4、常量与变量 5、运算符 6、语句 7、函数 8、数组
关键字
(1)关键字的定义和特点
定义:被Java语言赋予了特殊含义的单词。
特点:关键字中所有字母都为小写。
(2)用于定义数据类型的关键字
class,interface,byte(字节型),short(短整形),int(整形),long(长整型),float(单精度浮点型),double(双精度浮点型),char(字符型),boolean(布尔型),void。
(3)用于定义数据类型值的关键字
true,false,null。
(4)用于定义流程控制的关键字
if,else,switch,case,default,while,do,for,break,continue,return。
(5)其他关键字
**要注意的关键点为:
public class与class声明的区别:
1,如果class前用了public则保存的文件名称必须与类名称一致。
2,一个*.java的文件中只允许出现一个public class声明,但允许有多个class声明。
标识符
标识符就是在程序中自定义的一些名称。是由26个英文字母大小写,数字:0-9 , 符号:_ $组成。Java中严格区分大小写。
定义合法标识符规则:
1,数字不可以开头。
2,不可以使用关键字。
注意:在起名字的时候,为了提高阅读性,要尽量有意义。
Java中的名称规范:
1,包名:多单词组成时所有字母都小写。例如:xxxyyyzzz
2,类名接口名:多单词组成时,所有单词的首字母大写。例如:XxxYyyZzz
3,变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。例如:xxxYyyZzz
4,常量名:所有字母都大写。多单词时每个单词用下划线连接。例如:XXX_YYY_ZZZ
注释
Java入门基础里面有介绍。
常量与变量
注意的关键点:
1,常量表示不能改变的数值。一开始是什么就是什么,不能再赋予了。
2,变量之间可以进行强制转换。格式:(变量类型)(变量)字符与字符串别搞错了,一个单引号,一个双引号。
(1)常量
a)Java中常量的分类:
*整数常量:所有整数。
*小数常量:所有小数。
*布尔型常量:较为特有,只有两个数值true和false。
*字符常量:将一个数字字母或者符号用单引号(' ')标识。
*字符串常量:将一个或者多个字符用双引号(" ")标识。
*null常量:只有一个数值就是null。
b)对于整数:java有三种表现形式。
*十进制:0—9,满10进1。
*八进制:0—7,满8进1,用0开头表示。
*十六进制:0—9,A—F,满16进1,用0x开头表示。
(2)变量
$使用变量注意:
^变量的作用范围(一对{ }之间有效)。
^初始化值。
$定义变量的格式:
数据类型 变量名=初始化值。(int i=5;)
$变量的数据类型及要注意的关键点:
1,一个字节由8位二进制组成。
2,整数型:byte为一个字节,short为两个字节,int为四个字节(默认)。
3,浮点类型(小数):float为两个字节,double为四个字节(默认)。
4,Char字符型是两个字节,汉字是两个字节。
5,如果我们定义一个类型,不是默认类型,那么我们要在后面标明,不然会提示损失精度。例如:float x=5f。
运算符
(1)算术运算符
单目:+(取正),-(取负),++(自增1),- -(自减1)。
双目:+(加),-(减),*(乘),/(除),%(取余)。
三目:a>b?true:false 。说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
注意的关键点:
1,++,- - 放前放后的两种用法。当其单独使用时无所谓,如++x,x++没有区别。
2,注意一种运算,int x=4200;x=x/1000*1000=4000,因为两个int类整数相除,只能为int类整数。
3,取模时%左边数小于右边数结果为左(例5%9=5),有负数,只看左边(-10%3=-1;10%(-3)=1)。
4,+字符串后面的用+相连,结果都为字符串;如"he"+"llo"="hello"。
转义字符的用法\ 是转后面的字母或含义。
\n:换行 \b:退格 \r:按下回车键(window系统,回车符是由两个字符来表示\n \r) \t:制表符。相当于tab键。
(2)赋值运算符
符号:=,+=,-=,*=,/=,%=。 例如:int a=b=c=3; int x=2; a+=5;等同运算a=a+5;
注意关键点:
区别是short是占2个字节,整数是4个字节,想家必提升为4个字节想加,所以不强制定义就会提示损失精度,但s+=2则会自我转换为short能识别的2个字节类型,只要没有超出short范围。不需要强制转换(short x=5; x=(short)(x+2);)。
(3)比较运算符
运算符 | 运算 | 范例 | 结果 |
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | true |
注意关键点:
1,比较运算符的结果都是boolean型,也就是要么是true,要么是false。
2,比较运算符"=="不能误写成"="。
(4)逻辑运算符
运算符 | 运算 | 范例 | 结果 |
& | AND(与) | true&true true&false false&true false&false | true false false false |
| | OR(或) | true|true true|false false|true false|false | true true true false |
^ | XOR(异或) | true^true true^false false^true false^false | false true true false |
! | Not(非) | !true !false | false false |
&& | AND(短路) | true&&true true&&false false&&true false&&false | true false false false |
|| | OR(短路) | true||true true||false false||true false||false | true true true false |
(5)位运算符
位运算符 | ||
运算符 | 运算 | 范例 |
<< | 左移 | 3 << 2 = 12 --> 3*2*2=12 |
>> | 右移 | 3 >> 1 = 1--> 3/(2*1)=1 |
>>> | 无符号右移 | 3 >>> 1 = 1 -->3/(2*1)=1 |
& | 与运算 | 6 & 3 = 2 |
| | 或运算 | 6 | 3 = 7 |
^ | 异或运算 | 6 ^ 3 = 5 |
~ | 反码 | ~ 6 = -7 |
注:<<:其实就是乘以2的移动的位数次幂。>>:就是除以2的移动的位数次幂。
注意关键点:
1,这里也有&,|,^,就是这三个可以当逻辑运算也可当位运算,但全部会转化为二进制进行运算。
2,左移时右边空位补零。
3,右移时,看左边最高位是零还是一,是零左边空位补零,是一补一。无符号移则不管左边最高位是什么都补零。
语句
(1)判断结构
三种格式:
a, if(条件表达式) b, if(条件表达式) c, if(条件表达式)
{ { {
执行语句; 执行语句; 执行语句;
} } }
else else if(条件表达式)
{ {
执行语句; 执行语句;
} }
……
else
{
执行语句;
}
运用示例:
/*
根据用于指定月份,打印该月份所属的季节。
3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12,1,2 冬季
*/
import java.util.Scanner;
class IfTest
{
public static void main(String[] args)
{
int m;
Scanner sc=new Scanner(System.in);//定义一个标准输入设备的扫描器
System.out.print("输入月份:");
m=sc.nextInt();
if(m>12&&m<1)
System.out.println("没有该月份");
else if(m>=3&&m<=5)
System.out.println("你输入的月份是——春季");
else if(m>=6&&m<=8)
System.out.println("你输入的月份是——夏季");
else if(m>=9&&m<=11)
System.out.println("你输入的月份是——秋季");
else
System.out.println("你输入的月份是——冬季");
}
}
(2)选择结构
switch语句
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;
}
switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int,char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况:遇到break,执行到switch语句结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
运用示例:
switch(x){
case 3: case 4: case 5:
System.out.println(x+"春季");
break;
case 6: case 7: case 8:
System.out.println(x+"夏季");
break;
case 9: case 10: case 11:
System.out.println(x+"秋季");
break;
case 12: case 1: case 2:
System.out.println(x+"冬季");
break;
default:
System.out.println("季节不存在!!!");
break;
}
(2)循环结构
代表语句:while,do while,for
while语句格式: do while语句格式: for语句格式:
while(条件表达式) do for(初始化表达式;循环条件表达式;循环后的操作表达式)
{ { {
执行语句; 执行语句; 执行语句;
} }while(条件表达式); }
注:
a,for里面的三个表达式的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复这个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
c,最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
运用示例:
例一:九九乘法口诀表
System.out.println("九九乘法口诀表");
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
例二://菱形星的做法
*
***
*****
*******
*****
***
*
final int N=4;
for (int i = 1; i <= 2*N-1; i++) {
for (int j = 1; j <= Math.abs(N-i); j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2*N-1-Math.abs(i-N)*2; k++) {
System.out.print("*");
}
System.out.println();
}
例三:
*
* *
* * *
* * * *
* * *
* *
*
for(int x=1;x<=7;x++)
{
for(int y=1;y<=Math.abs(4-x);y++)
{
System.out.print(" ");
}
for(int z=Math.abs(4-x);z<4;z++)
{
System.out.print("* ");
}
System.out.println("");
}