JAVA 技术方向面试题-Java 基础


JAVA 技术方向面试题-Java 基础

Java 基础面试题

1.JVM、JRE 和 JDK 的关系

DK(Java Development Kit) 是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
Java Runtime Environment(JRE) 是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

2.什么是跨平台性?原理是什么?

实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。(注意不是能在所有的平台上运行,关键是该平台是否能安装相应的虚拟机)。

3.&和&&的区别?

&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,

4.用最有效率的方法计算 2 乘以 8

2 << 3,
因为将一个数左移n 位,就相当于乘以了2 的n 次方,那么,一个数乘以8 只要将其左移3 位
即可,而位运算cpu 直接支持的,效率最高,所以,2 乘以8 等於几的最效率的方法是2 << 3。

5.在没有使用临时变量的情况如何交换两个整数变量的值?

下面展示一些 内联代码片

public static void swap1() {
	int i = 1, j = 5;
	System.out.println("i:" + i + ",j:" + j);
	int tmp=i;
	i = j;
	j = tmp;
	System.out.println("i:" + i + ",j:" + j);
}

6.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

7.float f=3.4;是否正确?

不正确,3.4默认double类型,所以float f = 3.4f;

8.手动实现一下冒泡排序(快速排序)

下面展示一些 内联代码片

 public void maoPao (int[] a){
        for (int i = 0; i < a.length-1; i++) {//需要进行比较的轮数
            for (int j = 0; j < a.length-1-i; j++) {//每轮进行比较的次数
                if (a[j]<a[j+1]){//前一位数值大于后一位数值,则交换位置
                    int tmp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = tmp;
                }
            }
        }
    }

9.实现打印指定行数的空心菱形的功能

public void rhomb() {
        Scanner scanner = new Scanner(System.in);
        //行数
        int i = scanner.nextInt();
        for (int j = 0; j < i; j++) {
            //  空白
            for (int k = 0; k < Math.abs(i / 2 - j); k++) {
                System.out.print(" ");
            }
            //  *+空白
            for (int k = 0; k < i - 2 * Math.abs(i / 2 - j); k++) {
                if (k == 0 || k == i - 2 * Math.abs(i / 2 - j) - 1) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值