本篇为Java SE基础知识的10道小题
目录
1.Java跨平台原理
2. 写出JDK,JRE,JVM全称以及它们作用与关系
3. JDK三个环境变量的设置
4. Java缺点有什么(相对C++比较),产生这些缺点的原因
5. Java的三个分支以及他们的全称
6. Java ME 与android的关系
7. 使用冒泡算法对下列数组元素排序
8. 使用二分查找找出数组中某个元素的位置
9. 使用递归计算100的阶乘
10.构造方法 定义=特点 分类
1. Java的跨平台原理
Java跨平台原理是java的主要特点之一,其中主要依靠JVM技术。
首先跨平台就是编译器产生的目标代码能运行在多种CPU上,大多数编译器产生的目标代码只能运行在一种CPU上,如C语言经过编译生成汇编文件再经过链接链接成后缀为.exe的可执行文件,然而Java语言经过编译先生成针对一种并不存在的CPU–Java虚拟机(JVM)的后缀为.class的中间字节码,然后再由JVM解释为机器码,JVM能够掩盖不同CPU之间的差距,使字节码能够运行在任何具有JVM虚拟机的机器上
拓展
机器码:CPU能够直接读取并运行的代码,它是用二进制编码表示的
字节码:是一种中间状态的二进制文件,由源码编译过来(一处编译,到处运行)。
2. 写出JDK,JRE,JVM全称以及它们作用与关系
JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
JDK:Java DevelopMent Kits.
Java开发工具包,包括Java编译器,JRE等组件
作用:开发Java程序
JRE:Java Runtime Environment.
Java运行环境,包括JVM虚拟机,Java支持类库
JVM:Java Virtual Machine.
Java虚拟机,每种平台Java虚拟机不同
作用:将字节码解释为机器码
3.JDK三个环境变量的设置
Java_home JDK根文件夹
classPath .; %java_home%\lib
path %java_home%\bin
4. Java缺点有什么(相对C++比较),产生这些缺点的原因
(JVM)
优点:一次编译到处运行。系统的多平台支持。
缺点:运行速度慢,占用资源多(Java的运行速度是用class常驻内存完成的,所以它在一些情况下所使用的内存比起用户数量来说是“最低性能价格比了”,另一方面,它还需要硬盘空间来存储一系列的.Java文件和.class文件,以及对应的版本文件)
无指针无法直接操作内存
垃圾回收线程占用资源,不能实时收集内存
5. Java的三个分支以及他们的全称
Java ME -->Mobile Edition
Java SE -->Standard Edition
Java EE–>Enterprise(企业) Edition
6. JavaME 与android的关系
Java ME 为在移动设备和嵌入式设备上运行的应用程序提供一个健壮且灵活的环境
Android使用Java开发的手机操作系统,可以直接运行Java。
目前Java ME已经被安卓和IOS所替代
7. 使用冒泡算法对下列数组元素排序
public class BubbleSort{
viod bubbleSort(int[] Array){
//外层循环控制比较的轮次
for(int i = 0; i < Array.length - 1; i++){
//内层循环控制比较的次数
for(int j = 0; j < Array.length -i - 1; j++){
//三角置换
if(Array[j] > Array[j + 1]){
int temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
}
public static String main(String srgs[]){
int[] Array = {3,9,48,23,94,8,2,31};
}
}
8. 使用二分查找找出数组中某个元素的位置
#include <stdio.h>
int binarySearch(int Array[], int low,int high,int key){
int mid =low + (high - low)/2;
if(key == Array[mid]) return mid;
else if(key < Array[mid]) binarySearch(Array,low,mid - 1,key);
else binarySearch(Array,mid + 1,high,key);
}
int main(void){
int Array[] = {0,1,2,3,4,5,6,7};
int a = binarySearch(Array, 0, 7, 7);
printf("%d\n",a);
return 0;
}
9. 使用递归计算10的阶乘
#include <stdio.h>
long digui(int a,int b){
int c = a * b;
if(b == 10) return c;
digui(c, b + 1);
}
int main(void){
long pro = digui(1,2);
printf("%d\n",pro);
return 0;
}
10. 构造方法 定义=特点 分类
定义:1.方法名与类名相同
2.没有返回值(连void也没有)
3.在对象创建时由系统(JVM)自动调用
分类:1.显示构造方法:可见的,程序员定义,0-N个
2.隐式构造方法:不可见,由系统(JVM)添加0-1个无参且什么都不做的构造方法
当程序员未定义时,系统添加隐式
作用:对对象的成员变量做初始化的赋值
程序小白一个,如有错误,多多指教
谢谢浏览~