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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

很好,救急用品
回复 使用道具 举报
很好的资料啊,收藏了!感谢楼主!
回复 使用道具 举报
记录一下
回复 使用道具 举报
真心不错,收藏了,面试的时候用的到
回复 使用道具 举报
有厉害...
回复 使用道具 举报
很不错,整理的很齐全
回复 使用道具 举报
不错,先收藏一下
回复 使用道具 举报
感谢分享,已经收藏
回复 使用道具 举报
阿乾,谢谢了,还能看到你在这发分享,不错,赞一个
回复 使用道具 举报
来波收藏先 ~
回复 使用道具 举报
感谢分享,赞一个
回复 使用道具 举报
6666.收藏
回复 使用道具 举报
2016年7月25日17:46:20
回复 使用道具 举报
Buer 来自手机 中级黑马 2016-7-25 19:29:10
114#
mark一下,社招过的都是大神
回复 使用道具 举报
不错 ,赞一个
回复 使用道具 举报
好棒,支持
回复 使用道具 举报
小沈同学 发表于 2015-7-20 23:11
26、==和equals()的区别?
                ==:
                        比较基本类型:比较的是基本类型的 ...

给力哈  6666666666
回复 使用道具 举报
谢谢楼主分享,辛苦辛苦啦
回复 使用道具 举报
谢谢楼主  收藏了
回复 使用道具 举报
Object类的HashCode()方法.
Object类的getClass()方法.
Object类的toString()方法.
Object类的equals()方法.
==号和equals的区别


Scanner 键盘录入的方式
Scanner 键盘录入的常见问题
解决方案


String 类
equals  比较
contains        包含
startsWith        开头
endsWith        结尾
isEmpty        空
length        长度
charAt        字节数组
indexOf        索引
toCharArray        字符串转字符数组
valueOf                把字符数组转成字符串
replace                        替换
trim                        清除两边空格

StringBuffer,StringBuilder,String的区别
append()方法   添加
replace()方法     替换
reverse()方法   删除
substring()方法        重写



冒泡,选择,二分查找


Arrays类的使用//Arrays就是数组的一个工具类
toString()                重写
sort()                排序
binarySearch()  二分查找发


String 和 StringBuffer 的互相转换
                                String--->StringBuffer   StringBuffer 构造函数转换,append()
                                StringBuffer--->String         toString,valueOf,+"",subString
任意类型和 String 之间的互相转换
                                        1,toString();
                                        2,valueOf(Object obj);
                                        3,任意类型+""
       
public String[] split(String regex)//切割功能.但是切割的时候要注意首尾

public String replaceAll(String regex,String replacement)//替换功能


按点切割,如何?
输出一个反斜杠如何?



Random类
伪随机数,根据种子算出来的随机数。


System类:"不能为实例化"
* public static void gc()//了解,通知并不立刻执行
* public static void exit(int status)//掌握
        * public static long currentTimeMillis()//掌握
        获取毫秒值的两种方法

BigInteger类:
BigDecimal类 有什么用?什么时候用?

,最起码要判断有没有(hasNext),


集合体系图
数组和集合得不同
数组:可存储基本数据类型和引用数据类型
集合:只能存储引用数据类型,存100的时候自动装箱

迭代器:
并发修改异常
                        "用迭代器迭代的过程中,不能改变集合的长度"
                        解决方案:
                                不能让集合修改元素。
                                用迭代器自己修改元素
ListIterator 是 List 集合特有的迭代器


ArrayList 如何去除重复元素


栈和队列数据结构特点:
                        * 栈
                                * 先进后出               
                        * 队列
                                * 先进先出       
                               


泛型:
        就是一个过滤器,满足条件的才能赋值,不满足条件的就不能进行赋值
        常规使用:集合中。
        泛型的好处://会用就行 不用记录
                * 提高安全性(将运行期的错误转换到编译期)
                * 省去强转的麻

