今天默写10题。。。

来源:互联网 发布:下载地毯设计软件 编辑:程序博客网 时间:2024/04/27 13:24
咳咳咳咳,有点羞愧。不给自己找借口了,我觉得把前面的补上来

1.同步和异步有何异同

如果数据在线程中共享:如果你正在执行对数据进行写的操作,而另一个线程正在读这个数据,或者你正在读数据,而另一线程正在对数据进行写的操作,这个时候就需要同步存取

如果程序调用了一个需要花费很长时间来执行的方法,而又不希望程序花大量的时间等待方法的返回,这个时候就需要异步编程

以通讯为例
同步:发送一个请求,等待返回,然后再发送下一个请求
异步:发送一个请求,不等待返回,随时可以再发送下一个请求
并发:同时发送多个请求

2.abstract class和interface有什么区别

定义:接口是对动作的抽象,抽象类是对根源的抽象
也就是说接口代表的是什么什么呢?代表的是对象的方法
抽象类代表的是什么呢?代表的是这个对象是什么
比如,男人和女人(如果是类的话。。。)那他们的抽象类就是人
而男人和女人的他们都能吃饭,那接口就代表的是吃饭这个动作
所以在高级语言,一个类只能继承一个抽象类,但是可以实现多个接口
我将他们的区别分为四点
1.接口是抽象类的变体,接口中的方法都是抽象的,而抽象类只是声明了方法的存在而不去实现的类
2.接口是可以多继承,而抽象只能被单继承
3.接口中的基本数据类型为static而抽象类不是
4.接口中不能有方法的实现,而抽象类中有部分方法的实现
抽象类的功能要远远抽越接口,但是,定义抽象类的代价特别高,因为对高级语言来说,只能单继承,你必须的编写出他的所有子类的所有共性。而接口支持多继承,在设计阶段能大大降低难度

3.head和stack有什么区别

栈:1。局部变量 2。线程间数据不共享 3。空间连续,速度快
堆:1。实例变量(对象)3。线程间数据共享 4。空间不连续,速度慢,但灵活

4.forward和redirect的区别

forward:重定向
redirect:转发
核心区别:一次请求还是两次请求
重定向:浏览器发送了两次请求。
转发:浏览器发送一次请求,还有一次则是服务器进行访问处理返回给客户端,
区分:地址栏有没有发生变化:发生变化的是重定向
用法:response.sendRedirect( “地址” );
request.getRequestDispatcher(“地址”).forward( request, response );
详细:
这里写链接内容

5.Static Nested Class和Inner Class的不同

Static Nested Class是指被声明为静态的内部类,它可以不依赖外部实例被实例化
而内部类则需要外部类被实例才能实例

6.GC是什么?为什么要有GC

ava GC(Garbage Collection,垃圾收集,垃圾回收)机制
电脑的内存大小不变,我们在java开发的时候,new 了一个对象,使用完后,我们并没有去手动释放对象所占的内存,这时候垃圾会越来越多,而内存会越来越少,最后引起崩溃,而gc就是帮我们清理垃圾的工具

7.启动一个线程是用run()和start()?

启动一个线程是用Thread.start()
run()是线程体,里面存线程具体要执行的代码,而start()内部就调用了start方法,这和直接调用run()方法效果不一样,直接调用run()方法就相当与只是调用了一个方法,并没有启动一个新的线程,start()方法才会启动线程

8.数据连接池的工作机制是什么?

服务器建立一定数量的池链接,并一直维持一定数量的链接,当客户端需要链接时,池驱动程序会返回一个未使用的连接并标记为忙,如果当前没有空闲连接,池驱动就会新建一定数量的链接。当使用的池链接调用完后就会将该链接标记为空闲

9.sleep()和wait()有什么区别?

1.sleep是Thread类方法,wait是Object类方法
2.sleep使线程进入休眠指定时间,到时后会自动恢复,wait使线程进入等待状态,只有当notify,或者allnotify才会恢复
3.sleep不会释放资源锁,wait释放资源锁
4.wait不需要捕获异常,而sleep必须要
5.wait一定要在同步控制块,或者同步方法里使用

10.String/StringBuffer/StringBuilder区别

String与StringBuffer,StringBuilder的区别就是String是字符串常量,而StringBuffer,StringBuilder是字符串变量,也就是说String 提供的是一个不可改变的字符串,如果你给这个字符串重新赋值,他就重新new了一个对象,如果我们要经常对字符串进行修改就用StringBuffer/StringBuilder,而这两者的区别在于StringBuffer
是支持并发操作线程安全的,适合多线程。而/StringBuilder是不支持并发操作的,是线程不安全的,但是如果是单线程,那么性能要比StringBuffer高

答案只作参考,并不官方,欢迎提议

0 0
原创粉丝点击