笔试错题记录6
其他
2018-09-23 23:43:41
阅读次数: 0
选择题
关于java中的构造函数
构造函数必须与类同名。
构造函数没有返回值。
构造函数在使用new操作时进行。
但是有一点要注意,方法名可以与类名同名,编译可以通过,也可以正常运行 。
关于非关系型数据库
非关系型数据库主要有四种存储类型。键值对存储,文档存储,基于列的数据库,图形数据库。
非关系型数据库库的优点:因为是键值对,所以性能较高。可扩展性同样基于键值对,数据之间没哟耦合性。
关系型数据库的优点:事务支持使得对于安全性能很高的数据访问要求得以实现。能够保持数据的一致性。
非关系型数据库有:临时性键值存储(mamcached,Redis),永久性键值存储(Redis,ROMA),面向文档的数据库(MongoDB),面向列的数据库(HBsae,Cassandra)。
socket函数中产生阻塞的有
accept(): 服务器端等待客户的连接,直到接到客户端连接,才从accept()方法返回。
socket的输入流读入数据时,如果输入流没有足够数据,就会产生阻塞。
socket的输出流写一批数据的时候,可能会进入阻塞状态,等到输出了所有数据或者出现异常才返回。
connect():客户端等待服务器端连接,会进入阻塞状态,直到连接成功。
设置JVM内存
-Xmx :Java Heap最大值 ,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms :Java Heap初始值 ,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn :Java Heap Young区大小 ,不熟悉最好保留默认值;
-Xss :每个线程的Stack大小 ,不熟悉最好保留默认值;
java标识符:
所有标识符都以字母 ,下划线 ,美元符号 开头
首字母之后可以是字母,数字,下划线,美元符号
java中的object类的方法有
clone():创建并返回此对象的副本
equals():某个对象是否与此对象相等
finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
getClass():返回一个对象的运行时类。
hashCode() :返回该对象的哈希码值。
notify() :唤醒在此对象监视器上等待的单个线程。
notifyAll() :唤醒在此对象监视器上等待的所有线程。
toString() :返回该对象的字符串表示。
wait() :导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。
wait(long timeout) :导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。
wait(long timeout, int nanos) :导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。
Thread类的方法:
start() :启动线程
getId():获得线程ID
getName():获得线程名字
getPriority():获得优先级
isAlive():判断线程是否活动
isDaemon():判断是否守护线程
getState():获得线程状态
sleep(long mill) :休眠线程
join():等待线程结束
yield() :放弃cpu使用权利
interrupt():中断线程
currentThread():获得正在执行的线程对象
关于容器间的继承
List是一个接口,AbstractList是一个抽象类,ArrayList是继承自AbstractList。
集合和线程安全
Vector比ArrayList多了同步机制,是线程安全的。
LinkedList因为成员方法大多数是synchronized,因此LinkedList是线程安全的,但是ArrayList不是线程安全的。
HashTable比HashMap多了一个线程安全。
StringBuffer是线程安全的,但是StringBuilder不是线程安全的。
ConcurrentHashMap是高效但是线程安全的集合。因为它引入了分段锁的功能。
编程题
实现一个栈。 输入: add aaa add bbb get delete add ccc get 输出: bbb ccc
实现一个栈。输入是树的节点,输出这个树的前序遍历 输入:A B C D # F G H 输出:ABDHCFG 大概思路:实现一个Node类,里面有index和value分别记录这个节点的位置和值。实现一个栈。先把第一个节点(0,A)压入栈,循环,当栈不空的时候,把栈顶的值取出,判断这个节点的右节点是否存在,存在则压入栈中,同理,把左节点压入栈中。重复上述过程,直到栈空。
加密,只有5个字符,1替换成4,2替换成1,3替换成2,4替换成3,5替换成5。不能用if和switch语句。初步思路:用HashMap.put()
转载自 blog.csdn.net/rainpasttime/article/details/82780747