一: 腾讯:
1.给定一霍夫曼树(9,7,5,2),求最小权值
2:设备使用率,进程为优先级剥夺机制
3:稳定排序
4:hashmap的平均查找长度
5:pv信号量
二:EMC
1:一个排序好的整数数组,长度为N,将前面K个元素和后面K个元素对调,编程求K的大小。
2:虚拟内存
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。与没有使用虚拟内存技术的系统相比,使用这种技术的系统使得大型程序的编写变得更容易,对真正的物理内存(例如RAM)的使用也更有效率。
3:编程实现M个数组中N个连续数值相加最大值
4:list和vector对快速排序哪个效率更高
5:多态的原理和使用
6:fib的栈不够用怎么办
三:
1:boolean flag= i<10,先计算i<10再赋值给flag
2:机器人处理硬币,遇到正面向上抛,反面翻过来,最后的概率,反面1/3
3:hibernate的映射方式有哪些
4:带表头的双向链表的insert操作
5:single模式
6:线程start和run的区别
在启动线程时候,有两种方法可以使用
start()为一半通用的启动线程的方法,通过调用线程类Thread的start()方法来启动线程,(此时线程并没有立刻执行,只是为就绪状态)然后线程Thread类通过调用run()方法来实现线程的操作,而其中的run()方法中的内容实为线程体,即为该线程所要执行的内容。run()方法执行结束,该线程也就终止了,cpu在执行其他的线程
如果将线程看做一般的Java类的话,则run()方法相当于普通的方法调用,通过普通的java类实例.run()来启动线程,即执行该方法体的内容。最终程序执行的只有主线程这一个。
7:jvm内存管理
java 把内存分四种:
1、栈区(stack segment)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放内存资源
2、堆区(heap segment) — 一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指向这个对象就回收
3、静态区(data segment)— 存放全局变量,静态变量 和字符串常量,不释放
4、代码区(code segment)— 存放程序中方法的二进制代码,而且是多个对象 共享一个代码空间区域
在方法(代码块)中定义一个变量时,java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,java 会自动释放掉为该变量所分配的内存空间;在堆中分配的内存由java 虚拟机的自动垃圾回收器来管理,堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的。缺点就是要在运行时动态分配内存,存取速度较慢;栈的优势是存取速度比堆要快,缺点是存在栈中的数据大小与生存期必须是确定的无灵活性。
http://developer.51cto.com/art/201003/188753.htm
8:嵌套类和内部类
可以在另一个类内部定义一个类,这样的类是(嵌套类)nested cIass ,也称为(嵌套类型)nested type 。嵌套类最常用于定义执行类。
嵌套类是独立的类,基本上与它们的外围类不相关,因此 外围类和嵌套类的对象是互相独立的。嵌套类型的对象不具备外围类所定义的成员,同样外围类的成员也不具备嵌套类所定义的成员。嵌套类的名字在其外围类的作用域中可见,但在其它类作用域或定义外围类的作用域中不可见。嵌套类的名字将不会与另一作用域中声明的名字冲突。
嵌套类可以具有与非嵌套类相同种类的成员。像任何其他类一样,嵌套类使用访问标号控制对自已成员的访问。成员可以声明为pubIic 、 private或 protected。外围类对嵌套类的面员没有特殊访问权,并且嵌套类对其外围类的面员也没有特殊访问权。
嵌套类定义了其外围类中的一个类型成员,像任何其他面员一样,外围类决定对这个类型的访问。在外围类的pubIic部分定义的嵌套类定义了可在任何地方使用的类型,在外围类的protected部分定义的嵌套类定义了只能由外围类、友元或派生类访问 的类型,在外围为的private部分定义的嵌套类定义了只能被外围类或其友元访问的类型。
内部类,计算机面向对象程序设计概念。向对象程序设计中,可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型,即静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。内部类是JAVA语言的主要附加部分。内部类几乎可以处于一个类内部任何位置,可以与实例变量处于同一级,或处于方法之内,甚至是一个表达式的一部分。
http://blog.cfan.com.cn/html/89/178889-282023.html
但是,内部类和嵌套类的区别在于:
1. 嵌套类是静态的,而内部类不是,也就是说嵌套类的实例化不需要外部类的实例。但是内部类是需要这个实例的。
2. 嵌套类可以任意声明静态成员,内部类不允许声明除了编译时常量以外的任何静态成员。这一限制也适用于静态初始化函数。
3. 嵌套类都是命名的,匿名的类声明不能声明运行时静态成员(不管声明是不是静态的)
9:面向对象的三大特征:
封装、继承、多态 。
http://kidiaoer.iteye.com/blog/1010523
10:java内存泄露情况