1. 面向对象的特征有哪些?
封装 继承 多态 (抽象)
2.一个“.java”文件中是否可以有多个类(不是内部类)?有什么限制吗?
只能是默认访问修饰符的类 class 类名{ } 在 bin 中会生成字节码文件,在src 中不生成源文件
3.Java程序的执行过程是怎样的?
源文件编译成字节码文件 JVM 类加载(根加载器:加载启动类和java.* 的核心类 扩展类加载器:加载javax.* 和jre z中的jar 包,系统类加载器:加载自定义类) 字节码校验 解释 编译(JIT) 本地代码 执行
4.Java的数据类型有哪些?
基本数据类型 byte short int long float double char boolean
引用数据类型 类 (String) 接口 数组
5.强转
造成数据丢失的都是强转,而取值范围大的转为取值范围小的也会看做强转:特殊情况:在运算时 得出的值超出了该定义类型的取值范围,值会变成改定义类型的最小负数值(内存字节的第一位是0:改数位正数:是1则为负数)
6.请说明内存的分类?什么数据存于堆区?什么数据存于栈区?
基本数据----栈 引用数据----堆
7.类变量与成员变量的区别?
类变量和类有关 用static修饰 加载时间在类之后(不能用this.) 成员变量的作用域在整个类 在方法加载之前加载
8.构造方法是否可以被重写?
不能被重写 每个类都有自己特有的构造方法,不能改变。 重写只会出现在方法中
9.多态的概念。
向上转型 向下 转型(子类和父类可以相互转换 ,转换前用instanceof 判断是否可以转换)
动态绑定 子类重写父类方法,根据父类引用指向的对象使用不同的对象
10.接口与抽象类的区别?
访问修饰符 interface 接口名
访问修饰符 class 类名
都不能实例化 类只能单继承 接口可以多继承
抽象类可以有不抽象的方法 方法可以是任何访问修饰符修饰
接口中的方法全是抽象的 方法只能是默认和 public 修饰
11.this、super的用法与区别?
This 指当前对象(本类) super 指父类对象
12.构造方法的作用以及构造方法被执行的时候做哪些事情?
用于创建对象时 实例化模板的调用 先执行构造方法中的语句 在实例化模板
13.当一个对象被当作参数传入到一个方法中,可以在方法内部改变该对象的属性值,那么这里是值传递还是引用传递?
值传递 (此题具有误导性,引用传递不存在)
14.是否可以在一个static方法中发出对一个非static方法的调用?
可以 但是必须创建对象 使用对象来调用 static 的加载时间比其它类和方法早
15.接口是否可以继承接口?抽象类是否可以继承接口?抽象类是否可以继承实现类?
可以 也可以多继承 抽象类可以实现接口 可以多实现 但是不能继承 可以继承实现类
16.JDK与JRE分别是什么?有什么区别吗?
集成开发环境 开发包和运行环境 需要配置环境变量
Java 运行环境 不需要配置环境变量
JDK 包含了JRE
17. 用最有效率的方法算出2乘以8等於几?
Int i = 2*8; 2<<3
18. 在类OuterClass里有个内部类InnerClass,将OuterClass编译完成后会生成几个class档,分别是什么?
两个 OuterClass.class 和 OuterClass$InnerClass.class
局部内部类 为 外部类类名$1内部类类名 其中 ‘1’是局部内部类出现的次数(可以理解为第几次出现)
匿名内部类 外部类类名$1.class 其中‘1’是出现的次数,即第几次出现
内部类 的出现多用于 解决java 类和类之间单继承的问题