java_集合类_简】的更多相关文章

Collection 来源于Java.util包,实用常用的数据结构,字面意思就是容器 主要方法 boolean add(Object o)添加对象到集合 boolean remove(Object o)删除指定的对象 int size()返回当前集合中元素的数量 boolean contains(Object o)查找集合中是否有指定的对象 boolean isEmpty()判断集合是否为空 Iterator iterator()返回迭代器 boolean containsAll(Collec…
目录 @ 这篇文章是我学习完Java集合类做的笔记和总结,如果你想认真细读这篇文章,请做好受虐的准备(建议电脑看),因为这篇文章有点长,ヽ(ー_ー)ノ. 如果在看我这篇文章过程中,发现了错误,望指点. 一.什么是集合? 举个例子:当你有很多书时,你会考虑买一个书柜,将你的书分门别类摆放进入.使用了书柜不仅仅使房间变得整洁,也便于以后使用书时方便查找.在计算机中管理对象亦是如此,当获得多个对象后,也需要一个容器将它们管理起来,这个容器就是集合. 集合本质是基于某种数据结构数据容器.常见的数据结构:…
作为一个大三在校生,很快就要去实习了,但总感觉自己连一个刚入门的菜鸟都不如,哎.发现自己连那个程序员的门槛都还没进,有点小伤心,不过伤心没用,努力向前才是我们现在应该做的事情. 下面是我之前在学校所从网上所摘抄的一些java面试题.只是作为平时复习,加深自己的知识水平,无其他用途. 说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,…
注解(annotation),不是注释(comment) 注解可以对程序做说明,这一点和注释一样但是,注解还可以被其他程序读取,这是注释所不具备的 内置注解:@Override(表示重写父类方法)——用法_直接用@Deprecated(表示之下的方法已经被淘汰,会用中划线把方法划掉,不推荐使用,但是可以使用)——用法_直接用@SuppressWarning(表示镇压之下方法中的某一类或者多类警告信息)——用法_@SuppressWarning("all")_表示镇压所有, @Suppr…
//实现MyFrame--实现绘制窗口,和实现重写 重画窗口线程类 package cn.xiaocangtian.Test; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MyFrame extends Frame { //加载窗口 public void launchFrame() { setSize(Constant.GA…
把没几多年,完全忘记了把自己学的东西记录下来了,现在也基本不知道怎么去记录会更好了,不过好歹妹是把住了~也要毕业了,继续回来写东东记录自己的学习...... 一个Java程序在运行时的内存分布主要如上图所示: CPU是程序逻辑运算部分——不太懂. register是程序在运行中分配给该程序的CPU寄存器的一部分,用于临时寄存指令或者数据,其调度算法参考操作系统中的寄存器调度. 下面主要讲解一下程序在内存中的结构. 一个Java程序是运行在JVM(Java虚拟机)中的,每个JVM又是一个独立的进程…
话不多说直接上代码 接口: package bean; /** * user接口 */ public interface User { public String getName(); public void setName(String name); } 父类: package bean; /** * 人 作为userImpl的父类 */ public class Person { private String name; public String city; public String g…
定义: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 类图: 状态模式所涉及到的角色有: ● 环境(Context)角色,也成上下文:定义客户端所感兴趣的接口,同时维护一个具体处理当前状态的实例对象. ● 抽象状态(State)角色:定义一个接口,用以封装环境(Context)对象的一个特定的状态所对应的行为. ● 具体状态(ConcreteState)角色:每一个具体状态类都实现了环境(Context)的一个状态所对应的行为.   状态处理对象的创建和销毁: ① 当…
概念: 组合模式(Composite Pattern)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性. 有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦. 类图: 涉及角色: 1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为.声明一个接口用于访问和管理Component子部…
迭代子(Iterator)模式又叫游标(Cursor)模式,是对象的行为模式. 定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节. 类型:行为类模式 类图: 如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧: public static void print(Collection coll){ Iterator it = coll.iterator(); while(it.hasNext()){ St…
定义: 定义一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤.这里的算法的结构,可以理解为你根据需求设计出来的业务流程.特定的步骤就是指那些可能在内容上存在变数的环节. 开闭原则是指一个软件实体应该对扩展开放,对修改关闭.也就是说软件实体必须是在不被修改的情况下被扩展.模板方法模式意图是由抽象父类控制顶级逻辑,并把基本操作的实现推迟到子类去实现,这是通过继承的手段来达到对象的复用,同时也遵守了开闭原则! 类图: 模板方法模式需要开发抽象…
外观模式/门面模式 1.概念 为子系统中的一组接口提供一个统一接口.Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用. 2.UML 由于外观模式的结构图过于抽象,因此把它稍稍具体点.假设子系统内有三个模块,分别是ModuleA.ModuleB和ModuleC,它们分别有一个示例方法,那么此时示例的整体结构图如下:那么此时示例的整体结构图如下: ● 门面(Facade)角色 :客户端可以调用这个角色的方法.此角色知晓相关的(一个或者多个)子系统的功能和责任.在正常情况下,本角色会…
概念 将一个接口转换成客户希望的另外一个接口.(该模式使得原本不兼容的类可以一起工作). UML图 适配器模式有类的适配器模式和对象的适配器模式两种不同的形式. (1)对象的适配器模式结构图 (2)类的适配器模式结构图 模式所涉及的角色有: ● 目标(Target)角色:这就是所期待得到的接口.注意:由于这里讨论的是类适配器模式,因此目标不可以是类. ● 源(Adapee)角色:现在需要适配的接口. ● 适配器(Adaper)角色:适配器类是本模式的核心.适配器把源接口转换成目标接口.显然,这一…
理解还不到位,先窜出来.等过一阵子再看,再理解. 定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. 类型:行为类模式 类图: 命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构: 命令(Command)角色:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行命令. 具体命令(ConcreteCommand)角色:Command类的实现类,…
概念: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 适用场景: 在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中.每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用.总之,选择单例模式就是为了避免不一致状态,避免政出多头. 特点…
工厂模式主要是为创建对象提供了接口.工厂模式按照<Java与模式>中的提法分为三类: (1)简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method Pattern). (2)工厂方法(Factory Method)模式,又称多态性工厂(Polymorphic Factory)模式 或虚拟构造子(Virtual Constructor)模式: (3)抽象工厂(Abstract Factory)模式,又称工具箱(Kit 或Toolkit)模式…
装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任.换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同.装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展. 装饰模式的类图如下:…
看了好几篇文章,最终还是觉得<Head First 设计模式>举得例子比较符合观察者模式. 观察者模式概述: 观察者模式有时被称作发布/订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 观察者模式所涉及的角色有: ● 抽象主题(Subject)角色: 抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者.抽象主题提供一个接口…
感受:将算法从方法级别,提升到类级别.之后利用java多态,来切换不同的算法实现不同的功能. 在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理.策略模式通常把一个系列的算法包装到一系列的策…
这篇是入职之后的第二篇了,上一篇我简单介绍了一下LOCK里面的类的方法,感兴趣的话可以去了解一下,以后坚持每周至少会更新一篇关于多线程方面的文章,希望博友们可以一起加油成长. 这篇主要的内容是单例模式在多线程环境下的设计,这篇算是比较重要的内容,我会进行文字和代码的共同说明来讲解记录 1.立即加载(饿汉模式) 说到标题,有人会说什么是立即加载呢?立即加载就是使用类的时候已经将对象创建完毕了,比如说直接new实例化对象.也就是在调用方法之前,实例已经被创建了 public class MyObje…
1.小结(注意): 1.接口中无法定义成员变量,但是可以定义常量,其值不可以改变,默认使用public static final修饰 2.接口中,没有构造方法,不能创建对象 3.接口中,没有静态代码块 4.可以继承,可以重写,二选一,但是只能通过实现类的对象来调用 5.接口可以多实现 6.默认方法和静态方法JDK8版本才出的. 7.接口中抽象方法使用abstract关键字修饰,可以省略,没有方法体,该方法供子类实现使用. 8.静态与.class文件相关,只能使用接口名调用,不可以通过实现类的类名…
由于想在微信公众号里爬一点儿考研的视频 花了差不多一天的时间把这个爬虫做好(其实也不算爬虫吧,就算个能批量处理的地址解析器,半个爬虫) 不多说,进正题 (本文适合有java基础的同学,没基础的用客户端缓存然后格式转换吧) 所需条件: 1.一台联网的有java环境的电脑 2.耐心 访问后台接口网址: http://vv.video.qq.com/getinfo(低清的只要这一个就好了) http://vv.video.qq.com/getkey(高清的需要访问这个) 原理(获取低清视频,先把原理打…
1.接口 java中接口的存在意义是:让多个继承该接口的类实现多态,让多个类有相同的特征 示例代码: interface MyInterface{ void myMethod(); } class Test1 implements MyInterface{ @Override public void myMethod() { // TODO 自动生成的方法存根 System.out.println("test1"); } } class Test implements MyInterf…
之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static void main(String[] args) { try { int a = 1/0; System.out.println(a); }catch(ArithmeticException e) { e.printStackTrace(); System.out.println(e); }finally…
类加载:Java命令的作用是启动虚拟机,虚拟机通过输入流,从磁盘上将字节码文件(.class文件)中的内容读入虚拟机,并保存起来的过程就是类加载. 类加载特性 :      *在虚拟机的生命周期中一个类只被加载一次.      *类加载的原则:延迟加载,能少加载就少加载,因为虚拟机的空间是有限的.      *类加载的时机:      1)第一次创建对象要加载类.      2)调用静态方法时要加载类,访问静态属性时会加载类.      3)加载子类时必定会先加载父类.      4)创建对象引…
冒泡排序及其优化 一.原理及优化原理 1.原理讲解 冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较,以此类推,执行完为一个趟,趟数等于比较的个数减一. 2.冒泡排序原理图示:(以98765序列为例,排序结果从小到大) 3.冒泡排序优化 优化版:每一次减少一次循环(即红色部分不需要在进行比较) 4.冒泡排序最终版 最终版:每一趟减少一次循环(删除线不需要再执行) 二.实现代码 1.冒泡排序实现主要代…
虽然从来没有被面过,但是必须知道,因为classForname classloader被面过多次了. 一.Class.forName动态加载  1.编译时加载类是静态加载类,                  new 创建对象是静态加载类,在编译时刻就需要加载所有可用使用到的类,如果有一个用不了,那么整个文件都无法通过编译   2.运行时加载类是动态加载类                  Class c =  Class.forName("类的全名"),不仅表示了类的类型,还表示了动…
一.异常现象: 自定义注解时, @Retention和@Target都能导入进来,但是却报下列错误: RetentionPolicy cannot be resolved to a variable ElementType cannot be resolved to a variable 二.异常原因: 没有引入这两个类 三.解决方法: 手动引入RetentionPolicy和ElementType这两个类 方法一: import java.lang.annotation.* 方法二: impo…
一.静态 1.构造函数:       特点:       1. 函数名和类名同样.       2. 不用定义返回值类型(和void不是一回事,而构造函数是根本不用定义返回值类型).       3. 不能够写return语句.       对象一建立就会调用与之相应的构造函数.       构造函数的作用:能够用于给对象进行初始化.(我们现实生活中的事物,仅仅要一出现就具备的特性. 比方:人一出生就会哭,一初始化就会哭,哭就是这个人的行为)       构造函数的小细节:       1.当一…
关于java父类继承: 首先抽象类有这样几个规则 1.定义为抽象类的类里可以没有抽象方法 2.抽象类里可以有普通的不带abstract关键字的方法 3.抽象类里可以有主main方法 4.抽象类也可以向上继承父类 5.子类继承父类之后一定要重写父类的抽象方法 6.带有abstract关键字的抽象方法不可有内容 最近在复习安卓的期末考试 所以写了一些安卓的代码,发现子类中有很多直接使用的本来中没有的方法,就在想是不是父类甚至父类的父类的方法可以直接使用 今天试了一下,果然可以,当然,也说明我基础有缺…