文章目录
- 前言
- 一、基础
- 二、java面向对象
-
- 2.1 面向对象与面向过程的区别
- 2.2 构造器Constroctor是否可被override(重写)?
- 2.3 在Java中定义一个不做事且没有参数的构造方法的作用
- 2.4 成员变量与局部变量的区别有哪些?
- 2.5 创建一个对象用什么运算符?对象实体与对象引用有何不同?
- 2.6一个类的构造方法的作用是什么?若没有声明构造方法,该程序能正确执行吗?为什么?
- 2.7 构造方法有哪些特性?
- 2.8 在调用子类构造方法之前会调用父类无参构造方法,其目的是?
- 2.9 对象的相等与指向他们的引用相等,二者有什么不同?
- 2..10 面向对象三大特征
- 2.11 在一个静态方法内调用一个非静态的成员为什么是非法的?
- 2.12 静态方法和实例化方法有何不同?
- 2.13 接口和抽象类的区别是什么?
前言
java基础:
一、基础
1.1 java和C++的区别?
答:(1)都是面向对象编程语言,都支持封装,继承和多态
(2)java不提供指针直接访问内存,程序内存更加安全
(3)Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口 可以多继承。
(4)Java有自动内存管理机制,不需要程序员手动释放无用内存
(5)在C语言中,字符串或字符数组最后都会有一个额外的字符“\0”来表示结束。但是,java语言中没有结束符这一概念。
1.2 自动装箱与拆箱
- 装箱:将基本类型用应用类型包装起来。
- 拆箱:将包装类型转换成基本类型
1.3 为什么java中只有值传递?
- 按值调用表示方法接收的是调用者提供的值
- 按引用调用表示方法接收的是调用者提供的变量地址
- 一个方法可以修改传递的引用所对应的变量值,而不能修改传递值调用所对应的变量值。
- Java程序设计语言总是采用按值调用。方法得到的是所有参数值的一个拷贝,也就是说,方法不能修改传递给它的任何参数变量内容。
1.4 重载与重写的区别
- 重载:方法名相同,参数类型或个数不同,返回值和访问修饰符可以不同
- 重写:就是当子类继承父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法
1.5深拷贝VS浅拷贝
- 浅拷贝:对于基本数据类型进行下值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝
- 深拷贝:对于基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