zoukankan      html  css  js  c++  java
  • 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 语言完成的,在本地方法栈中执行。
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    G. Reducing Delivery Cost 思维+最短路
    Bounding Wall 线段树 + 思维 ccpc 2020 秦皇岛 B
    Java代理模式
    Java开发 使用反射判断一个类的是否继承指定接口类
    Java开发 AES加解密工具类——兼容Android9.0
    Java byte转换工具类
    注册LiveData或者MutableLiveData的观察者导致的内存泄露问题
    Android开发 NavOptions记录
    关于MySQL的命名规范
    Locust学习笔记(5)
  • 原文地址:https://www.cnblogs.com/tangdiao/p/9513692.html
Copyright © 2011-2022 走看看