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 (int i = 1;i<=9;i++){
for(int j = 1;j<=i;j++){
System.out.print(j+""+i+"="+ij+" ");
}
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 ){
double dist =0;
double a = Math.pow((p1.getX()-p2.getX()),2);
double b = 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);
}
}
小编还整理了许多的java面试资料。