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

简介: 1、JDK、JRE、JVM① JDK: Java Development kit Java 开发工具包② JRE: Java Runtime Environment Java 运行环境③ JVM: Java virtual Machine Java 虚拟机

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面试资料。
2345_image_file_copy_49.jpg

相关文章
|
11天前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
29 4
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
108 2
|
10天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
10天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
10天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
10天前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题
|
10天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
1月前
|
Java
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
今日分享的主题是如何区分&和&&的区别,提高自身面试的能力。主要分为以下四部分。 1、自我面试经历 2、&amp和&amp&amp的不同之处 3、&对&&的不同用回答逻辑解释 4、彩蛋
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
93 14
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!