java基础知识笔试

java基础知识笔试一 基本概念 1 Java 的优点 纯面向对象 平台无关性 一次编译 到处运行 JVM 上 跨平台 可移植性 丰富类库 多线程 网络通信 垃圾回收 安全性 数组边界检测 bytecode 校验 和健壮性 异常处理 基于 C 改进并去除 C 难以理解的特性 头文件 指针 结构体 运算符重载 多重继承 java 基础知识笔试 使得程序严谨简洁 2 与 C C 的异同 与 C 的相同点

大家好,我是讯享网,很高兴认识大家。



一、基本概念

1、Java的优点

  • 纯面向对象
  • 平台无关性,“一次编译,到处运行(JVM上)”,跨平台,可移植性
  • 丰富类库:多线程、网络通信、垃圾回收
  • 安全性(数组边界检测、bytecode校验)和健壮性(异常处理)
  • 基于C++改进并去除C++难以理解的特性(头文件、指针、结构体、运算符重载、多重继承java基础知识笔试),使得程序严谨简洁

2、与C/C++的异同

  • 与C++的相同点:使用OO思想(封装、继承、多态),具有较好的重用性
  • 不同点:
    • Java为解释性语言(先编译为字节码,再由JVM解释执行),速度慢,但是可跨平台;C/C++为编译型语言(编译链接为 可执行的二进制代码),速度快,但是不可跨平台
    • Java是纯面向对象(变量、方法须在类内执行,不存在全局变量/函数,除基本类型都是类);C/C++兼具面向对象和面向过程,可定义全局变量和全局函数
    • Java没有指针,避免指针带来系统问题,使程序 更安全
    • Java无多继承,但通过接口的多态,可以实现多个接口实现类似多继承的功能
    • C++需要开发人员管理内存的分配(申请与释放)将其放在析构函数中;Java提供垃圾回收机制实现自动回收 ,调用finalize()方法
    • Java具有平台无关性,C/C++同类型在不同平台上分配不同的字节数
    • 其他:运算符重载、goto语句、注释文档、标准库(JDBC)
  • 易错:Java语言中的方法属于类中的成员
    • 原因:静态方法属于类的成员,其他方法属于对象的成员※

3、为什么需要main方法

public static void main(String[] args)

  • 程序的入口方法,无需实例化对象即可执行
  • 多个类中,与文件名相同的类的main方法才是入口函数
  • 其他格式:static public/public static final void/static public synchronized void  

4、main方法前执行输出

静态代码块在类加载时就会被调用,与main方法的先后顺序 无关

5、Java程序的初始化顺序

  • 静态对象优于非静态对象(静态变量优于静态代码块),初始化次数不同
  • 父类优先于子类
  • 按成员变量定义顺序初始化  

6、Java的作用域有哪些?

  • 三种变量:成员变量(生命周期随对象实例化)、静态变量(随类加载,通过类名访问 )、局部变量(没有全局变量,作用域看大括号)
  • 成员变量作用域
    • public
    • private
    • protected:同一包下或子类
    • default:同一包下

7、一个文件中是否可以有多个类

可以

只能有一个类被public修饰,且类名=文件名;

如果没有类被public修饰,则文件名随意=哪个类。

8、什么是构造函数?

  • 用于在对象实例化时初始化对象的成员变量
  • 与类名相同,无返回值
  • 默认无参,可以重载,重载后不再默认创建无参构造
  • 不能被继承,子类通过super调用父类构造
    • 父类有无参构造,不需要显式调用,会默认调用
    • 父类没有无参构造,需要显式调用(super.)
  • 注意:可以有与构造重名的函数(普通方法可以与类重名),构造在对象new时执行

9、为什么有些接口没有任何方法?

  • 无任何方法声明的接口也叫标识接口,起标识作用
  • 常见的标识接口包括Cloneable和Serializable,使用instanceof判断实例对象类型 是否实现了标识接口

10、clone方法的作用

  • 对象复制,Object提供clone方法
  • 实现类需要继承Cloneable接口
  • 浅复制(只有基本类型)&深复制(有引用类型时,需要执行get方法进行深复制)

11、什么是反射机制

  • 运行时自我检查,并可以对内部成员进行操作
  • 运行时对类进行装载,增加程序灵活性
  • 可以在运行时动态地创建类的对象
  • 功能:得到对象所属的类,获取类的所有变量和方法,运行时创建对象(Class对象.newInstance),运行时调用对象的方法
  • 反射时如何获取Class类?
    • Class.forName(类名)
    • 类名.class
    • 实例.getClass()
  • 补充:Java创建对象的方式有几种
    • new语句实例化对象
    • 反射机制创建对象
    • clone克隆一个对象
    • 通过反序列化的方式创建对象※

12、package的作用

  • 提供多层命名空间,解决命名冲突(不同包可以 重名)
  • 对类按功能分类,使项目组织更加清晰
  • 其他:包由一组类和接口组成

13、如何用Java实现C语言中的指针?

回调函数:通过接口类型作为参数,传递实现类作为参数,实现不同的功能

步骤:定义接口,声明方法,实现接口,实现类对象作为参数传递给调用程序,调用程序通过参数调用指定的函数,实现回调函数的功能

举例:排序/开发人员希望系统动态链接库DDL调用自定义方法,利用DDL回调函数接口编写程序,从而实现回调

二、面向对象技术

三、关键字

四、基本类型与运算

五、字符串与数组

六、异常处理

七、输入输出流

八、Java平台与内存管理

九、容器

小讯
上一篇 2024-12-29 12:56
下一篇 2025-01-03 08:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/9235.html