面试集锦(一)

从开始面试就开始收集各种面试题,每次更新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实现有返回结果的多线程

原文地址:https://www.cnblogs.com/wxj-106/p/8982328.html