A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

下列题目是我们基础班几个提前参加社招的同学总结的问题,希望对大家有所帮助。答案是我个人的理解所以一定会有些不全面甚至不对的地方,但是是我自己的答案,所以你们觉得有问题可以提出来我纠正。
1,说一下堆和栈的区别?
        栈的内存空间是由系统自动分配的。例如int a;系统就自动在栈里开辟个空间给a使用。
        它存取速度比堆要快,而且栈里面的数据可以共享,存放的数据是一些基本类型的数据,特点是存放在栈里的数据被调用完立马消失。
        堆的内存空间是由程序员自己申请(new)出来的。
        堆内存主要用来存储引用类型,特点是堆里面的数据被调用完毕后不会马上消失,而是在某个不确定的时间后被垃圾回收器清理掉。
2,TreeSet的排序方式有几种,详细描述?
        A.自然顺序
                让对象所属的类去实现comparable接口,然后重写这个接口的comparto方法进行比较,根据这个比较的结果去进行排序。
        B.比较器接口,comparator接口
                在创建对象时使用带参构造传一个实现比较器接口的匿名内部类并重写它的方法就可以进行比较了。
3,线程生命周期,是怎么样的?
        新建,就绪,运行,堵塞,死亡
        新建是创建线程。
        就绪是获得执行资格但是没有执行权。
        运行不解释。
        堵塞,就是当线程运行到符合某个我们定义的条件时,它会停止下来等待唤醒
        死亡就是线程结束了。
4,线程死锁是什么,为什么有死锁,怎么解决死锁?
         为了解决程序因占用资源,出现资源争抢,而出现的程序进入等待的状态(死锁)。
        举例:有A和B两个线程,有CD 两把锁, A和B嵌套CD锁,A线程中有C,D锁,B线程中有D C两把锁,当两个线程运行时,就可能会出现死锁导致
程序停滞的情况。
        怎么解决:真正意义上来说,死锁是不能被解决的,死锁是多线程中的一个需要避免的重大的问题,当我们在编写程序时,可以给共享的资源加上另外一
个把锁,控制资源的动态,同时可以设置线程的优先级使线程之间协调合理的利用CPU的时间。
5,类和对象是什么?
        类是对某种事物的抽象统称,例如学生,是一个群体,他们有着共同的特征。
        对象是类的实例,例如说在学生这个类里面有一个叫做小明的学生,他有着具体的特点,这个时候就把他叫做是这个学生类的对象。
6,集合包括哪些类?
        list--|ArrayList
                |Vector
                |LinkedList
        Set -| TreeSet
                 | HashSet
        Map -  |HashMap
                |Hashtable
                |Properties
                |TreeMap
7,java有多继承吗?
        有,接口可以多继承,因为接口只是一个功能的拓展,他多继承只是让本身具备更多的功能而已,而多继承之所以会出错的原因,比如说一个普
通类继承了多个类的时候,如果这多个类有些相同的方法时,这个类就不知道要去继承哪一个类的方法。而接口就没有这种错误,因为如果接口去继承其
他多个接口的话,哪怕其他接口有一些相同的方法,又因为接口中的方法都是抽象的没有方法体,所以在继承时也只会保留下来一个。
8、你是怎么理解面向对象的
        他有3个特点:更符合思考习惯,让程序员从执行者变成指挥者,把复杂的事情简单化。
        我是这样理解的,比如说我要得到某种结果或者完成某件事情的时候,我并不需要自己亲自的完成这一系列的过程,只需要找到能够帮助我完成
需求的工具就可以很高效的达成目标了,我觉得这个过程就叫面向对象。
9、接口跟抽象类的区别
        成员特点        抽象类中可以有成员变量跟成员常量,有构造方法,除了抽象方法外也可以有非抽象方法。
                        接口中只有常量,默认修饰符是public static final,接口中只有抽象方法默认修饰符是public abstract。
        关系特点  类跟类之间只能单继承跟多重继承。
                        类跟接口可以单实现、多实现,也可以在继承一个类的时候再实现一个或者多个接口。
                         接口跟接口可以单继承也可以多继承。       
        设计理念   继承体现的关系是is a  代表子类就是父类的一个延伸,就是说有地方用到父类的时候完全可以用子类替代。
                        接口体现的关系是like a  它定义的是整个体系的扩展内容。
