break:用于完全退出一个循环(如 for, while)或一个 switch 语句。当在循环体内遇到 break 语句时,程序会立即跳出当前循环体,继续执行循环之后的代码。continue:用于跳过当前循环体中剩余的部分,并开始下一次循环。如果是在 for 循环中使用 continue,则会直接进行条件判断以决定是否执行下一轮循环。if语句可以处理范围条件和复杂条件判断,而switch语句通常用于等值判断,即变量等于某个特定值的情况。switch语句支持的类型有限,主要是整型(包括byte、short、int、char)和枚举类型,以及从Java 7开始支持的字符串类型。if语句没有这种限制。switch语句在执行完一个case后,如果没有break,会继续执行下一个case的代码(称为“穿透”),而if语句不会出现这种情况。for循环:通过初始化表达式、条件表达式和迭代表达式来控制循环次数。while循环:在循环开始前检查条件,如果条件为真,则执行循环体。do-while循环:至少执行一次循环体,之后再检查条件是否满足。for循环(也称为for-each循环):用于遍历数组或集合中的元素,简化了遍历过程。7. 数组有没有length()这个方法? String有没有length()这个方法?(*蓝)
length()方法,而是有一个length属性。例如,int[] arr = new int[10]; 中,arr.length会返回数组的长度,即10。length()方法,用于返回字符串的长度。例如,String str = "Hello"; 中,str.length()会返回5。8.有数组int[] arr,用Java代码将数组元素顺序颠倒(闪*购)
- public static void reverseArray(int[] arr) {
- int leftIndex = 0;
- int rightIndex = arr.length - 1;
-
- while (leftIndex < rightIndex) {
- // 交换两端的元素
- int temp = arr[leftIndex];
- arr[leftIndex] = arr[rightIndex];
- arr[rightIndex] = temp;
- // 移动索引
- leftIndex++;
- rightIndex--;
- }
- }
9.为什么数组要从0开始编号,而不是1(中*支付)
10.数组有什么排序的方式,手写一下(平*保险)
- public static void bubbleSort(int[] arr) {
- int temp;
- for (int i = 0; i < arr.length - 1; i++) {
- for (int j = 0; j < arr.length - 1 - i; j++) {
- if (arr[j] > arr[j + 1]) {
- temp = arr[j];
- arr[j] = arr[j + 1];
- arr[j + 1] = temp;
- }
- }
- }
- }
11.常见排序算法,说下快排过程,时间复杂度?(5*到家)
选择一个'pivot'(基准)元素。
将所有比pivot小的元素放到它的左边,比pivot大的放到右边。
对左右两边递归执行上述步骤。
12.二分算法实现数组的查找(神舟*天软件)
- public static int binarySearch(int[] arr, int target) {
- int left = 0, right = arr.length - 1;
- while (left <= right) {
- int mid = left + (right - left) / 2;
- if (arr[mid] == target) {
- return mid;
- } else if (arr[mid] < target) {
- left = mid + 1;
- } else {
- right = mid - 1;
- }
- }
- return -1; // 如果没有找到目标值,则返回-1
- }
13.怎么求数组的最大子序列和(携*)
- public static int maxSubArraySum(int[] arr) {
- int maxSoFar = arr[0];
- int currMax = arr[0];
-
- for (int i = 1; i < arr.length; i++) {
- currMax = Math.max(arr[i], currMax + arr[i]);
- maxSoFar = Math.max(maxSoFar, currMax);
- }
-
- return maxSoFar;
- }
14.Arrays 类的排序方法是什么?如何实现排序的?(阿*、阿*校招)
- import java.util.Arrays;
-
- public class ArraySortExample {
- public static void main(String[] args) {
- int[] arr = {9, 5, 1, 8, 2, 7};
-
- // 对数组进行排序
- Arrays.sort(arr);
-
- // 输出排序后的数组
- System.out.println(Arrays.toString(arr));
- }
- }
这段代码将会输出一个已经按照升序排列的数组 [1, 2, 5, 7, 8, 9]。
- import java.util.Arrays;
- import java.util.Comparator;
-
- class Person implements Comparable
{ - private String name;
- private int age;
-
- public Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
-
- @Override
- public int compareTo(Person other) {
- return Integer.compare(this.age, other.age);
- }
-
- @Override
- public String toString() {
- return name + ": " + age;
- }
- }
-
- public class ObjectArraySortExample {
- public static void main(String[] args) {
- Person[] people = new Person[] {
- new Person("Tom", 30),
- new Person("Jerry", 25),
- new Person("Bob", 22)
- };
-
- // 按照年龄排序
- Arrays.sort(people);
-
- // 输出排序后的数组
- System.out.println(Arrays.toString(people));
-
- // 使用Comparator按姓名排序
- Arrays.sort(people, new Comparator
() { - @Override
- public int compare(Person p1, Person p2) {
- return p1.getName().compareTo(p2.getName());
- }
- });
-
- // 输出按姓名排序后的数组
- System.out.println(Arrays.toString(people));
- }
- }
在这个例子中,我们首先根据年龄对 Person 实例进行排序,然后使用 Comparator 根据名字进行排序。注意 toString 方法的重写是为了更好地展示输出结果。
15.面向对象与面向过程的理解
16.Java 的引用类型有哪几种(阿*校招)
类、数组、接口;枚举、注解、记录
17.类和对象的区别(凡*科技、上*银行)
18.面向对象,你解释一下,项目中哪些地方用到面向对象?(燕*金融)
19.Java虚拟机中内存划分为哪些区域,详细介绍一下(神**岳、数*互融)
Java虚拟机(JVM)内存主要分为以下几个区域:
20.对象存在Java内存的哪块区域里面?(阿*)
21.private 、缺省、protected、public的表格化作用区域(爱*信、拓*思、中*瑞飞)