? extends E
                        向下限定,E及其子类                        //?读作“什么”。什么继承于E。即E的

子类。
                                                                addAll(? extends E) //可添加E或者E

的子类对象
? super E                                //?读作“什么”。什么的爸爸E。即E的爸爸。
                        向上限定,E及其父类


        增强for  //底层是迭代器
                 好处: 简化遍历书写                                       
                        for(int i : arr){                //arr 要遍历的集合   i接收的参数
                                System.out.println(i);        //i就是集合中的每一个参数
                                        }
                         缺点: 不能删除添加
                                        只能遍历


集合的三种遍历方式:
静态导入:只要知道是JDK 1.5的新特性即可
                        //暴露实际开发经验的地方,开发千万不要写
                        //一般有经验的java程序员都不写,甚至忘记这个东西。
                  写法:
                        * import static 包名….类名.方法名; 把静态方法导入


JDK1.5的新特性:

增强的“for”循环(Enhanced For loop)

泛型(Generics)
枚举(Type safe enums)

可变参数(Var args)
自动装箱/ 自动拆箱(Autoboxing/unboxing)
静态导入(Static import)
互斥锁



HashSet 存储顺序不一致 也不保证该顺序一直不变
                如何保证元素的唯一性:
                        重写hashCode() 和 equals()方法


HashSet存储自定义对象保证元素唯一性:
                1.HashSet原理
                        当HashSet调用add()方法存储对象的时候, 先调用对象的hashCode()方法得到一个哈希

值, 然后在集合中查找是否有哈希值相同的对象
                        如果没有哈希值相同的对象就直接存入集合,这个时候就不调用equals()了。
                        如果有哈希值相同的对象, 就和哈希值相同的对象逐个进行equals()比较,比较结果为

false就存入, true则不存。存入时挂在同hashCode()值的元素下面。
                2.将自定义类的对象存入HashSet去重复
                        类中必须重写hashCode()和equals()方法
                        hashCode(): 属性相同的对象返回值必须相同, 属性不同的返回值尽量不同(提高效率)
                        equals(): 属性相同返回true, 属性不同返回false,返回false的时候存储


LinkedHashSet的概述和使用:
                HashSet 的儿子
                底层是链表实现的,是set集合中"唯一一个能保证怎么存就怎么取的集合对象"
                因为是HashSet的子类,所以也是保证元素唯一的,与HashSet的原理一样


TreeSet
                存储顺序不一致,二叉树结构,小的存左边(负数),大的存右边(正数),相等就不存(0)。用来对

象进行排序。

                TreeSet 存储自定义对象


                实现 Comparable 接口        重写compareTo()方法
                        当compareTo方法返回0的时候,集合中只有一个元素。
                        当compareTo方法返回正数的时候集合会怎么存就怎么取
                        当compareTo方法返回负数的时候集合会倒序存储
               
                构造一个比较器进行比较


两种方式的区别
                TreeSet 构造函数什么都不传, 默认按照类中Comparable的顺序(没有就报错

ClassCastException)
                TreeSet 如果传入Comparator, 就优先按照Comparator


TreeSet 不去重


Map 集合
                        双列集合
                        键唯一,值不唯一,键跟值一一对应
                Map 接口和 Collection 接口的不同
                        Map是双列的(是双列集合的根接口),Collection是单列的(是单列集合的根接口)
                        Map的键唯一,Collection的子体系Set是唯一的
                        Map集合的数据结构值针对键有效,跟值无关;如:TreeMap:键是用二叉树算法,HashMap:

键是hash算法
                        Collection集合的数据结构是针对元素有效


Map 集合的遍历方式



LinkedHashMap:
                底层是链表实现的可以保证怎么存就怎么取


统计字符串中每个字符出现的次数:
        1,可用数组实现,原理较复杂。有兴趣的同学可以找我单聊
        2,map集合实现较为简单
          
