轻松java学习之路4

来源:互联网 发布:外勤365软件 编辑:程序博客网 时间:2024/05/26 15:58

一.java要做到域用户互动(要接受用户的动作,并做出反映,如鼠标点击,键盘输入,以及GUI图形变化)

 1.main方法为了让JVM直接由类调用这个方法,且不需要创造对象就能调用,所以用public 和static组合修饰,因为是JVM调用,所以返回值传给JVM虚拟机木有什么作用,所以还加上void修饰,main方法里还有一个字符串型数组的形参,也是由VM负责赋值

2.jav提供了一些方便程序员的类,如system类,object类(任何java类的父类),还有一些工具类(objects)

3.Math类:1>提高了加减乘除的一些基本方法,它是一个工具类,构造器修饰符是private ,所以不能被实例化,且所有的方法都是类方法,可以有类直接调用

                    2>Math类还提供了两个类变量PI和E,代表π和e

4.ThreadLocalRandom在并发访问的环境下比Random起来,可以减少多线程竞争。两者作用基本相似,他比Math中的random()方法比起来,提供了更多方法产生随机数

   其中,有nextxxx()方法获得不同类型的随机数,两种类都具有两个构造器,一个构造器以系统时间为种子,一个构造器以传入的long型数据为种子产生随机数,Random类不是真正的随机,而是伪随机,因为种子一样,且调用序列一样,产生的随机数是一样的

5.BigDecimal提供了很多精确计算浮点数的方法,不会像普通的加减乘除,会导致浮点运算的误差

6.java的Date类是一个很糟糕的类,在使用时间时尽量调用Calendar来更好的处理日期和时间,Calendar是一个抽象类,本身并不能被直接实例化,只能创建Calendar子类的实例

7.正则表达式,是字符串的一种格式,正则表达式必须先被编译为Pattern对象,然后再利用该Pattern对象创建Matcher对象,执行匹配所涉及的状态保留在Matcher对象中

 多饿Matchar对象共享一个pattern对象

8.java程序国际化的关键是ResourceBundle类,它有一个静态方法:getBundle9(String baseName, Locale  locale),该方法根据Locale加载文件,Locale封装了一个国家、语言

二.java集合(Collection)

1.java集合大致包含Set(无序不可重复的集合)、List(有序、重复的集合)、Map(有映射关系的集合)、Queen(队列集合)

java集合类有两个接口派生而出,Collection和Map,Collection下有三个子自接口Set、List、和Queen

2.Iterable是Collection的父接口,Iterable里有一个默认方法forEach(Consumer  action),Collection可以直接调用,这个方法把参数传给lamda表达式的形参,这样Lamda表达式就能遍历集合的元素了,Iterable也被称为迭代器

3.Lamda表达式可以适用于函数式接口

4.Set就是Collection,只是行为有所不同,Set不允许包含相同的元素,HashSet实现了Set的接口,他根据计算HashCode的值来存储和查找Hashset里的元素,而且查找的速度很快,但是一旦对象放入Hashset里之后,最好不要删除或者修改集合中的元素,不然很可能会出错

5.LinkedHashSet是HashSet的子类,但是它用链表维护几集合的次序,它将会以元素的添加顺序维护集合的顺序,他的遍历会比hashset更快

6.TreeSet是SortedSet接口的实现类,TreeSet可以确保元素处于排序的状态,调用add()方法之后,添加的元素降自动排序

7EnumSet是专为枚举类型设置的一个set类,EnumSet中的元素必须是枚举类型里的枚举值,它的内部是以位响亮的形势进行存储,所以空间占有很小

EnumSet不允许加入null,加入null后系统会抛出异常

8.所有set的类中hashset的性能比treeset好,但是在所有的set集合中,EnumSet的性能最好,他能保存枚举值,但是三种set类都是线程不安全的

9.link集合link集合代表有序、可重复的集合,每个元素都有其对应的索引

,重要的是,它允许添加重复的元素,list接口提供了很毒品的静态方法

10.arrrylist和vector实现了list接口,两者的区别是arraylist是线程不安全的,而vector是线程安全的,vector提供了一个stack子类模拟栈这种数据结构

11.queen集合,队列,服从先进先出的原则,priorityqueen是queen的实现类,它把入队的元素按照头小尾大的顺序进行排列

当调用peek方法或者poll方法时,出队是最小的元素而不是最先进入队列的元素,deque是双端队列,deque提供了一个典型的实现类,arraydeque,它可以当栈用,推荐使用arraydeque来实现stack,因为stack是一个古老的集合。

12.arraylist和linkedlist相比较,arraylist比linkedlist性能好

13.java 8里新增了一个Map类,Map里保存着两组值,一个是Map里的key ,一个是Map类里的value,key和vlaue都可以是任何类型的数据

每一个key对应着一个value。

14.weakhashmap和hashmap的区别,区别就是,hashmap保存了对象的强引用,只要hashmap对象不被销毁,里面所有的对象也不会被垃圾回收,而weakhashmap可能被垃圾回收。

15.collections工具类:里面包含了排序操作、查找操作、替换操作、同步设置、设置不可变集合。

16.集合里有一个繁琐的接口Enumberation,它只有两个方法,hasMoreElement和nextElement方法,分别判断是否嗨哟下一个元素和返回下一个元素。


0 0