基础
大纲
变量:
声明、初始化、使用、命名
数据类型:
int、long、double、boolean、char、String
运算符:
赋值、算术、关系、逻辑
分支结构:
if、if...else、if...else if
循环结构:
循环、三要素、while、for
Java开发环境:
1)java编译运行过程:------常见面试题
1.1)编译期:.java源文件,经过编译,生成.class字节码文件
1.2)运行期:JVM加载.class并运行.class
跨平台、一次编程到处使用
2)名词解释:--------------常见面试题
2.1)JVM:java虚拟机
加载.class并运行.class
2.2)JRE:java运行环境
除了包含JVM以外还包含运行java程序所必须的环境
JRE=JVM+java系统类库(后期讲)
2.3)JDK:java开发工具包
除了包含JRE以外还包含开发java程序所需要的命令工具
JDK=JRE+编译、运行等命令工具
运行java程序的最小环境为JRE
开发java程序的最小环境为JDK
3)配置环境变量-------过几天回头看
3.1)JAVA_HOME:指向jdk的安装路径
3.2)CLASSPATH:表示类的搜索路径,一般简写为.
3.3)PATH:指向jdk下的bin目录
Helloworld:
package day01; //声明表day01(绿色表示注释) public class HelloWorld { public static void main(String[] args){ //class声明类名HelloWorld //主方法,为程序的入口 //程序的执行从main开始,main结束则程序结束 /* * 1.java是严格区分大小写的,红色曲线表示错误; * 2.所有符号必须是英文模式; * 3.每句话必须以分号结尾System.out.println(""); * 4.文件名前边有*表示文件没有保存。 */ System.out.println("HellowWorld"); } }
数据类型:
1)int:整型,只能装整数,-21个多亿到21个多亿
5,25,250...
2)long:长整型,只能装整数,很大很大很大
250L,10000000000L...
3)double:浮点型,只能装小数,很大很大很大
3.14,25.678,5.0...
4)boolean:布尔型,只能装true和false
true,false
5)char:字符型,字符必须放在单引号中,有且仅有一个
'男','m','7',' '...
6)String:字符串型,字符串必须放在双引号中,0个到多个
"你好吗?","abc","男",""...
数据类型应用示例
package day02; //数据类型的演示 public class DataTypeDemo { public static void main(String[] args) { /* //6.String:字符串型,字符串需放在双引号中,0个到多个 String s1 = "Hello"; //声明字符串型变量s1并赋值为Hello String s2 = "你好"; //声明字符串型变量s2并赋值为你好 String s3 = "我"; String s4 = ""; //声明字符串型变量s4并赋值为空字符串 //String s5 = 中国; //编译错误,必须放在双引号中 */ /* //5.char:字符型,字符需放在单引号中,有且仅有一个 char c1 = '女'; //声明字符型变量c1并赋值为字符女 char c2 = 'f'; //声明字符型变量c2并赋值为字符f char c3 = '6'; //声明字符型变量c3并赋值为字符6 char c4 = ' '; //声明字符型变量c4并赋值为空格符 //char c5 = 男; //编译错误,字符必须放在单引号中 //char c6 = ''; //编译错误,必须有字符 //char c7 = '中国'; //编译错误,只能有一个字符 */ /* //4.boolean:布尔型,只能装true和false boolean a = true; //声明布尔型变量a并赋值为true boolean b = false; //声明布尔型变量b并赋值为false //boolean c = 3.14; //编译错误,数据类型不匹配 */ /* //3.double:浮点型,只能装小数,很大很大很大 double a = 3.14159; //声明浮点型变量a并赋值为3.14159 double b = 25; System.out.println(b); //25.0 */ /* //2.long:长整型,只能装整数,很大很大很大 long a = 250L; //声明长整型变量a并赋值为250 long b = 10000000000L; //声明长整型变量b并赋值为100亿 //long c = 3.14; //编译错误,长整型只能装整数 */ /* //1.int:整型,只能装整数,-21个多亿到21个多亿 int a = 250; //声明整型变量a并赋值为250 //int b = 10000000000; //编译错误,超出范围了 //int c = 3.14; //编译错误,整型只能装整数 */ } }
运算符:
1)赋值运算符:=
2)算术运算符:+-*/%,++,--
3)关系运算符:>,<,>=,<=,==,!=
boolean
4)逻辑运算符:&&,||,!
运算符应用示例:
package day03; //运算符的演示 public class OperDemo { public static void main(String[] args) { /* * 4.逻辑运算符: * 1)&&:逻辑与(并且),两边都为真则为真,见false则false * ||:逻辑或(或者),有一边为真则为真,见true则true * !:逻辑非(取反),非真则假,非假则真 * 2)逻辑运算是建立在关系运算的基础之上的, * 逻辑运算的结果也是boolean型 */ /* int a=5,b=10,c=5; boolean b2 = !(a>b); System.out.println(b2); //!false=true System.out.println(!(c<b)); //!true=false */ /* System.out.println(a>=c || a>b); //true||false=true System.out.println(b<=c || b>a); //false||true=true System.out.println(a==c || b>a); //true||true=true System.out.println(a!=c || b<c); //false||false=false */ /* boolean b1 = a>=c && a>b; System.out.println(b1); //true&&false=false System.out.println(b<=c && b>a); //false&&true=false System.out.println(a!=c && b<c); //false&&false=false System.out.println(a==c && b>a); //true&&true=true */ /* * 3.关系运算符: * 1)>(大于),<(小于) * >=(大于或等于),<=(小于或等于) * ==(等于),!=(不等于) * 2)关系运算的结果为boolean型, * 关系成立则为true,关系不成立则为false */ /* int a=5,b=10,c=5; boolean b1 = a>b; System.out.println(b1); //false System.out.println(c<b); //true System.out.println(b>=a); //true System.out.println(a<=c); //true System.out.println(a==c); //true System.out.println(a!=c); //false */ /* * 2.算术运算符:+,-,*,/,%,++,-- * 1)/:两个整数相除,结果还是整数,小数位无条件舍弃 * 2)%:取模/取余,余数为0即为整除 * 3)++/--:自增1/自减1,可在变量前也可在变量后 * 3.1)单独使用时,在前在后无差别 * 3.2)被使用时,在前在后有差别 * a++的值为a * ++a的值为a+1 */ /* int a=5,b=5; //1)输出a++的值5 //2)a自增1变为6 System.out.println(a++); //5 System.out.println(a); //6 //1)输出++b的值6 //2)b自增1变为6 System.out.println(++b); //6 System.out.println(b); //6 */ /* int a = 5; int b = ++a; //1)将++a的值6赋值给b 2)a自增1变为6 System.out.println(a); //6 System.out.println(b); //6 */ /* int a = 5; int b = a++; //1)将a++的值5赋值给b 2)a自增1变为6 System.out.println(a); //6 System.out.println(b); //5 */ /* int a = 5; ++a; //相当于a=a+1 System.out.println(a); //6 */ /* int a = 5; a++; //相当于a=a+1 System.out.println(a); //6 */ /* System.out.println(5%2); //1,商2余1 System.out.println(6%2); //0,商3余0--整除 System.out.println(2%6); //2,商0余2 System.out.println(5/2); //2 System.out.println(6/2); //3 System.out.println(2/6); //0 System.out.println(5/2.0); //2.5 */ /* //1.赋值运算符:= int a = 5; //声明整型变量a并赋值为5 a = a+10; //取出a的值5,加10后,再赋值给a //在a本身基础之上增10 System.out.println(a); //15 */ } }
if , else, else if,语法
1.分支结构:有条件的执行某语句,并非每句必走
1)if:1条路
1.1)语法:
if(boolean){
语句块
}
1.2)执行过程:
判断boolean的值:
若为true,则执行语句块
若为false,则不执行语句块
2)if...else:2条路
2.1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2.2)执行过程:
判断boolean的值:
若为true,则执行语句块1
若为false,则执行语句块2
3)if...else if:多条路
3.1)语法:
if(boolean-1){
语句块1
}else if(boolean-2){
语句块2
}else if(boolean-3){
语句块3
}else{
语句块4
}
3.2)执行过程:
判断boolean-1,若为true则执行块1,若为false则
再判断boolean-2,若为true则执行块2,若为false则
再判断boolean-3,若为true则执行块3,若为false则执行块4
3.3)说明:
3.3.1)块1234,只有可能走其中之一
3.3.2)若没有最后的else,则块123并非必走其中之一
3.3.3)若有最后的else,则块1234必走其中之一
if else应用示例:
package day04; //if...else if结构的演示 public class IfElseIfDemo { public static void main(String[] args) { /* * 分支结构的练习: * 1.完成成绩等级判断案例 * 2.完成如下三个需求: * 需求1:满500打8折,不满500不打折 * 需求2:满500打8折,不满500打9折 * 需求3:满1000打7折,500到999打8折,不满500打9折 */ /* //需求3:满1000打7折,500到999打8折,不满500打9折 double price = 295.0; if(price>=1000){ price=price*0.7; }else if(price>=500){ price=price*0.8; }else{ price=price*0.9; } System.out.println(price); */ /* //需求2:满500打8折,不满500打9折 double price = 600.0; if(price>=500){ price = price*0.8; //打8折 }else{ price = price*0.9; //打9折 } System.out.println(price); */ /* //需求1:满500打8折,不满500不打折 double price = 1000.0; if(price>=500){ //满500 price = price*0.8; //打8折 } System.out.println(price); */ /* * 3.if...else if结构:多条路 * 1)语法: * if(boolean-1){ * 语句块1 * }else if(boolean-2){ * 语句块2 * }else if(boolean-3){ * 语句块3 * }else{ * 语句块4 * } * 2)执行过程: * 判断boolean-1,若为true则执行块1,若为false则 * 再判断boolean-2,若为true则执行块2,若为false则 * 再判断boolean-3,若为true则执行块3,若为false则执行块4 * 3)说明: * 3.1)块1234,只可能走其中之一 * 3.2)若没有最后的else,则块123并非必走其中之一 * 3.3)若有最后的else,则块1234必走其中之一 */ /* int score = 45; //成绩 if(score>=90){ System.out.println("A-优秀"); }else if(score>=80){ System.out.println("B-良好"); }else if(score>=60){ System.out.println("C-中等"); }else{ System.out.println("D-不及格"); } */ } }
for,while循环结构:
1)while:
1.1)语法:
while(boolean){
循环体--反复执行的语句
}
1.2)执行过程:
判断boolean的值,若为true则执行循环体,
再判断boolean的值,若为true则执行循环体,
再判断boolean的值,若为true则执行循环体,
以此类推,直到boolean为false时循环结束
2)for:
2.1)语法:
1 2 3
for(要素1;要素2;要素3){
循环体--反复执行的语句 4
}
2.2)执行过程:
12432432432432432432
while循环应用演示:
package day05; //while循环的演示 public class WhileDemo { public static void main(String[] args) { /* * while的练习: * 1.完成如下案例: * 1)输出10次"失败是成功之母" * 2)输出9的乘法表(正序) * 3)输出9的乘法表(倒序) * 4)跑3圈 * 5)打印10份简历 * 2.如上案例任选其二写执行过程 */ /* * 1.while结构: * 1)语法: * while(boolean){ * 语句块---循环体(反复干的那个事) * } * 2)执行过程: * 判断boolean,若为true则执行语句块, * 再判断boolean,若为true则执行语句块, * 再判断boolean,若为true则执行语句块, * 如此反复,直到boolean为false时循环结束 */ /* int num=10; while(num>0){ System.out.println("打印一份"); num--; } System.out.println("over"); */ /* int count=0; while(count<3){ System.out.println("跑一圈"); count++; } System.out.println("over"); */ /* int num=9; while(num>=1){ System.out.println(num*9); num--; } System.out.println("over"); */ /* int num=1; //1.循环变量的初始化 while(num<=9){ //2.循环的条件 System.out.println(num*9); num++; //3.循环变量的改变 } System.out.println("over"); */ /* * 执行过程: * num=1 true 输出9 * num=2 true 输出18 * num=3 true 输出27 * num=4 true 输出36 * num=5 true 输出45 * num=6 true 输出54 * num=7 true 输出63 * num=8 true 输出72 * num=9 true 输出81 * num=10 false while循环结束 * 输出over */ /* int times=0; //1.循环变量的初始化 while(times<10){ //2.循环的条件 System.out.println("失败是成功之母"); times++; //3.循环变量的改变 } System.out.println("over"); */ /* * 执行过程: * times=0 true 输出 * times=1 true 输出 * times=2 true 输出 * times=3 true 输出 * times=4 true 输出 * times=5 true 输出 * times=6 true 输出 * times=7 true 输出 * times=8 true 输出 * times=9 true 输出 * times=10 false while循环结束 * 输出over */ } }
for循环应用演示:
package day05; //for循环的演示 public class ForDemo { public static void main(String[] args) { /* * 练习: * 1.for循环方式完成案例一和案例二 * 2.任选其一写执行过程 */ /* //案例二.输出9的乘法表: for(int num=1;num<=9;num++){ System.out.println(num*9); } System.out.println("over"); */ /* //案例一.输出10次"失败是成功之母": for(int count=0;count<10;count++){ System.out.println("失败是成功之母"); } System.out.println("over"); */ /* * 执行过程: * count=0 true 输出 * count=1 true 输出 * count=2 true 输出 * count=3 true 输出 * count=4 true 输出 * count=5 true 输出 * count=6 true 输出 * count=7 true 输出 * count=8 true 输出 * count=9 true 输出 * count=10 false for循环结束 */ } }