JAVA 技术方向测试题-Java 基础
2021/10/3 17:40:51
本文主要是介绍JAVA 技术方向测试题-Java 基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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 技术方向测试题-Java 基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南