Java 基础语法-面试题(54-63道)(数组+类+包)

简介: Java 基础语法-面试题(54-63道)(数组+类+包)

基础语法面试题(54-63道)(数组+类+包)

54. 定义一个一维的 int 数组,先创建它,并初始化它,给它赋值,然后输出其中的一个值
public class Arr {
    public static void main(String[] args) {
        int a[] = new int[5];
        //a={1,2,3,4,5};//错误 , 只能在初始化时这样做
        a[0]=1;
    a[1]=2;
      System.out.println(a[0]);  //1
    }
}
55. 定义一个一维的 A 类型数组,直接定义并赋值,然后输出其中的一个值
public class A {
    public static int i;
    public static void main(String args[]){
        A aa = new A( );
        A bb = new A( );
        A a[] = {aa,bb};
        a[0].i=2;
        System.out.println(a[0]);
    }
}
//JavaseDemo.A@723279cf
56. 把上面的数组改成 2 维的数组
public class A{
    public static int i;
    public static void main(String args[]){
        A a [][] = new A[5][5];
        a[0][0].i=2;
        System.out.println(a[0][0]);
    }
}
//null
57. 举例说明数组拷贝方法的使用:arraycopy 方法
public class A{
    public static void main(String args[]){
        int a[] = new int[5];
        int b[] = new int[5];
        System.arraycopy(a[5],0,b[5],0,a.length);//主线程异常 索引出界
        System.out.println(b[0]);
    }
}
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
  at JavaseDemo.A.main(A.java:5)

58. 什么是构造和析构方法?功能是?

构造方法:每个类至少有一个构造方法,类初始化时调用的方法


1.方法名和类名相同


2.无返回值类型


格式:访问权限 类名(参数列表) {};


1.自己定义构造后,就没有默认的构造方法


2.无构造方法时,默认为空参的构造方法(无参数,方法体为空)


析构方法:finalize


类销毁时,自动调用方法


当对象在内存中被删除时,自动调用该方法


在此方法中可以写回收对象内部的动态空间的代码


59. 简述 Java 的访问修饰符类型?分别有什么功能?

public 公开的,任何一个类都有可以访问


protected 同包同类,只可被它的子类访问


default 只能被同一个包中类访问


private 私有的,只能在本类中被访问


60. 分别说明:在类上、在属性上、在方法上能使用哪些访问修饰符

在类上:public default final


在方法上: 访问权限:public protected private default


方法修饰符:static


final


返回类型:void


在属性上:public protected private default


static


final


61. 简述什么是包?包的功能

包:对所定义的多个 JAVA 类进行分组,将多个功能相关的类定义到一个包(文件)中。


功能:


易于查找和使用适当的类

包不止包含类和接口,还可以包含其它包,形成层次的包空间

有助于避免命名冲突

62. 请写出 5 个以上的 JDK 中的包,以及他们的基本功能

java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面


java.lang: 提供 java 编成语言的程序设计的基础类


java.io: 包含提供多种输出输入功能的类,


java.net: 包含执行与网络有关的类,如 URL,SCOKET,SEVERSOCKET,


java.applet: 包含 java 小应用程序的类


java.util: 包含一些实用性的类


63. 什么是包装类?Java 中都有哪些包装类

在 JDK 中针对各种基本类型分别定义相应的引用类型 ————–称为封装类


Boolean Byte Short Integer Long Float Double Character

目录
相关文章
|
1天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
13 6
|
3天前
|
IDE Java 编译器
Java:如何确定编译和运行时类路径是否一致
类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
|
2天前
|
安全 Java 测试技术
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
9 2
|
3天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。
【10月更文挑战第14天】从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其独特的“不重复性”要求,彻底改变了处理唯一性约束数据的方式。本文深入探讨Set的核心理念,并通过示例代码展示了HashSet和TreeSet的特点和应用场景。
8 2
|
存储 算法 Java
Java8语法最佳实践-什么是对象(上)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
158 0
Java8语法最佳实践-什么是对象(上)
|
存储 安全 Java
Java8语法最佳实践-什么是对象(下)
计算机革命起源机器。编程语言就像是那台机器。它不仅是我们思维放大的工具与另一种表达媒介,更像是我们思想的一部分。语言的灵感来自其他形式的表达,如写作,绘画,雕塑,动画和电影制作。编程语言就是创建应用程序的思想结构。
97 0
|
4天前
|
安全 Java UED
Java中的多线程编程:从基础到实践
本文深入探讨了Java中的多线程编程,包括线程的创建、生命周期管理以及同步机制。通过实例展示了如何使用Thread类和Runnable接口来创建线程,讨论了线程安全问题及解决策略,如使用synchronized关键字和ReentrantLock类。文章还涵盖了线程间通信的方式,包括wait()、notify()和notifyAll()方法,以及如何避免死锁。此外,还介绍了高级并发工具如CountDownLatch和CyclicBarrier的使用方法。通过综合运用这些技术,可以有效提高多线程程序的性能和可靠性。
|
4天前
|
缓存 Java UED
Java中的多线程编程:从基础到实践
【10月更文挑战第13天】 Java作为一门跨平台的编程语言,其强大的多线程能力一直是其核心优势之一。本文将从最基础的概念讲起,逐步深入探讨Java多线程的实现方式及其应用场景,通过实例讲解帮助读者更好地理解和应用这一技术。
19 3
|
8天前
|
Java 调度 UED
深入理解Java中的多线程与并发机制
本文将详细探讨Java中多线程的概念、实现方式及并发机制,包括线程的生命周期、同步与锁机制以及高级并发工具。通过实例代码演示,帮助读者理解如何在Java中有效地处理多线程和并发问题,提高程序的性能和响应能力。
|
6天前
|
缓存 安全 Java
使用 Java 内存模型解决多线程中的数据竞争问题
【10月更文挑战第11天】在 Java 多线程编程中,数据竞争是一个常见问题。通过使用 `synchronized` 关键字、`volatile` 关键字、原子类、显式锁、避免共享可变数据、合理设计数据结构、遵循线程安全原则和使用线程池等方法,可以有效解决数据竞争问题,确保程序的正确性和稳定性。
13 2