牛客网模拟面试
1. 子网掩码
网络地址就是:把IP地址转成二进制和子网掩码进行与运算
子网掩码转二进制后为1的就是网络号,为0就是主机号
2. RS-485
通信方式,两线制和四线制两种接线
3. TCB、MMU、CACHE、DMA
(1)TCB Thread Control Block;包含资源分配信息和运行调度信息;一个PCB可以控制多个TCB;
(2)MMU:内存管理单元,负责将虚拟地址映射为物理地址
(3)CACHE:缓存
(4)DMA:direct memory access 使得外设和存储器直接进行数据交换,而不需要cpu敢于,主要的优点就是速度快
4. 无符号整型
默认情况下都有符号,但转化为无符号后最大值可以扩大一倍;
有符号整型和无符号整型进行运算时,先要把有符号的转化为无符号的(符号位需要按数据位转化)
5. Resume()的用法
线程的suspend和resume方法配套使用,suspend使得线程进入阻塞状态并不会自动回复,必须有对应的resume才能使用;这两方法缺点很多,例如容易造成公共同步对象的独占
6. 构造器
(1)1个类的构造函数可以被重载(所以可以有多个),也可以没有构造器,编译器会提供无参构造器
(2)构造方法在产生对象的时候被java自动调用
(3)构造器不能被static、final、synchronized、abstract和native修饰
(4)方法名必须和类名相同
7. Java Test?
java是调用命令Test指的是类名而one two three是给main方法中的args的参数
8. JVM类加载过程
加载-验证-准备-解析-初始化(验证在准备的前面)
9. String s = new String(“ABC”)创建多少个对象
1或者2个,首先jvm检查字符串常量池中是否存在,如果不存在则创建(存在则跳过),然后执行new操作,在堆内存中创建“abc”的String对象,把这个对象的引用赋值给str2
10. ==与equals的区别
equals是方法,==是操作符
Equals()检测两个对象的内容是否相等
== 如果是原生数据类型,比较值是否相等;如果是对象,比较两个对象地址是否一样
Equals()没有==快,因为==只是比较引用
11. Iterator
(1)迭代器,是一种访问集合的方法,可迭代ArrayList和HashSet等
(2)迭代器 it 的两个基本操作是 next 、hasNext 和 remove。
(3)调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
(4)调用 it.hasNext() 用于检测集合中是否还有元素。
(5)调用 it.remove() 将迭代器返回的元素删除。
12. ArrayList和LinkedList的区别
(1)ArrayList基于数组,LinkdeList基于链表
(2)随机访问A快,因为数组随机访问快过链表
(3)插入删除L快,因为链表。。。。
(4)LinkedList更占内存,因为每个节点需要储存2个引用,一个指向前元素,一个指向后元素
13. switch不支持什么数据类型? JDK1.7
JDK1.6之前 switch语句只支持byte、char、short、int以及Enum,是不支持String类型的,JKD1.7支持了string
14. join的作用?是否可阻塞线程?
Join:把指定的线程加入到当前的线程中,把当前的cpu执行时间让给另一个线程,则当前线程被阻塞
15. Call by value 和 call by reference
(1) by value 传递变量的值
(2) By ref 传递变量的地址
(3) By value 传递的是变量 值相同的临时变量,因此对形参的修改无法反映到实参
(4) By ref 看起来是传递变量本身,实际上内部传递的是指针,形参的修改可以反映到实参
16. 不能修饰interface的关键字
接口是特殊的抽象类,接口中的方法全部都是抽象方法,所以不能用private,static,synchronized,native方法修饰,也不能用protected修饰符
17. Size()和length()方法具体修饰些什么?
(1) length不是方法,是属性(数组的属性)
(2) Length() 是string的一个方法
(3) Size()方法是List集合的方法
18. 方法区是否为线程安全(JVM)
线程私有的只有程序计数器,虚拟机栈和本地方法栈;共享的是堆,方法区和直接内存

浙公网安备 33010602011771号