面试集锦(一)
从开始面试就开始收集各种面试题,每次更新20个。会一直更新下去。。。
从遇到的基础开始(我开始学java到现在也就一年左右,但感觉java这行业竞争真的大,随便培训完的都是两三年的工作经验,包装效果非常好,让我这个计算机专业的不得不佩服)
基础 开始
一、JRE(Java Runtime Enviroment) 是 Java 的运行环境
JDK(Java Development Kit) 又称 J2SDK(Java2 Software Development Kit),是 Java 开发工具包,它提供了 Java 的开发环境(提供了编译器 javac 等工具,用于将 java 文件编译为 class 文件)和运行环境(提 供了 JVM 和 Runtime 辅助包,用于解析 class 文件使其得到运行)。
二、对象:对象是类的一个实例,有状态和行为。
类:类是一个模板,它描述一类对象的行为和状态。
方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
三、编写java程序的注意点:
大小写敏感 类名首字母大写(若干个分词的首字母大写)
方法名(首字母小写、其余的分词首字母大写) 主方法入口 (main方法)
四、四大修饰符
public 同一个项目中
protected 不同包下的子类中
default 同一个包中
private 当前类中,实现外部使用的话,要实现get和set方法
五、八大基本数据类型 和对应的包装类
int -Integer 4字节32位
float -Float 4字节32位
boolean -Boolean 1字节8位
byte -Byte 1字节8位
char -Charater 2字节16位
long -Long 8字节
short -Short 2字节
double -Double 8字节
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
六、java特性
多态 继承 封装 抽象
七、static 静态
由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述
八、String str = new String(“aaaa”)
一共定义了两个变量(String Object)
九、final 用来声明属性、方法和类,表示不可改变
finally 异常处理语句结构的一部分,无论有没有异常,都要执行finally语句
finalize Object类的一个方法,垃圾回收器执行中会被调用
十、String 和StringBuffer、StringBuilder的区别
String final修饰的,数值不可改变的字符串。
StringBuffer 和StringBuilder 的字符串可以修改。
十一、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。
十二、Overload(重载)多个同名的方法,但他们之间或许不同参数个数,或许不同的参数类型
Override(重写)父类与子类之间多态的表现,相同的名称与参数
十三、error和Exception
error 恢复不是不可能但很困难的情况下的问题,不指望程序自行处理
exception 如果程序正常运行,从不会发生的情况
十四、Math.round(11.5) == 12 Math.round(-11.5)==-11
十五、接口可以继承接口,抽象类可以实现(implements)接口,抽象类是否可以继承实体类,但前提是实体类必须要有明确的构造函数。
十六、2乘以8 2<<3
十七、两个对象值相同(x.equals(y)==true),就必须有相同的hash code
十八、 char变量正好存一个中文汉字
abstract 抽象 一个类不能同时被abstract和final修饰
十九、99乘法表
public class Test {
public static void main(String args[]) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}
}
}
二十、三种多线程方式
继承Thread 类
实现Runnable接口
使用ExecushixianterService、Future实现有返回结果的多线程