
Java随记
文章平均质量分 65
CoolTomato_
一个会写代码的番茄
展开
-
Java1.8新的语言特性——默认方法(Default Methods)
Java1.8新的语言特性——默认方法(Default Methods): (原版)很详细的解析,分享一下http://ebnbin.com/2015/12/20/java-8-default-methods/转载 2018-03-12 10:53:56 · 437 阅读 · 0 评论 -
正则表达式(1)——基础知识
一、引入: 1、需求:校验一个QQ号(要求:不能以0开头、长度5~11、只能由数字组成)2、代码实现: 方式一:依靠自己的逻辑实现:public class Demo1 { public static void main(String[] args) { String qq = "123"; //不能以0开头原创 2017-02-16 15:41:56 · 616 阅读 · 0 评论 -
集合之Vector(了解即可)、Set
Vector 一、集合的体系: —| Collection 单例集合的根接口 ——| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复。 ———| ArrayList ArrayList 底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。 ———| LinkedList LinkedList 底层是使用了链表数据结构实现的,原创 2016-12-14 14:45:13 · 314 阅读 · 0 评论 -
集合之LinkedList案例——生成扑克牌、逆序排序
一、LinkedList案例——生成扑克牌 1、需求:使用LinkedList存储一副扑克牌,然后实现洗牌功能。2、实现代码:import java.util.LinkedList;import java.util.Random;//扑克类class Poker{ String color; //花色 String num; //点数 public Poker(Stri原创 2016-12-14 11:50:43 · 2044 阅读 · 2 评论 -
集合之LinkedList
LinkedList: 一、集合的体系: —| Collection 单列集合的根接口 ——| List 如果实现了List接口的集合类,具备的特点: 有序,可重复。 ———| ArrayList:底层是维护了一个Object数组实现的, 特点: 查询速度快,增删慢。 ———| LinkedList:底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。原创 2016-12-13 17:41:39 · 401 阅读 · 0 评论 -
集合之ArrayList
ArrayList:(题外话:要学会查看源码) 一、集合的体系: —| Collection 单列集合的根接口 ——| List 如果实现了List接口的集合类,具备的特点: 有序,可重复。 ———| ArrayList ———| LinkedList ———| Vector(了解即可) ——| Set 如果实现了Set接口的集合类, 具备的特点: 无序,不可重复。原创 2016-12-13 15:22:05 · 416 阅读 · 0 评论 -
集合之List(2)
书接上文,和大家分享Collection的知识的时候就说过,迭代器在集合中是很重要的,List集合中不仅可以使用其父类的迭代器,它还有自己特有的迭代器,那我们来看看吧。迭代:listIterator() 一、ListIterator(父接口为Iterator)特有的方法: 1、hasPrevious() 判断是否存在上一个元素。 2、previous() 当前指针先向上移动一个单位,然后原创 2016-05-25 21:36:28 · 743 阅读 · 0 评论 -
集合之List(1)
一、Collection 单列集合的根接口,分为两种: 1、List 如果是实现了List接口的集合类,该集合类具备的特点:有序,可重复。 2、Set 如果是实现了Set接口的集合类,该集合类具备的特点: 无序,不可重复。 今天就来说说List,List是Collection的子接口,自然可以使用父接口的方法,所以我们今天只说list自己特有的方法。原创 2016-05-25 15:12:16 · 927 阅读 · 0 评论 -
集合之Collection(2)
书接上文,和大家分享collection中最后两个方法——迭代中toArray() 、iterator() 一、toArray()方法 1、基本类型: 输出结果: 2、引用类型: 二、iterator()方法: 1、迭代器的作用:就是用于抓取集合中的元素。2、迭代器的方法: 1)hasNext() 问是否有元素可遍历。如果有元素可以遍历,返回true,否则返回false 。原创 2016-05-24 09:06:17 · 415 阅读 · 0 评论 -
集合之Collection实例——登录注册功能
实现登录注册功能: 一、需求: 使用集合实现注册登陆功能: 第一步: 提示用户选择功能, A(注册) B(登陆) 。 要求: 功能选择 的时候要忽略大小写。 第二步:注册: 1、提示用户输入注册的账号(数字)与密码,如果输入账号已经存在集合中,提示用户重新输入。 2、注册完毕之后,把集合中的所有用户信息打印出来。原创 2016-12-13 10:46:07 · 1395 阅读 · 0 评论 -
集合的引入
一、对比数组引入集合 1、数组: 存储同一种数据类型的集合容器。2、数组的特点: 1)只能存储同一种数据类型的数据。 2)一旦初始化,长度固定。 3)数组中的元素与元素之间的内存地址是连续的。3、弊端:原创 2016-05-21 18:35:50 · 1721 阅读 · 0 评论 -
数组应用之去除重复元素、Arrays数组工具的使用、二维数组、数组总结
一、目前有数组” int[] arr = {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组存储了那些非重复的元素而且数组不准浪费长度。 1、代码:import java.util.*;class Demo1{ public static void main(String[] args) { int[] arr = {11,2, 4原创 2016-09-26 10:58:04 · 2700 阅读 · 0 评论 -
jar包、模板模式
一、jar包: 1、打jar包: 需要使用到jdk的开发工具(jar.exe). 2、jar的用法: 使用格式:jar cvf jar文件的名字 class文件或者是文件夹 3、打jar包要注意的事项: 1)一个程序打完了jar之后必须要在清单文件(META-INF下的MANIFEST.MF)上指定入口类: 格式 Main-Class: 包名.类名 2)jar包双击运行仅对于图形原创 2016-10-31 16:14:10 · 509 阅读 · 0 评论 -
方法重写、instanceof关键字
一、方法重写: 1、目前的问题:父类的功能无法满足子类的需求。2、方法重写的前提: 必须要存在继承的关系。3、方法的重写: 子父类出现了同名的函数,这个我们就称作为方法的重写。4、什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。 5、方法重写要注意的事项: 1)方法重写时, 方法名与形参列表必须一致。 2)方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。原创 2016-10-20 16:30:23 · 1141 阅读 · 0 评论 -
权限修饰符
访问权限问题,说小不小说大不大,但却有时让人头疼,所以还是要了解知道的。1、权限修饰符: 权限修饰符就是控制被修饰的成员的范围可见性。2、分类:1)public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。2)private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。原创 2016-06-15 10:38:49 · 451 阅读 · 0 评论 -
包、导包语句
一、包: 1、java中的包就相当于windows文件夹。 2、包的作用: 1)解决类名重复产生冲突的问题:同一个类名,如果在不同包下,均会产生class文件,然后执行。如果都没有包名,那么后一个的class文件就会代替前一个的class文件。 2)便于软件版本的发布。3、定义包的格式:package 包名;4、包名命名规范:包名全部小写。5、包语句要注意的事项:原创 2016-10-31 14:06:36 · 2184 阅读 · 0 评论 -
finally块
一、finally块 1、使用前提是必须要存在try块才能使用。2、执行条件:finally块的代码在任何情况下都会执行的,除了jvm退出的情况。 情况一:没有异常,finally块执行 情况二:存在异常,finally块执行 情况三:存在异常,并且异常处理为抛出异常,finally块执行 情况四:结束jvm虚拟机原创 2016-10-31 13:22:08 · 454 阅读 · 0 评论 -
Java学习铺垫随记
计算机 = 硬件+ 软件 计算机如果只用硬件没有软件,那就是台裸机。一、硬件: 1、cpu : cpu是计算机中的运算核心与控制核心。负责了解析计算机的指令、与计算机运算的执行。 2、内存: 数据与cpu交互的桥梁。 程序所需要的数据都会先加载到内存中,cpu是直接读取内存中数据进行运算的。 特点: 存取速度快。 缺点:断电或者是程序退出的时候,内存中的数据都会丢失。 3、硬盘(分类:原创 2016-09-18 16:25:26 · 509 阅读 · 0 评论 -
正则表达式(2)——应用(匹配、切割、替换、查找)、模拟网络爬虫
一、正则表达式主要是用于操作字符串的规则,正则表达式对字符串的操作主要有一下几种应用: 1、匹配:matches(String regex); 2、切割:split(String regex); 3、替换:replaceAll(String regex, String replacement); 4、查找:二、匹配: 需求1:编写一个正则表达式匹配手机号(要求:第一位只能是1开头,第二位3原创 2017-02-18 10:20:10 · 601 阅读 · 0 评论 -
集合之HashSet案例——简易注册
一、需求: 接受键盘录入用户名与密码,如果用户名已经存在集合中,那么就是视为重复元素,不允许添加到HashSet中。二、代码:package mfq.set;import java.util.HashSet;import java.util.Scanner;class User { private String userName; private String password;原创 2017-02-11 15:33:55 · 518 阅读 · 0 评论 -
枚举
枚举:一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,可以直接使用枚举予以解决。一、引入: 1、问题:某些方法所接收的数据必须是在固定范围之内的。2、解决: 方案一: 这时候我们的解决方案就是自定义一个类,然后私有化构造函数,在自定义类中创建本类的对象对外使用。 方案二:jdk1.5对以上问题提出了新的解决方案: 就是使用枚举类解决。原创 2017-03-11 17:33:38 · 250 阅读 · 0 评论 -
可变参数、自动装箱与自动拆箱
一、可变参数: 1、需求: 定义一个函数做加法功能(函数做几个数据的加法功能是不确定)。 方式一:函数重载,但是只要多一个参数就要重写一次方法,太麻烦。 方式二:数组 方式三:可变参数 2、可变参数的格式: 数据类型… 变量名3、可变参数要注意的细节: 1)如果一个函数的形参使用上了可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数。原创 2017-03-11 11:25:14 · 310 阅读 · 0 评论 -
静态导入、增强for循环
一、静态导入:JDK1.5的时候才出现的 1、静态导入的作用:简化书写,静态导入可以作用于一个类的所有静态成员。2、静态导入的格式: import static 包名.类名.静态的成员;package mfq.jdk;import java.util.ArrayList;import java.util.Collections;/*public class Demo1 { pub原创 2017-03-10 11:56:25 · 526 阅读 · 0 评论 -
对比集合工具类Collections进一步学习数组工具类Arrays
数组的工具类(Arrays)——核心API:一、二分查找,数组需要有序 binarySearch(int[]); binarySearch(double[]); 二、数组排序 sort(int[]); sort(char[]); 三、将数组变成字符串 toString(int[]);前三个之前我们已经介绍过了,在此就不过多的说了。接下来,原创 2017-02-16 11:24:15 · 407 阅读 · 0 评论 -
集合之Collections——集合的工具类
集合的工具类(Collections):区分于Collection一、引入:大家是不是觉得Collection和Collections很相似呢? 笔试题:说出Collection与Collections的区别? Collection是一个单列集合的根接口。 Collections是操作集合对象的一个工具类。二、Collections的常见方法: 1、对list集合进行排序原创 2017-02-15 15:15:29 · 530 阅读 · 0 评论 -
泛型(1)——泛型的引入
一、引入 首先来看这样一个情况: 这就是一个往ArrayList集合中添加字符串类型的数据,然后小写转大写的例子,没什么问题。那如果这样呢? 运行时报错!如何解决这一问题? 对,就是我们接下来要说的泛型二、概述 1、泛型是jdk1.5使用的新特性。2、泛型的好处: 1)将运行时的异常提前至了编译时。 2)避免了无谓的强制类型转换。原创 2017-02-13 13:53:25 · 331 阅读 · 0 评论 -
集合之TreeMap案例
一、需求: 定义一个TreeMap,键存储的是书对象,值存储的是字符串。 根据书的出版日期排序。二、代码实现: 方式一(错误): 方式二:class Book implements Comparable<Book> { String name;原创 2017-02-15 11:23:17 · 423 阅读 · 0 评论 -
集合之HashMap、TreeMap
一、引入: 双列集合: —| Map 如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复。——| HashMap 底层也是基于哈希表实现的。 HashMap的存储原理: 往HashMap添加元素的时候,首先会调用键的hashCode方法得到元素的哈希码值,然后经过运算就可以算出该元素在哈希表中的存储位置。原创 2017-02-14 16:16:55 · 318 阅读 · 0 评论 -
集合之Map(2)
一、接下来介绍Map集合中比较重要的方法:迭代 1、keySet() 2、values() 3、entrySet()——今后最常用的Map集合的迭代方法 二、原理分析: 1、entrySet()方法: 2、Map.Entry()写法的原因:class Map { //静态内部类 static class Entry<K, V> {原创 2017-02-14 13:57:10 · 325 阅读 · 0 评论 -
集合之Map(1)
一、引入: 之前的一大段时间里我们介绍了Collection、List、Set这些单列集合,但是单列集合并不能完全满足我们的日常所需,例如:在现实生活中有些数据是以映射关系存在的,也就是成对存在的,比如: 一夫一妻制下:老公——老婆身份证——人一把钥匙——锁二、双列集合: 1、概况: —| Map:如果是实现了Map接口的集合类。特点: 存储的数据都是以键值对原创 2017-02-14 09:13:48 · 347 阅读 · 0 评论 -
集合之TreeSet(1)
集合的体系: —| Collection:单列集合的根接口。 ——| List:如果是实现了List接口的集合类,具备的特点: 有序,可重复。 ———| ArrayList:底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。 ———| LinkedList:底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。原创 2016-05-27 17:57:43 · 344 阅读 · 0 评论 -
集合之HashSet
HashSet 一、集合的体系: —| Collection 单列集合的根接口 ——| List 如果是实现了List接口的集合类,具备的特点: 有序,可重复。 ———| ArrayList ArrayList 底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。 ———| LinkedList LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速原创 2016-05-27 10:57:18 · 450 阅读 · 0 评论 -
集合之Collection(1)
首先来看一下API文档提供给我们的一些collection介绍。> Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。原创 2016-05-23 15:24:37 · 471 阅读 · 0 评论 -
泛型(4)——泛型的上下限
一、引入: 1、需求:定义一个函数可以接收任意类型的集合对象。2、思路:因为这几天一直在学习泛型,尤其是自定义泛型,所以最先我的想法就是使用自定义泛型。public class Demo8 { public static void main(String[] args) { //但是发现使用自定义泛型与需求不符,使用自定义泛型传入String类型也是可以的,而需求是任意类原创 2017-02-13 23:25:45 · 912 阅读 · 0 评论 -
泛型(3)——类上、接口上自定义泛型
一、类上自定义泛型 1、泛型类的定义格式:class 类名<声明自定义泛型>{}2、泛型类要注意的事项: 1)在类上自定义泛型的具体数据类型,是在使用该类创建对象的时候确定的。 2)如果一个类在类上已经声明了自定义泛型,但是在使用该类创建对象的时候没有指定泛型的具体数据类型时,那么默认为Object类型。 3)在类上自定义泛型时,不能作用于静态的方法。如果静态的方法需要使用自定义泛型,那原创 2017-02-13 15:00:46 · 2506 阅读 · 0 评论 -
泛型(2)——方法上自定义泛型
一、引入: 需求: 定义一个方法可以接收任意类型的参数,而且返回值类型必须要与实参的类型一致。 如何改进呢? 二、自定义泛型:自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。三、方法上自定义泛型: 1、格式 修饰符 <声明自定义的泛型>返回值类型 函数名(使用自定义泛型 ...){ }2、在泛型中不能使用基本数据类型,如果需要使用基本数据类型,那么原创 2017-02-13 14:14:59 · 1157 阅读 · 0 评论 -
集合之TreeSet(2)
继续来说TreeSet集合,接下来和大家分享的是TreeSet集合中的一些易混淆的问题。一、TreeSet是可以对字符串进行排序的, 因为字符串已经实现了Comparable接口(可以查阅API文档)。 1、字符串的比较规则: 情况一: 对应位置有不同的字符出现, 就比较的就是对应位置不同的字符。 情况二:对应位置上的字符都一样,比较的就是字符串的长度。2、代码分析:原创 2017-02-11 16:36:24 · 265 阅读 · 0 评论 -
面向对象三大特征之继承、super关键字
一、在现实生活中事物与事物之间是存在关系. 1、球员—->球队 整体与部分关系 has a 关系 2、学生—–>人 继承的关系 is a 关系二、继承 1、目前存在的问题: 1)无法描述清楚这两个类之间的继承关系。 2)存在着重复代码。2、面向对象的三大特征: 1)封装 2)继承 3)多态.3、表现形式:继承是通过关键字extends体现的。原创 2016-10-20 11:29:17 · 854 阅读 · 0 评论 -
自定义异常类、运行时异常与编译时异常
一、自定义异常类: sun提供了很多的异常类给我们用于描述程序中各种的不正常情况,但是sun给我们提供异常类还不足以描述我们现实生活中所有不正常情况,那么这时候我们就需要自定义异常类。1、需求: 模拟feiQ上线的时候,如果没有插上网线,那么就抛出一个没有插上网线的异常,如果已经插上了网上,那么就正常显示好友列表。2、自定义异常类的步骤: 自定义一个类继承Exception即可。 二、运行时异原创 2016-10-30 00:07:05 · 4665 阅读 · 0 评论 -
内部类、异常知识点总结
一、内部类1、内部类类别:1)成员内部类: 在一个类的成员位置定义另外一个类,那么另外 一个 类就称作为成员内部类。a)成员内部类的访问方式:方式1: 在外部类内提供一个方法创建内部类的对象进行访问。方式2: 在其他类创建内部类的对象进行访问。 创建的格式: `外部类.内部类 变量名 = new 外部类().new 内部类();`**注意:**如果是静态内部类在其他类的创建对象方式:原创 2016-05-20 20:40:53 · 810 阅读 · 0 评论