1、Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的
跨平台。
JVM(Java Virtual Machine),Java虚拟机
JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具
总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。
java语言有8种基本数据类型: 4种整数类型: byte, short, int, long.2种浮点类型: float,double. 1种布尔类型: Boolean. 1种字符类型:char
Java中的常量分类:字符串常量 整数常量 小数常量 字符常量 布尔常量 空常量
在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。当我们把常量赋值个byte,short的时候,编译器获取判断常量值是否在对应类型的范围之内,如果在则不会报错可以直接赋值。如果超过了范围则会报错。
获取一个数的个位(一个数对10取余的结果就是个位数.123%10),获取一个数的十位 (一个数/10再对10取余的结果就是个位数.123/10%10),获取一个数的百位(一个数/100再对10取余的结果就是个位数.123/100%10)。
2、语句
if语句格式:
首先一个if语句有且仅有一个一个if开头,后面会有0个到多个else if语句,最后会有0个或1个else 注意:开头肯定是一个if,有可能一个else if都没有,else有可能没有,如果有也只会出现一个else.
if(判断表达式1){
语句体1;
}else if(判断表达式2){
语句体2;
}else if(判断表达式3){
语句体3;
}else if(判断表达式4){
语句体4;
}else{
语句体n+1;
}
下列代码的运行结果是( )
public static void main(String [] args){
int i = 4;
switch (i){
default:
System.out.println("默认语句体");
case 1:
System.out.println("语句体1");
case 2:
System.out.println("语句体2");
case 3:
System.out.println("语句体3");
}
}
switch语句的执行流程是将所有的case同时加载到内存中,执行与关系表达式匹配的那个case。如果没有匹配的则执行default。
当执行完语句体,遇到break或者右大括号,则直接跳出swtich语句。如果没有遇到break或者右大括号则继续执行下面case的语句体。直到遇到break或者右大括号为止。
default的位置是任意的,没有严格的上下关系,但是为了方便阅读,通常写在最下面。
所以答案是: 默认语句体 语句体1 语句体2 语句体3
如何选择循环语句
用的最多的是for循环,如果循环次数已知一般用for.如果循环体和循环次数有关系,也用for循环;while循环一般在循环次数未知的情况下使用,或者死循环一般都用while循环;do...while循环基本不用
3、数组:
数组的长度一旦确定就不能改变
数组中元素的数据类型都是一样的
两种常见的初始化方式:
1. 动态初始化(指定长度)
2. 静态初始化(指定内容)
数组的遍历:int[] arr={1,2,3,4,5,7};
//遍历输出数组元素
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
需求:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?要求使用 调用方法
思路:
1:为了存储多个月的兔子对数,定义一个数组,用动态初始化完成数组元素的初始化,长度为20
2:因为第1个月,第2个月兔子的对数是已知的,都是1,所以数组的第1个元素,第2个元素值也都是1
3:用循环实现计算每个月的兔子对数
4:输出数组中最后一个元素的值,就是第20个月的兔子对数
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(getSum(n));
}
//返回值类型: int
//参数 : n
public static int getSum(int n ){
int[] arr = new int[n];
if(n==1||n==2){
return 1;
}
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i-1]+arr[i-2];
}
return arr[arr.length-1];
|
|