22.main方法的public能不能换成private?为什么?(凡*科技、顺*)
main 方法是程序的入口点,必须被声明为 public,这样JVM才能访问它。如果声明为 private,JVM将无法执行该方法,导致程序无法启动。23.构造方法和普通方法的区别(凡*科技、软*动力、中*软)
24.构造器Constructor是否可被overload?(鸿*网络)
25.无参构造器和有参构造器的的作用和应用(北京楚*龙)
26.成员变量与局部变量的区别(艾*软件)
27.变量赋值和构造方法加载的优先级问题(凡*科技、博*软件)
在Java中,变量的初始化顺序遵循它们在类中声明的顺序,无论是在构造函数中还是直接在类声明中初始化。构造方法会在创建对象时被调用,而类级别的变量初始化会先于构造方法执行。如果构造方法中有对变量的赋值,那么这些赋值会发生在构造方法执行期间。
28.父类哪些成员可以被继承,属性可以被继承吗?可以或者不可以,请举下例子。(北京明**信)
29.什么是Override,与Overload的区别(顺*、软**力、明*数据、阳*科技、中*软)
30.Overload的方法是否可以改变返回值的类型?(新*陆)
31.构造器Constructor是否可被override?(鸿*网络、深圳德**技、航**普)
32.为什么要有重载,我随便命名一个别的函数名不行吗?谈谈你是怎么理解的。(腾*)
33.super和this的区别(蚂**服)
34.this、super关键字分别代表什么?以及他们各自的使用场景和作用。(北京楚*龙)
35.谈谈你对多态的理解(三*重工、江*智能、银*数据、君*科技)
36.多态new出来的对象跟不多态new出来的对象区别在哪?(万*智能)
37.说说你认为多态在代码中的体现(楚*龙)
38.==与equals的区别(拓*思)
39.重写equals方法要注意什么?(安**网络科技)
40.Java中所有类的父类是什么?他都有什么方法?(阿*校招)
这些方法提供了基本的功能,如对象的字符串表示、对象的比较、哈希码计算等。
41.
42.