自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 从0开始学Java,打卡第10天(20输出式学习计划)-11操作集合的工具类:Collections

(操作数组的工具类:Arrays)Collections是一个操作Set、List和Map等集合的工具类Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法排序操作:(均为static方法)reverse(List):反转List中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List集合元素按升序排序sort(List,Comparat

2020-05-10 21:21:26 99

原创 从0开始学Java,打卡第10天(20输出式学习计划)-10Hashtable的子类Properties的使用

Hashtable是个古老的Map实现类,线程安全。与HashMap不同,Hashtable不允许使用null作为key和value与HashMap一样,Hashtable也不能保证其中Key-Value对的顺序Hashtable判断两个key相等、两个value相等的标准,与hashMap一致。Map接口的常用实现类:HashMap、TreeMap和Properties。HashMap是Map接口使用频率最高的实现类。允许使用null键和null值,与HashSet一样,不保证映射的顺序。H

2020-05-10 21:10:27 87

原创 从0开始学Java,打卡第10天(20输出式学习计划)-9LinkedHashMap、TreeMap的使用

Map接口|----HashMap(主要实现类)|----LinkedHashMap:使用链表维护添加进Map中的顺序。故遍历Map时,是按添加的顺序遍历的。|----TreeMap:按照添加进Map中的元素的key的指定属性进行排序。要求:key必须是同一个类的对象!针对key,自然排序 vs 定制排序|----Hashtable|----Properties:自然排序:Map map = new TreeMap();map.put(new Person(“AA”,23),89

2020-05-10 20:56:51 92

原创 从0开始学Java,打卡第10天(20输出式学习计划)-8Map的常用实现类HashMap及主要方法的使用

添加、删除操作:Object put(Object key,Object vaule):向Map中添加一个元素Object remove(Object key):按照指定的key删除此key-valuevoid putAll(Map t)void clear():清空元素查询的操作:Object get(Object key):获取指定key的value值。若无此key,则返回nullboolean containsKey(Object key)boolean containsValue(O

2020-05-10 20:40:09 94

原创 从0开始学Java,打卡第10天(20输出式学习计划)-7Map的接口概述

Map与Collection并列存在。用于保存具有映射关系的数据:Key-ValueMap中的key和value都可以是任何引用类型的数据Map中的key用set来存放,不允许重复,即同一个Map对象所对应的类,须重写hashCode()和equals()方法。常用String类作为Map的“键”。values是用Collection来存的,key和value之间存在单向一对一关系,即通过指定的key总能找到唯一的、确定的value。一对是一个Entry。HashSet是HashMap的特别的实

2020-05-10 20:16:21 84

原创 从0开始学Java,打卡第10天(20输出式学习计划)-6TreeSet的自然排序、定制排序

TreeSet:1向TreeSet中添加的元素必须是同一个类的。2可以按照添加进集合中的元素的指定的顺序遍历(如String、包装类默认按照从小到大的顺序遍历。)3当Person类没有实现Comparable接口时,当向TreeSet中添加Person对象时,报ClassCastException。String实现Comparable接口并重写了compareTo方法。当向TreeSet中添加Person类的对象时,依据此方法,确定按照哪个属性排列。public int compareTo(Obje

2020-05-10 19:02:46 81

原创 从0开始学Java,打卡第10天(20输出式学习计划)-6LinkedHashSet的特点及实现

LinkedHashSet:依然是无序的,但使用链表维护了一个添加进集合中的顺序。导致当我们遍历LinkedHashSet集合元素时,是按照添加进去的顺序遍历的!Iterator iterator = set.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}(链表有前向索引、后向索引,所以遍历方便速度快。但添加的时候就慢一点,因为既要添加又要维护链表的索引)LinkedHashSet插入性能略低于

2020-05-10 18:02:43 64

原创 从0开始学Java,打卡第10天(20输出式学习计划)-5Set的主要实现类HashSet

Collection接口|----List接口:存储有序的,可以重复的元素|----ArrayList(主要的实现类)|----LinkedList(对于频繁的插入、删除操作)|----Vector(古老的实现类、线程安全的,但效率要低于ArrayList)|----Set接口:存储无序的,不可重复的元素.Set中常用的方法都是Collection下定义的。|----HashSet(主要实现类)|----LinkedHashSet|----TreeSetset:存储的元素是无序的,不可重复

2020-05-10 17:47:04 86

原创 从0开始学Java,打卡第10天(20输出式学习计划)-4ArrayList及List的常用方法、LinkedList、Vector

Collection接口|----List接口:存储无序的,可以重复的元素|----ArrayList(主要的实现类)、LinkedList、Vector|----Set接口:存储无序的,不可重复的元素|----HashSet、LinkedHashSet、TreeSetMap接口:存储“键-值”对的数据|----HashMap、LinkedHashMap、TreeMap、Hashtable(子类:Propertries)List集合里添加了一些根据索引来操作集合元素的方法:void add(

2020-05-10 13:06:16 107

原创 从0开始学Java,打卡第10天(20输出式学习计划)-3Collection接口的常用方法-集合遍历

14iterator():返回一个iterator接口实现类的对象Iterator iterator = coll.iterator();while(iterator.hasNext){system.out.println(iterator.next());}

2020-05-09 22:59:42 82

原创 从0开始学Java,打卡第10天(20输出式学习计划)-2Collection接口的常用方法

1集合的接口和实现类都在java.util包下。2存储数据通性的方法都在set和list的父接口collection中。因collection是抽象方法,以具体实现collection抽象方法的实现类ArrayList为例去讲解Collection的常用方法。Collection coll = new ArrayList();1size():返回集合中元素的个数System.out.println(coll.size());2add(Object obj):向集合中添加一个元素coll.add

2020-05-09 22:59:34 101

原创 从0开始学Java,打卡第10天(20输出式学习计划)-1集合概述及特点

一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态地把多个对象的引用放入容器中。Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。1存储对象可以考虑:①数组②集合2数组存储对象的特点:弊端:①一旦创建,其长度不可变。②真实的数组...

2020-04-29 16:49:10 91

原创 从0开始学Java,打卡第9天(20输出式学习计划)-7异常处理5个关键字

捕获异常:try:执行可能产生异常的代码catch:捕获异常finally:无论是否发生异常,代码总被执行抛出异常:throw:异常的生成阶段:手动抛出异常对象,抛相当于“return”出去了,但抛出去之前必须执行finally里的东西声明异常:throws:异常的处理方式:声明方法可能要抛出的各种异常类...

2020-04-28 20:30:16 95

原创 从0开始学Java,打卡第9天(20输出式学习计划)-6抛异常的方法的重写规则

子类重写的父类的方法,其抛出的异常类型只能是被重写的方法的异常类的子类或异常类型一样比如在多态的情况下,编译时处理异常,编译时向上转型,编译时处理父类的异常没出错,但在运行时候发现比父类的异常还大,catch都罩不住子类的异常,真正执行就会有问题。所以真正设计时重写的时候被重写的方法的子类方法的异常类型比父类方法的异常类型小,才能编译方法时处理父类的异常没错,运行时因为子类异常不大于父类异常,...

2020-04-28 19:55:52 72

原创 从0开始学Java,打卡第9天(20输出式学习计划)-5自定义异常类

异常类,既可以是现成的异常类,也可以是自己创建的异常类static final long serialVersionUID = -23929300L;通过这个全局常量可以唯一的来确定一个异常类的对象如何自定义一个异常类:1自定义的异常类继承现有的异常类2提供一个序列号3提供几个重载的构造器...

2020-04-28 19:42:33 83

原创 从0开始学Java,打卡第9天(20输出式学习计划)-4手动抛出一个异常对象

Java的异常处理:抓抛模型1抓:异常的处理,有两种方式(①try-catch-finally②throws + 异常的类型)2抛:一旦执行过程中,出现异常,会抛出一个异常类的对象。①自动的抛出②手动的抛出(throw + 异常类的对象)):throw new 异常类(参数);抛出的异常类型,若是RuntimeException,可以不显式的处理若是一个Exception,必须要显式...

2020-04-28 19:30:28 85

原创 从0开始学Java,打卡第9天(20输出式学习计划)-3异常处理方式二——声明抛出异常(逃避问题的方式)

声明抛出异常是Java处理异常的第二种方式如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。当在此方法内部出现异常的时候,会抛出一个异常类的对象,...

2020-04-28 19:10:40 93

原创 从0开始学Java,打卡第9天(20输出式学习计划)-2异常处理方式一try_catch_finally(解决问题的方式)

一、如何处理Exception的异常:Java提供的是异常处理的抓抛模型1“抛”:当我们执行代码时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并将此对象抛出。一旦抛出此异常类的对象,那么程序就终止执行此异常类的对象抛给方法的调用者2“抓”:抓住上一步抛出来的异常类的对象。如何抓?即为异常处理的方式Java 提供了两种方式来处理一个异常类的对象。处理的方式一:t...

2020-04-27 22:50:01 93

原创 从0开始学Java,打卡第9天(20输出式学习计划)-1Java异常概述及Throwable的体系结构

在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:Error:Java虚拟机...

2020-04-27 22:36:05 111

原创 从0开始学Java,打卡第8天(20输出式学习计划)-类的第五个成员:内部类

1相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类2内部类的分类:成员内部类(声明在类内部且方法外的)vs局部内部类(声明在类的方法里)3成员内部类:01是外部类的一个成员:①可以有修饰符(4个)②static final ③可以调用外部类的属性、方法02具体类的特点:①abstract ②还可以在其内部定义属性、方法、构造器4局部内部类:5关于内部类,大家...

2020-04-26 18:36:28 75

原创 从0开始学Java,打卡第8天(20输出式学习计划)-6接口(interface)

有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。接口(interface)是抽象方法和常量值的定义的集合。实现接口类:class SubClass implements InterfaceA{}一个类可以实现多个接口,接口也可以继承其它接口。常量:所有的常量都用public static final 修饰pu...

2020-04-25 14:16:47 77

原创 从0开始学Java,打卡第8天(20输出式学习计划)-5抽象类(abstract class)

随着继承层次中一个一个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计的非常抽象,以致于它没有具体的实例,这样的类叫做抽象类。1abstract修饰类,这个类叫抽象类1)不可被实例化(直接对此类new)2)抽象类有构造器(凡是类都有构造器)3)抽象方法所在的类一定是抽象类(如果不是抽象类,说明可以实例化,一旦实例化调用抽象方...

2020-04-24 23:48:25 78

原创 从0开始学Java,打卡第8天(20输出式学习计划)-4关键字:final

在Java中声明类、属性和方法时,可使用关键字final来修饰,表示“最终”。1final标记的类不能被继承。提高安全性,提高程序的可读性。String类、System类、StringBuffer类2final标记的方法不能被子类重写。Object类中的getClass()。3final标记的变量(成员变量或局部变量)即称为变量。常量用大写字符表示,且只能被赋值一次。final标记的成...

2020-04-24 16:01:38 93

原创 从0开始学Java,打卡第8天(20输出式学习计划)-3类的成员之四:初始化块

非静态代码块:没有static修饰的代码块1.可以有输出语句。2.可以对类的属性(静态的&非静态的)进行初始化操作,同时也可以调研本类声明的方法(静态的&非静态的)。3.若有多个非静态的代码块,那么按照从上到下的顺序依次执行。4.每次创建对象的时候,就会执行一次。5.非静态代码块的执行要早于构造器。静态代码块:用static修饰的代码块1.可以有输出语句2.可以对类...

2020-04-24 13:02:36 66

原创 从0开始学Java,打卡第8天(20输出式学习计划)-2main()方法的使用

由于Java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public,又因为Java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该方法接收一个String类型的数组参数,该数组中保存执行Java命令时传递给所运行的类的参数。Java运行的类名 args数组的第一个参数 第二个参数 第三个参数…public static void main(St...

2020-04-23 16:50:00 93

原创 从0开始学Java,打卡第8天(20输出式学习计划)-1单例设计模式-饿汉式、懒汉式

设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为pr...

2020-04-23 16:29:26 91

原创 从0开始学Java,打卡第7天(20输出式学习计划)-5static关键字修饰属性、方法

当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生升了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变...

2020-04-20 19:22:53 101

原创 从0开始学Java,打卡第7天(20输出式学习计划)-4Junit单元测试方法的使用

Junit单元测试类1当前工程下-右键build path-add libraries-Junit42在主类中,创建一个孔灿的无返回值的方法:(如:public void test1())用于代码的测试,方法上声明@Test3导入import org.junit.Test;4在test1()方法中,进行代码的编写。5测试:双击方法名,右键run as 然后 JUnit Test即...

2020-04-18 16:55:21 95

原创 从0开始学Java,打卡第7天(20输出式学习计划)-3包装类

包装类:针对八种基本定义相应的引用类型——包装类(封装类)有了类的特点,就可以调用类中的方法基本数据类型 包装类boolean Booleanbyte Byteshort Shortint Integerlong Longchar Characterfloat Floatdouble Double...

2020-04-18 16:49:01 113

原创 从0开始学Java,打卡第7天(20输出式学习计划)-2toString()方法的使用

java.lang.Object类的toString()方法的定义如下:public String toString(){return getClass().getName() + “@” + Integer.toHexString(hashCode());}当调用对象的引用时,会调用hashCode()方法来结合对象对应的属性的值算一个hash值,将hash值以16进制的形式输出,实际上...

2020-04-18 16:44:49 79

原创 从0开始学Java,打卡第7天(20输出式学习计划)-1String类的内存解析

在方法区里有字符串常量池,因为字符串用的比较多所以存放在这里字符串变量的常量实体是在字符串常量池里创建(若已创建则不需再创建)只要是new出来的都在堆空间,堆空间里的属性存放常量地址,也指向字符串常量池里的常量equals只比较属性的原因是属性可能不一样,两个同类的对象的方法肯定都是一样的。...

2020-04-18 13:28:36 72

原创 从0开始学Java,打卡第6天(20输出式学习计划)-4Object类

Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类public class Person{}等价于:public class Person extends Object{}1基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,反之返回false注:两端数据类型可以不同,在不同的情况下,也可以返回true...

2020-04-16 19:26:07 87

原创 从0开始学Java,打卡第6天(20输出式学习计划)-3面向对象特征之三:多态性

一、多态性,是面向对象中最重要的概念,在Java中有两种体现:1方法的重载(overload)和重写(overwrite)2对象的多态性——可以直接应用在抽象类和接口上。Java引用变量有两个类型:编译时类型和运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。若编译时类型和运行时类型不一致,就出现多态二、子类对象的多态性使用的前提:1要有类的继承...

2020-04-16 19:12:07 75

原创 从0开始学Java,打卡第6天(20输出式学习计划)-2关键字-super

关键字super:在Java类中使用super来调用父类中的指定操作:super可用于访问父类中定义的属性super可用于调用父类中定义的成员方法super可用于在子类构造方法中调用父类的构造器注意:尤其当子父类出现同名成员(属性、方法)时,可以用super进行区分super的追溯不仅限于直接父类super和this的用法相像,this代表本类对象的引用,super代表父类的内存空...

2020-04-16 16:25:30 97

原创 从0开始学Java,打卡第6天(20输出式学习计划)-1面向对象的特征二继承性、方法重写

一、面向对象的特征二:继承性1.为什么要设计继承性?2.通过“class A extend B”类实现类的继承。子类:A 父类(或基类 SuperClass):B3.子类继承父类以后,父类中声明的属性、方法,子类就可以获取到。私有的也可以获取到但不能直接用,可以通过父类公用的方法去使用明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直...

2020-04-14 20:42:36 87

原创 从0开始学Java,打卡第5天(20输出式学习计划)-11JavaBean_UML_package_import

JavaBean:JavaBean是一种语言写成的可重用组件。所谓JavaBean,是指符合如下标准的Java类:》类是公共的》有一个无参的公共的构造器》有属性,且有对应的get、set方法用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程...

2020-04-14 20:03:49 99

原创 从0开始学Java,打卡第5天(20输出式学习计划)-10关键字-this

this是什么?在Java中,this关键字比较难理解,它的作用和其词义很接近。它在方法内部使用,即这个方法所属对象的引用;它在构造器内部使用,表示该构造器正在初始化的对象。this表示当前对象,可以调用类的属性、方法和构造器什么时候使用this关键字呢?当在方法内需要用到调用该方法的对象时,就用this。this(参数):可以在构造器中通过“this(形参)”的方式显示的调用本类中...

2020-04-14 18:25:41 86

原创 从0开始学Java,打卡第5天(20输出式学习计划)-9类的成员之三:构造器(构造方法)

构造器(构造方法不是方法)的特征:它具有与类相同的名称它不声明返回值类型。(与声明为void)不同不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值构造器的作用:1创建对象;2给创建的对象的属性初始化赋值如:Order o = new Order(); Person p = new Person(Peter,1...

2020-04-13 15:59:53 80

原创 从0开始学Java,打卡第5天(20输出式学习计划)-8面向对象的封装性

一、面向对象的特征一:封装与隐藏1.当创建了类的对象以后,如果直接通过”对象.属性“的方式对相应的对象属性赋值的话,可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,而是通过”对象.方法“的形式,来控制对象对属性的访问。实际情况中,对属性的要求就可以通过方法来体现。解决的方法:(封装性的思想)将类的属性私有化,提供公共的方法(setter & getter)来实现调用。...

2020-04-10 23:26:02 74

原创 从0开始学Java,打卡第5天(20输出式学习计划)-7方法的参数值传递机制

方法,必须有其所在类或对象调用才有意义。若方法含有参数:形参:方法声明时,方法小括号内的参数实参:调用方法时,实际传给形参的参数值Java的实参值如何传入方法呢?Java里方法的参数传递方式只有一种:值传递。即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。规则:Java中的参数传递机制,值传递机制1)形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量。2)形...

2020-04-10 22:54:31 73

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除