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

相关文章
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
76 2
|
25天前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
63 14
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
1月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
1月前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
1月前
|
Java 编译器 程序员
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
34 6
|
1月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
61 4
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
126 4
|
2月前
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
122 1
Java面试题之Java集合面试题 50道(带答案)
|
2月前
|
存储 Java 程序员
Java面试加分点!一文读懂HashMap底层实现与扩容机制
本文详细解析了Java中经典的HashMap数据结构,包括其底层实现、扩容机制、put和查找过程、哈希函数以及JDK 1.7与1.8的差异。通过数组、链表和红黑树的组合,HashMap实现了高效的键值对存储与检索。文章还介绍了HashMap在不同版本中的优化,帮助读者更好地理解和应用这一重要工具。
70 5