HashMap和Hashtable 的区别
        Hashtable是JDK1.0版本出现的,是线程安全的,效率低,HashMap是JDK1.2版本出现的,是线程不安全的,效率


        Hashtable不可以存储null键和null值,HashMap可以存储null键和null值       


异常:
                Throwable
                        |--Error
                        |--Exception --- RuntimeException
                                                 --- 编译时异常

                        面试题:
                                "常见的异常" 3到5个   切入到自己的实际开发,并以市场上QQ或者微信做比


                                        面试:
                                                 切入到自己的实际开发,怎么处理的。并以市场上QQ或者微

信做比较

                                        点招:
                                                 切入到自己的基础班写代码的时候,怎么处理的。

                                        空指针异常                        NullPointerException        "

最多"        找不到这个类 ClassNotFoundException  
                                        数组角标越界异常        ArrayIndexOutOfBoundsException        类型转换异

常 ClassCastException  
                                        文件未找到异常                FileNotFoundException                       

算术异常类         ArithmeticException



自己处理异常的方式:
                        1,自己处理,三种写法。
                                        * try catch
                                        * try catch finally
                                        * try finally

                                        try:用来检测异常的
                                        catch:用来捕获异常的。多个catch中,父类异常要写在下面,如果父

类异常写在上面,则子类异常捕捉的不执行。
                                        finally:释放资源

                                        try 中一旦有错误,下面代码不执行,立马转到对应错误 catch 中代

码,最后转入 finally 中。
                                        finally 执行完毕,跳出 finally ,程序继续执行。
                                        finally 的代码一定会执行,除非虚拟机 System.exit() 停止。
                                        如果报的异常没有对应的 catch ,则等于没有写try catch。程序照

常报错。

                        2,throws 抛出方式处理异常
                                        编译时异常的抛出必须对其进行处理
                                        运行时异常的抛出可以处理也可以不处理

                                        用一个方法,如果此方法抛出一个异常,运行时异常可处理也可不处

理,如果抛出编译时异常,则必须处理。
                                       
                                        throws和throw的区别:

                                        throws
                                                用在方法声明后面,跟的是异常类名
                                                可以跟多个异常类名,用逗号隔开
                                                表示抛出异常,由该方法的调用者来处理

                                        throw
                                                用在方法体内,跟的是异常对象名
                                                只能抛出一个异常对象名
                                                表示抛出异常,由方法体内的语句处理

编译期异常和运行期异常的区别:
                编译时异常:
                                在编译某个程序的时候,有可能会有这样那样的事情发生,比如文件找不到,这样

的异常就必须在编译的时候处理
                                如果不处理编译通不过。
               
                运行时异常:
                                就是程序员所犯得错误,需要回来修改代码。



面试题://为了面试而产生的题目,实际没有一点意义
        * final,finally和finalize的区别。自己补充
        * 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后


          return 建立返回路径的同时执行finally,不会改变变量赋的值。然后再 return 出去。//正常情况下不

会有这种情况,记住即可,不用深入研究
                         此时如果finally中还有return语句,会覆盖返回路径,改变值。//正常情况下不会有

这种情况,记住即可,不用深入研究,
                                                                                                       

                                  //如果在finally写返回语句,那么try和catch的结果都会被改变,所以这么写

就是犯罪
自定义异常:
        通过名字区分到底是神马异常,有针对的解决办法  举例:人的年龄
                //系统中的异常也是取个名字而已,没有方法,都是父类来做的
        自定义异常概述
                        * 继承自Exception
                        * 继承自RuntimeException
        写法:
                写一个Exception继承Exception,RuntimeException 。实现父类构造。使用的时候直接new就可

以了。


IO流:
        "对一个路径进行判断或者操作,这个路径可以是文件也可以是文件夹。"
File更应该叫做一个路径
                * 文件路径或者文件夹路径  
                * 路径分为绝对路径和相对路径
                * 绝对路径是一个固定的路径,从盘符开始
                * 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马