Java复习第一天
Day01
1、独立编写Hello World程序。
public class Test{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
2、JDK,JRE,JVM分别是什么?
(1)作用
JVM:保证Java语言跨平台
JRE:Java程序的运行环境
JDK:Java程序的开发环境
(2)关系
JDK:JRE+工具
JRE:JVM+类库
3、Java语言是跨平台的吗?JVM是跨平台的吗?
Java语言是跨平台的,JVM不跨平台,每种平台都有JVM。
4、环境变量path和classpath的区别?
(1)path指示java命令的路径,像javac、java、javaw等
(2)classpath是javac编译器的一个环境变量,它的作用与import、package关键字有关,当你写下improt java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?所以你首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置CLASSPATH啦 :) 如果java.util这个package在c:\jdk\ 目录下,你得把c:\jdk\这个路径设置到CLASSPATH中去!当编译器面对import java.util.*这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java\util是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!
Day02
1、什么是注释?注释分为几种?注释有什么作用?
(1)就是对程序进行解释说明的文字
(2)分类:
A:单行注释 //
B:多行注释 /**/
C:文档注释(后面讲) /** */
(3)注释的作用
A:解释说明程序,提高了代码的阅读性。
B:可以帮助我们调试程序。
2、什么是关键字?有什么特点?
(1)被Java语言赋予特定含义的单词;
(2)特点为全部小写。
3、什么是标识符?由哪些部分组成?常见的命名规则有哪些?
(1)就是给类,接口,方法,变量等起名字的字符序列。
(2)组成规则:
A:英文大小写字母
B:数字
C:$和_
(3)常见的命名规则(见名知意)
A:包 全部小写
单级包:小写 举例:liuyi,com
多级包:小写,并用.隔开 举例:cn.itcast,com.baidu
B:类或者接口
一个单词:首字母大写 举例:Student,Demo
多个单词:每个单词首字母大写 举例:HelloWorld,StudentName
C:方法或者变量
一个单词:首字母小写 举例:name,main
多个单词:从第二个单词开始,每个单词首字母大写 举例:studentAge,showAllNames()
D:常量 全部大写
一个单词:大写 举例:PI
多个单词:大写,并用_隔开 举例:STUDENT_MAX_AGE
4、什么是常量?常量的分类?字面值常量表现形式有哪些?
(1)在程序执行的过程中,其值不发生改变的量
(2)分类:
A:字面值常量
B:自定义常量(后面讲)
(3)字面值常量
A:字符串常量 "hello"
B:整数常量 12,23
C:小数常量 12.345
D:字符常量 'a','A','0'
E:布尔常量 true,false
F:空常量 null(后面讲)
(4)在Java中针对整数常量提供了四种表现形式
A:二进制 由0,1组成。以0b开头。
B:八进制 由0,1,...7组成。以0开头。
C:十进制 由0,1,...9组成。整数默认是十进制。
D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
5、计算出十进制46对应的二进制,八进制,十六进制的值。
二进制:101110
八进制:56
十六进制:2E
6、什么是变量?变量的定义格式?要使用变量需要注意什么?
(1)在程序的执行过程中,其值在某个范围内可以发生改变的量
(2)变量的定义格式:
A:数据类型 变量名 = 初始化值;
B:数据类型 变量名;
变量名 = 初始化值;
7、Java中的数据类型分几类?基本数据类型有哪些?
(1)分类:
A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。
(2)基本数据类型
A:整数 占用字节数
byte 1
short 2
int 4
long 8
B:浮点数
float 4
double 8
C:字符
char 2
D:布尔
boolean 1
注意:
整数默认是int类型。浮点数默认是double。
长整数要加L或者l。单精度的浮点数要加F或者f。
8、数据类型转换:
隐式转换:
强制转换:
第一题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
b=b1+b2;编译失败。因为b1+b2结果为int,不是byte。
第二题:
byte by = 130;
有没有问题?有问题如何解决?结果是多少呢?
错误,byte 范围是 -128到127( -2的7次方到2的7次方-1)
Day03
1、常见的算术运算符有哪些?
常见预算符有+,-,*,/,%,++,--
+运算符的作用有哪些?
a:加法b:正号c:字符串连接符
除法和取余的区别?
数据做除法操作的时候,/取得是商,%取得是余数
++和--的使用规则?
a:他们的作用是自增或者自减
b:使用
**单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。
**参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;int b = a++;
2、常见的赋值运算符有哪些?
常见的赋值运算符有=,+=,-=,*=,/=,%=等。
+=运算的作用是什么?
将符号两边的值相加并将结果赋值给符号左边。
扩展的赋值运算符有什么特点?
隐含了自动强制转换。
3、short s = 1; s = s + 1;有没有问题?如果有怎么解决?
有问题,s+1结果为类型为int,可以进行强制转换。
short s = 1; s += 1;有没有问题?如果有怎么解决?
没有问题。
4、常见的关系运算符有哪些?
< |
小于 |
a<b |
a小于b时返回真;否则返回假 |
LT |
<= |
a<=b |
a小于等于b时返回真;否则返回假 |
LE |
|
> |
大于 |
a>b |
a大于b时返回真;否则返回假 |
GT |
>= |
a>=b |
a大于等于b时返回真;否则返回假 |
GE |
|
== |
等于 |
a==b |
a等于b时返回真;否则返回假 |
EQ |
!= |
不等于 |
a!=b |
a不等于b时返回真;否则返回假 |
NE |
关系运算符的结果有什么特点?
不是真就是假,不是假就是真。
5、常见的逻辑运算符有哪些?
常见逻辑运算符有&,|,^,!,&&,||
&和&&的区别是什么?
&&结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
|和||的区别是什么?
||结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
6、位运算符^的特点是什么?
一个数据针对另一个数据位异或两次,该数不变。
7、如何实现对两个整数变量的值进行互换。
例如交换两个整数a=10100001,b=00000110的值
a = a^b; //a=10100111
b = b^a; //b=10100001
a = a^b; //a=00000110
8、三元运算符的格式是什么?
比较表达式?表达式1:表达式2;
执行流程是什么?
(1)首先计算比较表达式的值,看是true还是false。
(2)如果是true,表达式1就是结果。
(3)如果是false,表达式2就是结果。
9、使用三元运算符完成如下练习
比较两个数是否相等 A==B?true:false;
获取两个数中最大值 A>=B?A:B;
获取三个数中最大值 (A>B?(A>C?A:C):(B>C?B:C));
10、流程控制语句有几种?
(1)顺序结构 从上往下,依次执行
(2)选择结构 按照不同的选择,执行不同的代码
(3)循环结构 做一些重复的代码
11:if语句的格式有几种?注意事项是什么?分别在什么时候使用?
(1)三种格式
A:格式1
if(比较表达式) {
语句体;
}
B:格式2
if(比较表达式) {
语句体1;
}else {
语句体2;
}
C:格式3
if(比较表达式1) {
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else {
语句体n+1;
}
(2)注意事项
A:比较表达式无论简单还是复杂,结果是boolean类型
B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。建议:永远不要省略。
C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
D:else后面如果没有if,是不会出现比较表达式的。
E:三种if语句其实都是一个语句,只要有一个执行,其他的就不执行。
12:看程序写结果:请自己独立分析,先不要编译运行。
第一题
int x = 1,y = 1;
if(x++==2 & ++y==2)
{x =7;}
System.out.println("x="+x+",y="+y);
输出:x=2,y=2
---------------------------------------------------
第二题
int x = 1,y = 1;
if(x++==2 && ++y==2)
{x =7;}
System.out.println("x="+x+",y="+y);
输出:x=2,y=1
---------------------------------------------------
第三题
int x = 1,y = 1;
if(x++==1 | ++y==1)
{x =7;}
System.out.println("x="+x+",y="+y);
输出:x=7,y=2
---------------------------------------------------
第四题
int x = 1,y = 1;
if(x++==1 || ++y==1)
{x =7;}
System.out.println("x="+x+",y="+y);
输入:x=7,y=1
---------------------------------------------------
第五题
boolean b = true;
if(b==false)
System.out.println("a");
else if(b)
System.out.println("b");
else if(!b)
System.out.println("c");
else
System.out.println("d");
输出:b
---------------------------------------------------
13:编写代码实现如下内容:if语句实现
考试成绩分等级。
90~100 A等。
80-89 B等。
70-79 C等。
60-69 D等。
60以下E等。
请根据给定成绩,输出对应的等级。
public static void main(String[] args) {
// TODO Auto-generated method stub
int score=85;
if(score>=90&&score<=100){
System.out.println("A");
}else if(score>=80&&score<90){
System.out.println("B");
}else if(score>=70&&score<80){
System.out.println("C");
}else if(score>=60&&score<70){
System.out.println("D");
}else if(score>=0&&score<60){
System.out.println("E");
}else{
System.out.println("score error !");
}
}