10、说说你对异常的理解
        异常就是在程序编译或者运行的时候会出现的一些错误,比如说我要往一个指定的文件写入数据,但是这个时候虚拟机又不敢确定在硬盘里有没
有这个文件,所以为了避免发生错误,就需要我们来指定当出现这种情况时虚拟机要做出什么动作。例如抛出异常让虚拟机处理,或者我们用try、catch
处理。
11、list跟set的区别
        list是元素有序,并且可重复的。
                这个有序说的是存放数据时的顺序是怎么样的那我们将来取出元素调用的时候就是怎么样的,而且多个相同的元素并不会影响储存。
        set是元素无序,并且唯一的。
                无序说的是我们在取出元素时不是按照我们当初存的顺序出来的,比如说我打印这些元素会发现每次打印,元素的位置都不一样。
                但是通过实现comparable或者实现comparator接口也可以给元素排序。
12、基本的io流有哪些
        字符流两种:FileWriter、FileReader       
        字节流两种:FileOutputStream、FileInputStream
        高效字符流两种:BufferedWriter、BufferedReader
        高效字节流两种:BufferedOutputStream、BufferedInputStream
        打印流:printWriter、printReader
        转换流:InputStreamReader、OutputStreamWriter
        标准输入输出流:System.in、System.out
        序列化流:ObjectInputStream、ObjectOutputStream
13、反射是什么?反射获取字节码文件的三种方式?反射的好处?
        在运行状态下,通过class文件对象(Class的对象),去使用构造方法,成员变量,成员方法。就是反射。
        3种方法:
                A.用Object类的getClass方法得到。
                B.用任意数据类型的静态class属性可以得到
                C.用Class类的静态方法forName(String className)方法得到
        好处:只要有一个类或者一个类的对象,就可以得到这个类或对象的所有属性和方法。包括私有的。
14、单例的两种模式
        (这个我还没有透彻理解所以只给模式名)
        饿汉式
        懒汉式
16、内部类
        (这个也是了解不深)
        成员内部类,他是在class中又直接定义一个class
        局部内部类,在方法中定义一个class
        匿名内部类,他是没有名字的内部类,我用的最多的地方是在创建对象要带参的时候用到他。他是一次性的用完就不能用了。
17、map的特点,怎样获取键值
        把数据按照键跟值的特点存储在集合里,使用的时候可以通过键得到值,键是唯一的,值却可以重复。
        有个方法keySet可以得到集合里的键,有了键再遍历就可以获取值。
18、static的作用?
        1.被static修饰的成员是被所有对象共享的。
        2.随着类的加载而加载。
        3.优先于对象存在。
        4.可以直接被类名调用。
19、接口和抽象类的区别
        1.接口里面都是抽象方法,只有常量;抽象类里面不一定都是抽象方法,可以有成员变量也可以有常量
        2.接口是功能的扩展;而抽象类是抽取子类的共性功能,强制子类必须按照抽象类方法重写。
20、ArrayLIst和LinkedList的区别?为什么ArrayList查询快
        ArrayList底层是数组结构,特点是查询快增删慢;LinkedList底层是链表结构,特点是增删块查询慢。
        因为ArrayList底层是数组结构,通过数组的索引值我们就可以做到快速查询!
22、字节流和字符流的区别
        字符流的底层是字节流,最早的时候只有字节流,后来为了能够支持文字所以开发出了字符流,字符流能更高效的处理文本数据;
        同时如果要处理的是文本数据的话就可以用字符流,但如果要处理多媒体文件的时候就只能使用字节流。
        因为java使用的编码是unicode编码,一个字符等于两个字节。
23、多线程的两种实现方式,它们有什么区别
        两种,
        1.对象对应的类继承Thread类,这种可以直接调用start方法开启多线程。
        2.对象对应的类实现Runnable接口,这种要重新new一个Thread对象把对象作为参数传进去才能调用start方法。
        开发一般用第二种,他避免单继承的局限性。实现资源与线程的分离

24、对网络通信协议的理解
        (忘了)
25、线程开启调用什么方法
        如果对象对应的类继承的是Thread类的话那么用对象调用start方法就可以开启线程;
        如果对象对应的类是实现Runnable接口的话,就必须把这个对象转化成Thread类再调用start方法。转换方式就是new一个Thread对象并把实现Runnable接口的类的对象作为参数传进去就可以了。

