A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© rr53521 中级黑马   /  2016-5-1 14:01  /  255 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


51、LinkedHashSet底层数据结构是什么?如何保证元素的唯一性的呢?

        底层由链表和哈希表组成。
        由链表保证有序。
        由哈希表保证唯一。



52、什么是可变参数?

针对在写一个方法的时候,不知道具体要有多少个形式参数的时候。
           java提供了可变参数的用法。

注意:
        A:变量其实是该数据类型的一个数组。
        B:形式参数如果有多个的话,可变参数只能是最后一个。
        C:数据类型要一致。



53、Map和Collection集合的区别?(*面试题)
               
        A:Map集合存储的是键值对形式的元素。
          Collection集合存储的是单个的元素。
       
        B:Map集合的键是唯一的。
          Collection的儿子Set集合元素是唯一的。
       
        C:Map集合的值是可以重复的。
          Collection的儿子List集合的元素是可以重复的。
       


54、Hashtable和HashMap的区别?(面试题)
       
        A:HashMap 线程不安全,效率高。允许null键和null值。
       
        B:Hashtable 线程安全,效率低。不允许null键和null值。


55、Collection和Collections有什么区别?

        Collection:是集合的顶层接口,定义了集合的通用方法。

        Collections:是一个工具类,里面定义了对集合进行操作的一些常见方法。


56、什么是异常?异常有哪几种?各有什么特点?

程序出现了不正常的情况,就是异常。

异常的继承体系结构:
        Throwable
                |--Error 严重的问题,一般我们解决不了。
                |--Exception
                        |--RuntimeException        运行时期异常,这种问题一般要修正代码。
                        |--非RuntimeException        编译时期异常,必须进行处理,否则代码不能够通过。





57、throws和throw的区别? (*面试题)

throws
        位置:在方法()后面,跟的是类名。
        如果后面根据的是RuntimeException及其子类,那么,该方法可以不用处理。
        如果后面根据的是Exception及其子类,那么,必须要编写代码进行处理,或者调用的时候抛出。
throw
        位置:在方法中,跟的对象名称。
        如果方法中,有throw抛出RuntimeException及其子类,那么,声明上可以没有throws。
        如果方法中,有throw抛出Exception及其子类,那么,声明上必须有throws。



58、final、finally、finalize的区别?(*面试题)

final:是最终的意思,用于修饰类、变量、和方法。修饰类的时候,类是最终类,不可以被继承。
        修饰变量的时候,变量为常量,不可以被改变。修饰方法的时候,方法不能被重写。

finally:是异常处理的一部分,它里面的代码永远会执行(前提:jvm没退出),一般用于释放资源。

finalize:是object类的一个方法,用于垃圾处理。




59、什么是递归?使用递归需要注意哪些?

递归就是方法定义中调用方法本身的现象。

        A:递归一定要有出口,否则就是死递归。
        B:递归的次数不能太多,否则内存溢出。
        C:构造方法不能递归使用。




60、基本的IO流有哪些?(*面试题)

字节流:InputStream、OutputStream、FileInputStream、FileOutputStream、

字符流:Writer、Reader、FileWriter、FileReader、

高效字节流:BufferedInputStream、BufferedOutputStream

高效字符流:BufferedWriter、BufferedReader

最开始的时候,只有字节流,但是后来由于中文字符或者其他字符的出现,用两个字节才能表示。

如果用字节流也是可以读写字符文件的数据的,但是比较麻烦。为了简化这种操作,就提供了字符流。




61、flush()和cloas()的区别?(*面试题)

flush():刷新缓冲区,流对象还可以继续使用。

close():释放流资源,但是会先刷新一次缓冲区,操作完毕后,流对象不可以再使用。




62、什么是多线程?进程和线程的区别是什么?

多线程就是应用程序的多条执行路径。

进程:正在运行的应用程序,每个进程的具备独立的运行空间。

线程:是进程的执行单元,执行路径。如果是多个线程,那么,这多个线程共享同一个进程资源。




63、启动线程调用的是run()还是start()方法?run()和start()的区别是什么?(*面试题)

        启动线程调用的是start()
        run()封装了被线程执行的代码,start()是启动线程并调用run()方法。




64、多线程有几种实现方案?分别是什么?如何操作?(*面试题)

        多线程有两种实现,分别是:

        1,继承Thread类
                自定义类继承Thread类,在类中重写run()方法,测试类中创建自定义类对象,并调用start()方法

        2,实现Runnable接口
                自定义类实现Runnable接口,重写run()方法,测试类中创建自定义对象,
                创建Thread对象,把自定义对象作为构造参数传递。调用Thread类的start()方法。




65、线程的生命周期? (*面试题)

        新建:        创建线程对象
        就绪:        具备cup执行资格,没有执行权,随时准备执行
        运行:        具备执行资格,执行权,执行run()中的代码
        堵塞:        是当线程运行到符合某个我们定义的条件时,它会停止下来等待唤醒
        死亡:        run()结束了
66、多线程为什么会出现安全问题?怎么解决呢?(*面试题)

如果满足以下条件,那么就会出现安全问题:

        A:是多线程程序。
        B:有共享的数据。
        C:针对共享数据有多条语句操作。

只要我们把多线程环境中,把操作共享数据的操作,变成单线程就没有问题了。
Java针对这种情况,就提供了同步技术:
       
        A:同步代码块
        B:同步方法
        C:JDK5以后的Lock锁



67、同步的锁对象分别是?(*面试题)

        代码块:任意对象

        方法:this

        静态方法:类名.class




68、sleep()和wait()的区别?(*面试题)

        sleep():必须指定时间,不释放锁对象。

        wait():可以指定时间,也可以不指定。释放锁对象。




69、线程死锁是什么,为什么有死锁,怎么解决死锁?(*面试题)

        为了解决程序因占用资源,出现资源争抢,而出现的程序进入等待的状态(死锁)。
        举例:有A和B两个线程,有CD 两把锁, A和B嵌套CD锁,A线程中有C,D锁,B线程中有D C两把锁,当两个线程运行时,就可能会出现死锁导致
程序停滞的情况。
        怎么解决:真正意义上来说,死锁是不能被解决的,死锁是多线程中的一个需要避免的重大的问题,当我们在编写程序时,可以给共享的资源加上另外一
个把锁,控制资源的动态,同时可以设置线程的优先级使线程之间协调合理的利用CPU的时间。




70、线程间的通信是什么?

        不同种类的线程针对同一个资源的操作。



71、什么是网络编程?

        用编程语言来实现计算机的资源共享和信息传递,就叫做网络编程。



72、网络通信三要素是什么? (*面试题)

        A:IP地址
                计算机在网络中的唯一标识。
                现在使用的是:"点分十进制"
        B:端口
                应用程序的的标记。
        C:协议
                通信的规则。



73、UDP和TCP的区别? (*面试题)

        UDP:不建立连接,数据打包传输,数据有限制,数据不可靠,速度快。 64k        不区分客户端和服务端
        TCP:建立连接,数据无限制,数据可靠,速度慢。        区分客户端和服务端



74、反射是什么?反射获取字节码文件的三种方式?反射的好处?(*面试题)

        在运行状态下,通过class文件对象(Class的对象),去使用构造方法,成员变量,成员方法。就是反射。
        3种方法:
                A.用Object类的getClass方法得到。
                B.用任意数据类型的静态class属性可以得到
                C.用Class类的静态方法forName(String className)方法得到
        好处:只要有一个类或者一个类的对象,就可以得到这个类或对象的所有属性和方法。包括私有的。

1 个回复

倒序浏览
6666666666666666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马