发表文章

[最新] 面试题

Tangxiao594200 2月前 2

问:
hashtable和hashset跟hashmap的区别
1.实现的接口不一样
HashMap和HashTable实现的是Map接口,而HashSet实现的是Set接口,而Set接口实现的则是Collection接口。
3.性能不一样
HashTable的方法加了同步锁,而HashMap是异步执行的,因此其性能没有HashMap的好;
4.Key,Value能否存放Null
HashMap的key、value是可以存放Null的,而HashTable的key、value则是不可以存放Null的;HashSet只能存放value,其底层使用了hashmap,因此它也是可以放Null的。
5.添加元素的方式不太一样
HashMap是通过put方法添加元素的,而HashSet是通过add方法来添加元素的。

问 :
线程的5中状态是什么?
线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。

问:
如何排序取出最大值
Arrays 数组辅助类 Array数组
Collections 集合辅助类 Collection 集合

问:
网络编程7层是什么?
OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层

TCP UDP
问:
TCP与UDP基本区别?
1.基于连接与无连接
2.TCP要求系统资源较多,UDP较少;
3.UDP程序结构较简单
4.流模式(TCP)与数据报模式(UDP);
5.TCP保证数据正确性,UDP可能丢包
6.TCP保证数据顺序,UDP不保证

问:
IO流分为什么流和什么流?
顶层接口:reader,writer inputstream
outputstream
设计模式:装饰者模式
在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)
节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.

包装流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。

Reader类的read()方法返回类型为int :作为整数读取的字符(占两个字节共16位),范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1

inputStream的read()虽然也返回int,但由于此类是面向字节流的,一个字节占8个位,所以返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。因此对于不能用0-255来表示的值就得用字符流来读取!比如说汉字.

问:
我们用过的注解:
@Override
如果写了会自动重写父类方法
问:
重写和重载
重写:
子父类中同名同参同返回值类型
java的重写,是指在子类中对父类的某方法进行重新定义,其子类的该方法名以及参数位置和个数均与父类相同,从而在调用子类的该方法时,不会执行父类的方法。如果在父类中以final定义的方法,在子类中无法重写。
重载:
同一个类中同名不同参
Java的重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性

问:
notify和notifyall的区别

notify: 唤醒一个正在等待该对象的线程。notify他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁,此时如果该对象没有再次使用notify语句,即便该对象已经空闲,其他wait状态等待的线程由于没有得到该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。

notifyall:唤醒所有正在等待该对象的线程。notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争。

相关推荐
最新评论 (0)
返回
发表文章
Tangxiao594200
文章数
2
评论数
0
注册排名
1347522