编程题:
        1.复制某盘下所有(包括子目录)“.java”后缀的文件到另一目录下。
        2.把D盘下的所有.java文件改成.txt后缀并复制到另一个目录下,或者把绝对路径储存在.txt文档里
        3.定义一个学生类,属性有名字,语文分数,数学分数,英语分数。键盘录入5个学生跟分数,按照总分先排序再写进txt文档,要求在文档里要清晰明了查看这些数据。

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

131 个回复

倒序浏览
本帖最后由 小沈同学 于 2015-7-21 17:46 编辑

26、==和equals()的区别?
                ==:
                        比较基本类型:比较的是基本类型的值是否相同。
                        比较引用类型:比较的是引用类型的地址值是否相同。
                equals():
                        比较引用类型,默认比较的是引用类型的地址值是否相同。
                        如果类重写了该方法,那就得按照重写后的规则进行比较。
27、局部变量跟成员变量的区别
        成员变量-定义在类中方法外,有默认初始化值,在堆内存里,被对象调用完后才从内存消失
        局部变量-定义在方法中或者是方法形式参数,没有默认初始化值,在栈内存里,被方法调用完消失
29、多线程同步锁
        synchronized
编程题补充:1,用ArrayList<Uese>集合存储自定义的uese对象,有姓名和年龄属性,姓名相同则是重复,去重,按照年龄大小排序

2.随机产生50个1-10的随机数,去重复


3,C盘下里的a.txt文件,有两行数字和字母相间的内容,要求把字母放在第一行,数字放在第二行。

1、编写程序,循环接收用户从键盘输入的多个字符,直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。

2、定义一个二维数组,编写代码获取最小元素。

3、创建ArrayList对象,添加5个元素,使用Iterator遍历输出。

4、编写程序,生成5个1-10之间的随机数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,禁用COLLections.sort方法和TreeSet

)然后遍历集合输出。

5、写出两种排序算法。

6、写一个延迟加载的单例设计模式。

7、写一个方法,计算一个int类型数组中每一个元素的总和,和最大值和最小值。

8、一个ArrayList对象aList中存在有若干个字符串元素,现欲遍历该ArrayList对象,并删除其中所有值为“abc”的字符串元素,请用代码实现。

9、编写一个程序,把这个目录下的所有.java文件拷贝到另一个目录中,并将.java改成.txt(需注意:写的时候先写思路,然后写代码,代码后面跟着

注释)。

10、让用户输入他的语文和数学成绩,并计算他的总成绩并且显示出来。

11、取出一个字符串中字母出现的次数。如字符串“abcdekka27qoq”,输出格式为a(2)b(1)k(2)....

回复 使用道具 举报
不错,先收藏一下
回复 使用道具 举报
不错  我是基础班 的  先收藏一下 学完后 看看自己能不能回答上
回复 使用道具 举报
问的有点广泛,社招都不细致吗?
回复 使用道具 举报
我本灬无名 发表于 2015-7-20 23:17
问的有点广泛,社招都不细致吗?

根据每个人的程度提问吧,老师会先了解你的情况再根据你的情况去提问。
回复 使用道具 举报
小沈同学 发表于 2015-7-20 23:23
根据每个人的程度提问吧,老师会先了解你的情况再根据你的情况去提问。 ...

我们点招,问的稍难但是,问的都很具体。编程题好简单。。。。
回复 使用道具 举报
先收藏下,学习了
回复 使用道具 举报
蔡锐 来自手机 中级黑马 2015-7-21 07:13:30
9#
学到了!感谢分享!
回复 使用道具 举报
收到收到
回复 使用道具 举报
kelly 来自手机 中级黑马 2015-7-21 08:30:16
11#
我擦勉强能答上一半吧,想进黑马还得努力啊
回复 使用道具 举报
多谢 无私分享
回复 使用道具 举报
非常感谢!!!非常感谢
回复 使用道具 举报
WHY-y 中级黑马 2015-7-21 09:12:09
14#
很牛逼!果断收藏了!
回复 使用道具 举报
果断收藏了,谢谢楼主了!
回复 使用道具 举报
一部分不懂  一部分让我受教了
回复 使用道具 举报
好帖 感谢!
回复 使用道具 举报
收藏了 感谢
回复 使用道具 举报
已收藏,说不定以后有大用!
回复 使用道具 举报
Wqi 高级黑马 2015-7-21 18:14:20
20#
先收藏了。等基础学完看能不能回答上来。谢谢了楼主
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马