一、泛型
1.概念
泛型指的是泛指的类型。主要用于子类和父类,接口和实现类之间的数据传递

JDK1.5之后新增的特性,主要用于解决安全问题,是一个安全机制

好处:
a.可以提高代码的复用性
b.避免了强制类型转换的麻烦
c.提高了代码的安全性
d.可以把运行时的异常提前到编译时

泛型:通过<>来定义要操作的引用数据类型

什么时候使用泛型?
通常使用在集合框架中,当遇到<>的时候,一般需要定义泛型

2.泛型的应用场景
a.泛型应用在类中

访问权限修饰符 class 类名<类型1,类型2。。。>
{
}

b.泛型应用在接口中
interface 接口名称<类型1,类型2。。。> {

}

c。泛型应用在方法中
访问权限修饰符 <类型1,类型2.。。。> 返回值类型 方法名(参数列表) {

}

d.应用在集合中

e.通配符-------- ?
可以匹配任意类型
1><? super 类名>:可以是指定类或者指定类的父类

2><? extends 类名>:可以是指定类或者执行类的子类

二、List接口
List是Collection接口的一个子接口,可以使用Collection中的所有的方法
List在Java中代表一个有序的集合,集合中的每个元素都有对应的索引,List允许添加重复元素,可以通过索引来访问集合中的元素

1.ArrayList-----List接口的一个实现类
特点:
a.不排重(同一个元素,可以被添加多次)
b.有序的(元素的添加顺序和底层的存储顺序是相同的)
c.底层存储采用类似“数组”的数据结构,查询和修改的效率比较高,新增和删除的效率比较低

2.LinkedList
特点:
a.不排重(同一个元素,可以被添加多次)
b。有序的(元素的添加顺序和底层的存储顺序是相同的)
c.底层存储采用链表的数据结构,查询和修改的效率比较低,新增和删除的效率比较高

链表的存储:当添加第一个元素的时候,会自动的添加进去第二个元素的地址

3.Vector
特点:
a.在用法上和ArrayList几乎完全相同
b.Vetor是一个古老的集合。(JDK1.0开始)
c。Vector是线程安全的,ArrayList是线程不安全的(推荐使用ArrayList,Collections工具类可以将一个ArrayList变成线程安全的)
d.在性能上比ArrayList低

4.Satck

是Vector的子类,用于模拟栈这种数据结构,栈通常是先进后出
最后push进栈的元素,将最先被pop出栈,进栈出栈都是Object,从栈中取出元素后必须要做强制类型转换

三、遍历集合

1.增强for循环
2.迭代器Iterator(接口)
3.ListIterator迭代器

JAVA基础知识总结:十四的更多相关文章

  1. 基础知识《十四》Java异常的栈轨迹fillInStackTrace和printStackTrace的用法

    本文转自wawlian 捕获到异常时,往往需要进行一些处理.比较简单直接的方式就是打印异常栈轨迹Stack Trace.说起栈轨迹,可能很多人和我一样,第一反应就是printStackTrace()方 ...

  2. Java基础知识陷阱(十)

    本文发表于本人博客. 上个星期由于时间比较紧所以未能继续写下去,今天再接再厉,专心 + 坚持这样离目标就越来越近了!废话少说说正题,今天我们还是来说说java中比较基础的知识,大家知道编写java程序 ...

  3. Java基础知识笔记(四:多线程基础及生命周期)

    一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类. ...

  4. Java基础知识拾遗(四)

    IO SequenceInputStream,允许链接多个InputStream对象.在操作上该类从第一个InputStream对象进行读取,知道读取完全部内容,然后切换到第二个InputStream ...

  5. Java基础笔记(十四)——封装

    封装(好比ATM机) 将类的某些信息隐藏在类内部,不允许外部程序直接访问(隐藏对象的信息),通过该类提供的方法来实现对隐藏信息的操作和访问(留出访问的接口). 特点: 1.只能通过规定的方法访问数据. ...

  6. Java基础(二十四)Java IO(1)输入/输出流

    在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称为输出流. 输入流的指向称为源,程序从指向源的输入流中读取数据. 输出流的指向是字节要去的目的地, ...

  7. JAVA基础知识总结:四

    一.方法 1.什么是方法? 对于功能相同的代码段,为了简化代码,会把功能相同的代码抽取出来,方便多次使用,Java中,我们使用[方法],也被称为函数 2.函数的声明 语法: 访问权限修饰符 其他修饰符 ...

  8. Java基础学习笔记十四 常用API之基本类型包装类

    基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...

  9. Java基础笔记(十四)——面向对象(续)【构造方法和this关键字】

    一.构造函数的规则 1.构造方法是用来在对象实例化时初始化对象的成员变量的,以完成对象的初始化工作. 2.构造方法与类名相同且没有返回值(返回值也不能为void型).如:public 构造方法名( ) ...

  10. java基础知识查漏 四

    1.JAVA多线程实现方式 (1)继承Thread类,并重写run()方法 (2)实现Runnable接口,,实现run()方法 (3)使用ExecutorService.Callable.Futur ...

随机推荐

  1. alert.log中的minact-scn: useg scan erroring out with error e:376警告

    早上,开发说昨晚一台服务器的undo好像有异常,早上上去一看,库停了,正常startup之后,随手crud了一把,都正常.去看alert.log日志,发现undo某个数据块访问报I/O读错误,如下: ...

  2. 看起来像是break的考量

    代码运用了if+break: package day20181008; import java.util.Scanner; public class ZuoYe01 { public static v ...

  3. 关于VS2013下制作和使用静态库和动态库

    关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...

  4. topcoder srm 680 div1

    problem1 link 将限制按照$x$排序.那么$[upTo_{i}+1,upTo_{i+1}]$中数字个数为$quantity_{i+1}-quantity_{i}$.然后进行动态规划.$f[ ...

  5. HTTP 压力测试工具

    http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般不会 ...

  6. openwrt源码下的feeds.conf.default有何作用?

    答: 可以往openwrt下添加一些最新的软件包,这样make menuconfig后就可以发现很多软件包了. 该文件中的内容格式如下例: src-git packages https://git.l ...

  7. 编译openwrt时总是报错“staging_dir/target-aarch64_generic_glibc/stam$/.tools_compile_yynyyyyynyyyyynyynnyyyynyyyyyyyyyyyyyyynyynynnyyynny' failed”

    1. 详细错误如下: tools/Makefile:146: recipe for target '/home/jello/openwrt/staging_dir/target-aarch64_gen ...

  8. Maven集成Tomcat插件

    目录 类似插件及版本区别: 本地运行,启动嵌入式tomcat: 错误一: 错误二: Idea运行调试: vscode运行调试: 远程部署: 项目中的pom.xml配置: Tomcat中的tomcat- ...

  9. Intellij IDEA 安装配置Gradle

    1.安装 到官网链接下载最新的bin版本,解压到 D:\Program Files (x86)\JetBrains\IDEA Configuration And Cache\gradle 配置环境变量 ...

  10. Shiro源码分析

    1.入口类:AbstractAuthenticator 用户输入的登录信息经过其authenticate方法: public final AuthenticationInfo authenticate ...