——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
(一)java语言基础组成
关键字、标识符、注释、常量和变量、运算符、语句、函数、数组
(二)关键字
被java赋予特殊含义的单词,例如:public static void ……
全部都是英文小写
注:main不是关键字,却是被虚拟机所识别的一个名称
(三)标识符
在程序中自定义的一些名称。由25个英文字母大小写,数字0-9,符合 _ $组成。
定义合法标识符的规则:
1、 数字不可以开头。
2、 不可以使用关键字。
Java中的名称规范:
包名:多单词组成时所有字母都小写。
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
注:Java中严格区分标识符的大小写。在起名字的时候,为了提高阅读性,要尽量有意义。
(四)注释
分为单行注释、多行注释、文档
(五)常量和变量
(1)、常量
定义:Java中固定不变的、表示不能改变的数值。
Java中常量的分类:
1,整数常量。所有整数。
2,小数常量。所有小数。
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ’ ’ )标识。
5,字符串常量。将一个或者多个字符用双引号(“”)标识。
6,null常量。只有一个数值就是:null。
补充知识:进制
对于整数,Java有三种表现形式:
二进制:满2进1。
十进制:0-9,满10进1。
八进制:0-7,满8进1,用0开头表示。
十六进制:0-9,A-F,满16进1,用0x开头表示。
负数的二进制:
先变为二进制,再取反加1;
注意:负数的最高位都为1。
(2)、变量
1、什么是变量?
内存中的一个存储空间。有自己的名称(变量名)和类型(数据类型)。
2、为什么要定义变量?
当数据不确定时,需要对数据进行存储时,就需要定义一个变量来完成存储动作。
3、java的数据类型:
强调:
1、类型的自动提升:
在运算中,当低类型数据与高类型数据进行计算时,系统会自动将表达式中的低类型数据提升到高类型。
会自动提升的基本数据类型是:byte;short;char,会自动提升为int类型进行计算。
如:
byte a = 3 ; int b;
b= a + 2; //a会自动提升为int类型进行运算。
2、强制类型转换:
当程序中,数据类型需要变换时,可以进行强制转换。如:
byte a = 3;
a = a + 4;//报错
a = (byte)a+4;//强制类型转换,强制将a+4的结果转换为byte类型,再赋值给a。
但注意:上面的是2次运算符,当是1次运算符时,例如byte a =3 ; a+=2; 系统会自动帮你强制转换。
增加一个小知识点:
转义字符:通过\来转变后面字母或符号的含义
例子:
\n:换行
\r:按下回车键,在windows里面,回车符是有两个符号来表示的\r\n
\t:字表符 也就是Tab键
\b:退格键 也就是BackSpace键
另一个小知识点:char a =’你’; 这是可以的,因为汉字是两个字节,char也是两个字节
(六)、运算符
1、算术运算符
就是+,-,*,/,++,–,等等,
注意:进行取模运算时,如果有负数,运算结果取决于运算左边有没有负数。
字符串数据和任何数据使用 +都是相连接,最终都会变成字符串
2、赋值运算符
符号:= += -= *= /= %=
例: int a,b,c; a=b=c =3;
int a = 3; a+=5;//等同运算a=a+5;当时a+=5系统自动有强制转换
3、比较运算符
< > =等等
注:1、比较运算符的结果都是boolean型,也就是要么是true,要么是false。2、比较运算符“==”不能误写成“=”
4、逻辑运算符
5、位运算符
6、三元运算符
格式:
(条件表达式)?表达式1:表达式2;
1)如果条件为true,运算后的结果是表达式1;
2)如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中大数。
int x=3,y=4,z;
z = (x>y)?x:y;
//z变量存储的就是两个数的大数。
(七)、语句
(1)、程序流程控制
也称语句,主要有:判断结构、选择结构和循环结构。
(2)、判断结构*if语句*
它的三种形式:
1) if(条件表达式)
{
执行语句;
}
2) if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3) if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句
}
……
else
{
执行语句;
}
注意:每一种格式都是单条语句。
举例子:
package cn.dhjYuju;
/*
* 需求:判断月份
*/
public class Test1 {
public static void main (String[] args){
int x = 4;
if(x<1||x>12)
System.out.println("该月份不存在");
else if(x>=3 & x<=5)
System.out.println("春季");
else if(x>=6 & x<=8)
System.out.println("夏季");
else if(x>=9 & x<=11)
System.out.println("秋季");
else
System.out.println("冬季");
}
}
(3)、 选择结构*switch语句*
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语句的两种情况:1、遇到break结束;2、执行到switch结尾结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
注意:JDK1.5以后可以接收枚举类型,JDK1.7以后可以接收字符串。
if和switch语句很像。具体什么场景下,应用哪个语句呢?如果判断的具体数值不多,而且符合byte short int char这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
(4)、循环结构
主要有三种 while ; do while ; for
while语句格式:
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while(条件表达式);
while和do while的区别:
while:先判断条件,只有条件满足才执行循环体。
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
例子程序:
package cn.dhjYuju;
/*
* 需求:获取1-10的值,并打印
*/
public class Test2 {
public static void main (String[] args){
int a = 0;
for (int x=1;x<11;x++){
a = a+x;
}
System.out.println(a);
}
}
例子2:
package cn.dhjYuju;
/*
* 需求:打印1——100之间7的倍数的数字,并打印个数
*/
public class Test3 {
public static void main(String[] args){
int count = 0;
for(int i=1;i<=100;i++){
if(i%7==0){
System.out.println(i);
count++;
}
}
System.out.println(count);
}
}
重要:循环嵌套:
package cn.dhjYuju;
/*
* 需求:打印图形:
* *****
* ****
* ***
* **
* *
*/
public class Test4 {
public static void main(String[] args){
for(int x=0;x<5;x++){
for(int y=x;y<5;y++){
System.out.print("*");
}
System.out.println();
}
}
}
例子2:
package cn.dhjYuju;
/*
* 需求:打印九九乘法表
*/
public class Test5 {
public static void main(String[] args){
for(int x=1;x<=9;x++){
for(int y=1;y<=x;y++){
System.out.print(y+"*"+x+"="+y*x+" ");
}
System.out.println();
}
}
}
注意:
a,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复这个过程,直到条件不满足为止。
b,while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
c,最简单无限循环格式:while(true){}, for(;;){},对于for来讲,不写条件表达式默认就是ture。无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
循环注意:一定要明确哪些语句需要参与循环,哪些不需要。
4、其他流程控制语句——break,continue
break(跳出)语句:应用范围:选择结构和循环结构。
continue(继续)语句:应用于循环结构。
注:
a,这两个语句离开应用范围,存在是没有意义的。
b,这个两个语句单独存在时,下面都不可以有语句,因为执行不到。
c,continue语句是结束本次循环继续下次循环。
d,标号的出现,可以让这两个语句作用于指定的范围。只能用于循环结构。