面试题

    由于在上家公司离职时没能及时找到下家公司工作,本人技术层面更是不足,导致迟迟未找到合适的工作,所以本人写此博客以记录面试题目,需要的童鞋可以作为参考!!!

java基础部分:

    1.hashmap与hashtable区别:两句话总结:Hashmap=》不同步,空键值,效率高,线程不安全;Hashtable=》同步,非空键值,效率略低,线程安全。

    2.Arraylist和LinkList区别:1.ArrayList是实现了基于动态数组的数据结构,LinkList基于链表的数据结构;

                                                   2.对于随机访问get和set,ArrayList优先于LinkList,因为LinkList需要移动指针;

                                                   3.对于新增和删除操作add和remove,linkedList比较占优势,因为ArrayList要移动数据。

    3.java类加载顺序:1.虚拟机在首次加载java类时,会对静态初始化块,静态成员变量进行初始化(执行顺序按排列的先后顺序),父类优先于子类执行,

                                       2.实例化时,会对非静态变量,非静态初始化块进行初始化,之后是构造函数初始化,父类优先于子类执行,

                                       3.静态方法和非静态方法都是被动调用,即系统不会自动执行,主要区别在于静态方法可以直接用类名调用,非静态方法需要实例化才能调用。

     4.线程启动方法是start(),而不是run(),此考点常用于选择题,切记。

     5.字节流(char)和字符流(char)区别:stream结尾是字节流,reader和writer结尾是字符流,一个按字节读,一个按字符读。(具体须看个人理解)

     6.什么是面向对象?

             面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体一一对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法处理。类通过一个简单的外部接口与外部发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。(看个人理解,最好举例说明)。

      7.string和stringbuffer区别:String是不可变类,任何对String的改变都会引发新的String对象的生成;

                                                        StringBuffer是可变类,任何对它所指代的字符串的改变都不会产生新的对象。

     8.对String类的理解?1.对象的初始化:String s = "abc";创建了2个对象,一个是“abc”对象,储存在常量空间中,一个是使用new关键字为对象s申请的空间。

                                            2.字符串常见操作:charAt()索引找字符,compareto()比较字符,concat()连接字符,equals()判断2个对象内容是否相等,getBytes()字符串转成数组,便于数据存储和传输(常用),indexOf()查看字符返回索引,length()返回长度,replace()替换字符,split()拆分字符串,获得数组,substring()截取字符串,trim()去空格,valueOf()类型转换。

    9.error和exception区别:error表示恢复不是不可能但很困难的严重问题,比如内存溢出,exception表示一种设计或实现问题。

   10.Math.round(11.5),Math.round(-11.5),相当于+o.5所以是12,-11

    11.静态数组不能定义在mian入口方法中(切记)

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     12.编写单例模式:

          懒汉式:public class Signleton{

                                     private Singleton(){};

                                     private static Signleton single = null;

                                      public static Singleton getInstance(){

                                                      if(single==null){

                                                           single=new Singleton();

                                                        }

                                                  return single;

                                               }

                                      }

            饿汉式:public class Singleton1{

                                    private Singleton1(){}

                                   private static dinal Singleton1 single = new Singleton1();

                                   public static Singleton1 getInstance(){

                                                return single;

                                     }

                                }

          13.冒泡排序:

                              public static void mp(int[]numbers){

                                   int temp;

                                  int size = numbers.length;

                                 for(int i=0;i<size-1;i++){

                                     for(int j=1;i<size;j++){

                                     if(numbers[i]<numbers[j]){

                                            temp=numkbers[i];

                                            numbers[i]=numbers[j];

                                            numbers[j]=temp;

                                     }

                                  }

                             }

                           }

       14.java递归:斐波那契数列:

                     public class Fibonacci{

                         public static void main(String[]args){

                               for(int i = 0;i<20;i++){

                                     System.out.println(Foo(i));

                               }

                           }

                         public static int Foo(int i){

                                 if(i==0||i==1){

                                     return 1;

                                  }else{

                                           return Foo(i-1)+Foo(i-2);

                                    }

                             }

                         }

                     }

     15.如何利用反射获取私有属性?

                   A a = new A();

                  Field field= a.getClass().getDeclaredFieLd("X");

                  field.setAccessible(true);

                  field.set(a,1);

                  field.get(a)

          16.java泛型如何理解?

                   泛型通过继承关系可以处理父子间关系。

         17.堆栈与队列的区别?(自己搜索)

          18.软件生命周期?

                   1.问题定义与规划,

                   2.需求分析

                   3.软件设计

                   4.程序编码

                   5.软件测试

                   6.运行维护

             19.工作流理解?

至于javaee部分需要稍作整理,敬请期待。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值