java基础知识(常用的简单面试题)

来源:互联网 发布:限制文件夹大小 linux 编辑:程序博客网 时间:2024/06/05 04:19

本文为笔者学习过程中根据老师指导自行整理!

1、JDK、JRE、JVM

①  JDK: Java Development kit   Java 开发工具包

②  JRE: Java Runtime Environment  Java 运行环境

③  JVM: Java virtual Machine  Java 虚拟机

2、简述Java程序编译和运行的过程

①  Java编译程序将Java源程序翻译为JVM可执行代码--字节码,创建完源文件之后,程序会先被编译成 “.class” 文件。

②  在编译好的java程序得到“.class”文件后,使用命令java 运行这个 .class 文件,系统就会启动一个jvm进程,并找到主函数的入口,开始执行main函数。

3、八种基础数据类型及字节大小

①    byte                8位

②    short              16位

③    int                      32位

④    long                  64位

⑤    float                32位

⑥    double           64位

⑦    boolean           1位

⑧    char                  16位

4、使用嵌套的for循环打印九九乘法表。

 public class Multiplication {

  public static void main(String[] args) {

       for (inti = 1;i<=9;i++){

           for(intj = 1;j<=i;j++){

             System.out.print(j+"*"+i+"="+i*j+" ");

           }

           System.out.println();

       }

    }

}


1、值传递和引用传递的区别

①值传递:值传递是将进行传递的值进行拷贝,然后对拷贝之后的值进行传递,传递过程前后不改变原值的大小;

②引用传递:引用传递是将需要传递值的地址进行传递,传递过程前后会改变原值的大小。

2、什么是方法重载

 

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

 

3、4种访问控制符区别描述

 

①    Private(当前访问权限):被声明为private的成员只能被当前类中的其他成员访问,不能在类外看到;

②    缺省(包访问权限):如果一个类或类的成员前没有访问控制符,则获得缺省的访问权限,缺省的可以被同一包中的所有类访问;

③    Protected(子类访问权限):被声明为protected的成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问;

④    Public(公共访问权限):被声明为public的成员可被同一包或不同包中的所有类访问,即public访问修饰符可以使类的特性公用于任何类。

 

4、写出8个基本数据类型提供了对应的封装类

①byte      Byte                     字节

②short     Short                    短整型

③    int       Integer              整型

④    long     Long                   长整型

⑤    char            Character         字符型

⑥    float           Float                   单精度浮点型

⑦    double       Double               双精度浮点型

⑧    boolean     Boolean             布尔型

 

5、什么是装箱和拆箱

         ①装箱:指将基本类型数据值转换成对应的封装对象,即将栈中的数据封装成对象存放到堆栈中;

         ②拆箱:拆箱是装箱的反过程,是封装的对象转换成基本类型的数据值,即将堆中的数据值存放到栈中的过程。

 

6、String 和StringBuilder的区别

         ①String创新的字符串建的字符串是不可变的,如果改变字符串变量的值,是在内存中创建一个新的字符串,字符串变量将引用新创建的字符串地址,而原来的字符串在内存中依然存在且内容不变,直至java的垃圾回收系统对其进行销毁;

         ②StringBuilde创建一个可变的字符串,StringBuilder没有实现线程安全,因此性能较好。

 

编写一个 PointDemo 类,并提供一个distance(Point p1,Point p2)方法用于计

算两点之间的距离,实例化两个具体的 Point 对象并显示它们之间的距离

public class PointDemo {

    public  void distance(Point p1 ,Point p2 ){

       doubledist =0;

        doublea = Math.pow((p1.getX()-p2.getX()),2);

       doubleb = Math.pow((p1.getY()-p2.getY()),2);

       dist=Math.sqrt(a+b);

       System.out.println(dist);

    }

public static void main(String[]args) {

       Point p1 = new Point();

       Point p2 = new Point();    

        Scanner a = new Scanner(System.in);

        System.out.print("Please input x for point 1:");

         p1.setX(a.nextDouble()); 

        System.out.print("Please input y for point 1:");

         p1.setY(a.nextDouble());    

        System.out.print("Please input x for point 2:");

         p2.setX(a.nextDouble()); 

        System.out.print("Please input y for point 2:");

         p2.setY(a.nextDouble());

        PointDemo s =new PointDemo();

         s.distance(p1,p2);

    }

}