标签:JAVA nums int s1 测试题 System ++ Java out
JAVA 技术方向测试题-Java 基础
1.JVM、JRE 和 JDK 的关系
JDK>JRE>JVM.
JVM:是Java虚拟机。能识别class类型文件中字节码指令,调用操作系统向上的API完成动作。JVM是java能够跨平台的核心。
JRE:Java运行时环境。主要包含两个部分:JVM的标准实现和Java的一些基本类库。与jvm相比多出来的是一部分的java类库。
JDK:Java开发工具包。JDK是整个Java开发的核心,它集成了JRE和一些工具。
2.什么是跨平台性?原理是什么?
跨平台性是指经过一次编译后可以在不同的操作系统上运行。
实现原理:JDK里有多个jvm针对不同的操作系统,这样只需要编译一次就能生成jvm时别的class文件,通过不同的jvm翻译就能让不同的操作系统运行。
3.&和&&的区别?
短路与:&&,如果左侧的表达式是false就不执行右侧,直接返回false。
&:无论左侧是不是false都会在执行一边右边。
4.用最有效率的方法计算 2 乘以 8
2 << 3.
一个数左移几位就是乘以2的几次方。8 = 23,所以左移3位,位运算是cpu直接支持的,效率更高,而2*8是通过加法运算操作的。
5.在没有使用临时变量的情况如何交换两个整数变量的值?
a ^= b
b ^= a
a ^= b
6.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1; 有错吗?
short s1 = 1;
s1 = s1 +1;//是错误的. 因为1是int型,相加之后是int型不能直接赋值给short型,需要强转.
s1 += 1;//是正确的.因为 += 隐含了强转,相当于 s1 = (int) s1 + 1;
7.float f=3.4;是否正确?
不正确。在Java里,没有小数点的数据类型默认是int型,有小数点的数据类型是double类型
float f = 3.4F;//这样是正确的.
8.手动实现一下冒泡排序(快速排序)
//第一种方法
boolean flag = false;
do {
flag = false;
for(int i = 0;i < nums.length;i++) {
//如果左侧大于右侧
if(nums[i] > nums[i+1]) {
nums[i] ^= nums[i+1];
nums[i+1] ^= nums[i];
nums[i] ^= nums[i+1];
flag = true;
}
}
}while(flag)
//第二种方法
//轮数
for(int i = 0;i < nums.length;i++) {
//次数
for(int j = i;j < nums.length-i-1;j++) {
if(nums[j] > nums[j+1]) {
nums[j] ^= nums[j+1];
nums[j+1] ^= nums[j];
nums[j] ^= nums[j+1];
}
}
}
9.实现打印指定行数的空心菱形的功能
for(int i = 0;i < 4;i++) {
for(int k = 0;k < 4-i-1;k++) {
System.out.print(" ");
}
for(int j = 0;j < 2*i+1;j++) {
if(j == 0 || j == 2*i) {
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();
}
for(int i = 0;i < 3;i++) {
for(int j = 0;j < i+1;j++) {
System.out.print(" ");
}
for(int k = 0;k < 5-2*i;k++) {
if(k == 0 || k == 5-2*i-1) {
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();
}
运行结果:
10.打印扫雷的地图
Scanner input = new Scanner(System.in);
Random r = new Random();
System.out.print("请输入地图的边长:");
int size = input.nextInt();
String[][] map = new String[size][size];
//初始化地图
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
map[i][j] = i+""+j;
}
}
//打印地图
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
System.out.print(map[i][j]+" ");
}
System.out.println();
}
运行截图:
标签:JAVA,nums,int,s1,测试题,System,++,Java,out 来源: https://www.cnblogs.com/mxkgmn/p/15364534.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。