简述一下Java的跨平台原理:
由源文件(.java)--->字节码文件(.class)(二进制文件)-----> 解释---->Unix,Win,Linux等机器。
1.一次编译,到处运行
2.编译器的作用:将源文件编译成class文件
3.虚拟机的作用:将字节码文件解释成对应平台机器码并执行。
4.java可以实现跨所有的平台?只有提供并且安装了相对应的虚拟机就可以跨该平台。
5.虚拟机和解释器的关系:解释器是虚拟机的一个重要的组成部分。
6.Java语言的执行要经过编译和解释两个阶段。
while 与 do-while的区别
while语句是先判断循环条件,如果条件为真怎执行循环体;而do-while语句则先执行一次循环体,然后才判断循环条件,如果循环条件为真,则执行下一次循环,否则终止循环。
int[ ]是一种数据类型吗?
int[ ] 是一种数据类型,是引用类型。与 int 类型,double 类型相似,一样可以使用该类型定义变量。
java中数据扩容的三种方式
int[] arr2 = new int[arr1.length*2]; //新数组长度
for(int i = 0 ; i < arr1.length ; i++) {
arr2[i] = arr1[i];
}
int[] arr2=java.util.Arrays.copyOf(原数组名,新数组长度);
int[] arr2=new int[arr1.length*2]
System.arraycopy(原数组名,起始下标,新数组名,起始下标,复制长度);
写一个冒泡排序方法:
public static int[] Bubblesort(int[] nums) {
int temp;
//外层 i < nums.length-1
for(int i = 0 ; i < nums.length-1 ; i++) {
//内层 j < nums.length-i-1
for(int j = 0 ; j < nums.length-i-1 ; j++) {
if(nums[j] > nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
return nums;
}
处理一个以字符串形式输入的整串数组,并在不影响其他排序的情况下将数组中的 ‘0’ 移动到最后位置:
public static void main(String[] args) {
System.out.println("请输入需要处理的数组:");
Scanner input1 = new Scanner(System.in);
String str = input1.next().toString();
String str1 = (String) str.subSequence(1, str.length()-1);
String[] str2 = str1.split(",");
String temp;
for(int i = 0 ; i < str2.length-1 ; i++) {
for(int j = 0 ; j < str2.length-i-1 ; j++) {
if(str2[j].equals("0")) {
temp = str2[j];
str2[j] = str2[j+1];
str2[j+1] = temp;
}
}
}
System.out.print("处理后的数组为:\n[");
for(int i = 0 ; i < str2.length-1 ; i++) {
System.out.print(str2[i]+",");
}
System.out.println(str2[str2.length-1]+"]");
}
运行结果: