Java 中的几个开发常用的知识简介

 
 Java 语言之父:James Gosling
 
1. 迭代器:
(通过指针的挪动来依次获取集合中的每一个元素)
    Enumeration  ---- 最早期的迭代器
    Iterator - 通过对每一个元素进行标记确定每一个元素的存在与否。因此在迭代的过程中不允许直接增删原集合。
    Collection 中的 iterator 方法是从 Iterable 中继承过来的
    实现了 Iterable 接口的类产生的对象可以被增强 for 循环进行遍历 --- 增强 for 循环也是 JDK1.5 的特性之一。增强 for 循环本质上是一个迭代遍历
 
2. 泛型
参数化类型 - ParameterizedType --- JDK1.5 的特性之一
用具体类型代替泛型的过程 --- 泛型的擦除 --- 发生在编译期
 
? extends 类/接口  表示传入这个类/接口或者是其子类/子接口的对象 --- 上限
? super  类/接口   表示传入这个类/接口及其父类/父接口的对象 --- 下限
? 表示泛型的通配符
 
3. Map - 映射
一个键对应值。键是唯一的,值是可以重复的。
每一个键和它所对应的值构成了键值对。 --- 一个 Map 是由多个键值对来组成。
将每一个键值对看作一个对象,抽取出来的一个代表键值对的接口 --- Entry,Entry 是 Map 的一个内部接口 --- 一个 Map 是由多个 Entry 对象组成的。
Map 不是集合,但是Map是 Java 集合框架的成员。
Java 集合框架(Java Collections Framework)包含:集合、数组、映射以及操作它们的工具类 --- Arrays、Collections、Interator、Comparable、Comparator
 
3.1 遍历映射
方式一:先获取映射中所有键组成的集合,然后通过键获取对应的值
方式二:将所有的键值对放入一个集合,然后通过遍历集合获取这个键值对的数据。
 
3.2 HashMap:
基于哈希码存储,然后这个键和值都允许为null,默认容量是 16 ,默认加载因子是 0.75f。自定义初始容量x,这个 x 介于[ 2^n ~ 2^(n+1)],那么初始容量一定是 2^(n+1) --- 底层保证 HashMap 的容量永远是 2^n,(范围是 1 ~ 2^30)
HashMap本身是一个异步式线程不安全的映射。(后面用的最多)
3.3 HashTable:
JDK 中早的映射。基于哈希码存储,然后不允许键和值为null。默认初始容量是11,默认加载因子是 0.75f。每次扩容默认增加一倍,然后加 1。--- 11 -> 23。本身是一个同步式的线程安全的映射。(现在一般不用)。ConcurrentHashMap --- 异步式线程安全的映射。
异步:同一对象在同一时刻允许多个对象同时操作该对象。线程不安全的效率高。
 
练习:输入一个字符串,统计其中每一个字符出现的次数
 
4. 断言:
(对结果进行预测。打桩)
assert 断言条件 :  错误信息。(最早在 Integer 中的 valueOf() 中就有一个断言)
在 Java 中,断言不是默认开启的,需要利用参数手动指定开启。 -> -ea -> -enableassertion
 
注意:native 只能修饰方法 --- 本地方法,没有方法体但不是抽象方法,方法体是在JVM中用 C 语言完成的,在本地方法栈中执行。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/tangdiao/p/9513692.html