自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTML5+CSS3-HTML5入门

,<meta>,<link>,<style>等,都属于头部标签可容纳的子标签。该标签必须在<head>之中,,一个HTML文档只能包含一个<title>标签,<title>开始标签和

2024-08-06 18:58:51 931

原创 Vector的底层结构剖析

2.Vector的底层也是一个数组,protected Object[] elementData;3.Vector 是线程同步的,即线程安全,Vector类的操作方法带有Synchronized.4.在开发中,需要线程同步时,考虑Vector.如果是无参默认空间为10,满后,按2倍扩容。1.Vector实现了List接口的集合。会先进行一个自动装箱,这里不演示了。如果指定大小,则直接按2倍扩。

2024-06-15 18:11:54 190

原创 ArrayList的底层分析

2.当创建ArrayList对象时,如果使用的是无参构造器,则初始elementDate容量为0,第一次添加,则扩容elementData到10,如果在需要扩容,则扩容elementData为1.5倍。3.如果使用的是指定大小的构造器,则初始elementData容量为指定大小,如果需要扩容,则直接扩容elementData为1.5倍。1.ArrayList中维护了一个Object类型的数组elementData.(ArrayList中的储存数组)步入另一个add方法。看看add方法咋运行。

2024-06-11 00:02:31 718

原创 List接口的使用

List接口是继承Collection的的子接口,List中也有一些常用方法和注意规则。1.继承List集合的类中元素有序(即添加的顺序和取出的顺序一致),且可重复。3.遍历List元素的三种方式:迭代器,增强for,普通for。2.List集合中每个元素都有其对应的顺序索引,即支持索引。

2024-06-10 23:17:34 115

原创 迭代器的使用

在调用iterator.Next()之前,必须先要调用iterator.hasNext()方法。会抛出NoSuchElementExption异常。Collection接口实现了该方法,获得了该方法内的迭代器。所有实现了Collection接口的实现类都有一个Iterable方法,即可以返回一个iterator对象。迭代器中有hasNext的方法进行判断集合或数组是否还存在下一个元素,然后再调用Next方法进行下移,并返回下移的元素。迭代器是遍历Collection实现子类的一种方法。

2024-06-05 18:20:57 187

原创 Collection接口使用原则和常用方法

1.collection实现的子类可以存放多种元素,每个元素可以是Object类及其子类。2.实现Collection实现类,有些是有序的(List),有些是无序的(set).3.Collection没有直接的实现类,都是从子接口List和Set实现的。Collection接口的常用方法,以实现子类ArrayList实现。

2024-06-05 00:05:42 232

原创 集合的介绍

集合Collection单列集合一览图。集合Map双列集合一览图。2.提供了一系列方便的操作对象的方法:add,remove,set,get等,方便增加,删除内容。集合指的是数据集中在一块。集合的好处体现在以下几点。1.可以动态保存任意多个对象,使用比较方便。

2024-06-04 23:54:37 152

原创 String类的使用

调用构造器的方法先指向堆中的对象,String类的本质是一个char数组,字符序列都保存在该数组中,在对象中,再由value数组指向常量池,如果要对比两个对象是否相等,用==的话,结果是false,因为s和s2不是同一个对象。s1先指向hello,然后s1="haha",这里不是改变hello的值,而是断开hello的指向,重新指向haha.因为String是final的。String是一个final类,代表不可变的字符序列,字符串是不可变的,一个字符串对象一旦被分配,其内容是不可变的。

2024-06-02 15:16:52 1452

原创 异常以异常处理机制

例如空指针访问,试图读取不存在的文件,网络连接中断等等,Exception分为两大类:运行时异常[程序运行时,发生的异常]和编译时异常[编程时,编译器检查出的异常]。如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。3.子类重写父类的方法时,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的异常一致,要么为父类抛出的异常的类型的子类型。

2024-06-02 15:13:34 617

原创 包装类的使用

Byte,Integer,Long,Float,Double,Short都继承与Number类实现Comparable接口。Boolean类实现了Comparable和Serializable接口,继承父类Object.和Character相同。意思是如果形参的数如果小于一个范围或大于一个范围,则返回一个新new 的Integer对象。包装类是针对基本数据类型相应的引入类型——包装类,有了类的特点,就可以调用包中的特点。第一个false的原因是,==判断的是对象地址是否相等,即是否为同一个对象。

2024-05-29 00:08:42 881

原创 注解的使用

注解(Annotation)也被称为元数据(Metadata),用于修饰解释,包,类,方法,属性,构造器,局部变量,等数据信息。和注释一样,不影响程序逻辑,但注释可以被编译或运行,相当于嵌入代码中的补充信息。注意事项:使用注解要在它前面加上@符号,并把注解当作一个修饰符使用,用于修饰它支持的程序。@Deprecated:用于表示某个元素(类,方法)已过时。基于Annotation的应用案例。是限定某个方法,重写父类方法,该注释只能用于方法。在{}写下要抑制的编译器警告命令。用于修饰类,字段,包,参数等。

2024-05-28 18:11:27 160

原创 枚举类的使用

2.传统的自定义写法public static final Seasn2 Spring =new Season2("春天""温暖"),简化成Spring("春天""温暖")。枚举对应英文(emumeration,简写enum),枚举是一组常量的集合,可以理解为枚举是一种特殊的类,里面包含一组有限特定的对象(对象是已经固定好的)。1.当我们使用enum关键字开发一个枚举类时,默认会继承Enum类,并且是一个final类。常规方法是先创建一个类,然后写下他的属性,getset方法,构造器,最后创建对象。

2024-05-28 17:43:11 322

原创 四种内部类

被嵌套的类称为内部类(inter class),嵌套其他类的类称为外部类(outer class),是我们类的第五大成员。匿名内部类的语法比较奇特,请大家注意,因为匿名内部类既是一个同时它本身也是一个对象,因此从语法上看,它既有定义类的特征,t对象的特征,对前面代码分析可以看出这个特点,因此可以调用匿名内部类方法。7.如果外部类和局部内部类成员重名时,默认遵守就近原则,如果想访问外部成员,则可以使用(外部类名+this.成员)去访问。6.外部类和内部类的方法和属性名重复,内部类访问的话,遵守就近原则。

2024-05-28 16:42:32 549

原创 接口的使用

接口和前面学的抽象类抽象方法有点像,接口就是一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。接口的需求,一般来说,接口只需要把该接口所需要的功能/规格定下来,然后让其他类来实现没有完成的抽象方法。2.接口的所有方法都是public,接口中的抽象方法可以省略abstract,即void 方法名();接口的价值在于:设计,设计好各种规范(方法),让其它类去实现这些方法,更加灵活。3.一个普通类实现接口,就必须将该接口的所有的方法实现。1.接口和继承实现的问题不同。

2024-05-27 20:49:29 275

原创 抽象类及抽象方法

也就是说,当遇到父类不确定的的问题,可以考虑将该方法设计为抽象(abstract)方法,所谓抽象方法就是没有实现的方法,没有实现的方法指,没有方法体。当父类的某些方法,需要声明,但是不知道如何在父类中实现时,可以将其声明为抽象方法,用abstract来修饰,那么这个类叫抽象类。(7)如果一个类继承了抽象类,则它必须要重写父类的抽象方法,否则该子类也声明为abstract。(2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法。(2)抽象类不一定全是抽象方法,可以有普通方法。

2024-05-21 00:05:15 141

原创 final关键字

包装类(Integer,Double,Float,Boolean等都是final),String也是final。(5)如果类不是final,但是有方法是final,该方法不能被重写,该类可以被继承。(2)final修饰的属性在定义时,必须赋初值,并且不能再修改。final指最后的,最终的,可以修饰类,属性,方法和局部变量。(3)当不希望类的某个属性的值被修改,用final修饰。(2)不希望父类某个方法被子类重写,用final修饰。(4)不希望,某个局部变量被修改,用final修饰。

2024-05-20 21:02:58 235 1

原创 代码块及静态代码块

在构造器中有默认的两句代码super()和调用代码块,super调用父类的无参构造,代码块则是执行一次,优先级大于构造器,原因是构造器实例化一个对象,会被隐性的调用,创建一个对象,就调用一次。static代码块也叫静态代码块,作用是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次,如果是普通代码块,没创建一个对象,就执行一次。小结:以上内容为代码块的概念,格式,调用原理,静态代码块的概念,调用原理,静态代码块和静态属性即普通代码块和普通属性和构造器的先后调用顺序即原理。调用的顺序是这么样的呢?

2024-05-16 00:18:54 464

原创 main方法语法

访问修饰符是public的原因是Java虚拟机要调用main方法,所以访问权限是public。该方法接受String类型的数组参数,该数组保存执行Java命令时所传递给所有运行的类的参数。static的作用是Java虚拟机可以直接调用main方法,不需要创建对象。在idea main方法中(String[] args)中进行传参。在程序传参如何循环遍历即可。

2024-05-15 23:16:58 112

原创 静态变量和静态方法

静态变量是该类的所有对象共享的变量任何一个该类的对象访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。以上内容写了有关静态变量即静态方法的概念,如何定义,什么情况下适合使用,静态变量在堆中的变化,静态方法/变量和普通方法/属性的区别。2.静态方法中只能访问到静态变量和静态方法,而普通方法都能访问,即既能访问普通成员,也可访问到静态成员。和静态变量相似,静态方法也是static关键字修饰的,该类中对象和方法名都能访问静态变量。静态变量和 ,实例属性(普通属性)的区别。

2024-05-15 00:09:14 307

原创 重写equals方法

equals方法是object类中的一个方法用于判断引用类型。在object类中判断的是地址是否相等,即两个对象是否为同一个,子类可以重写该方法例如Integer,String.equals只能判断引用类型,通过重写可以让equals属性内容是否相等。==如果判断的是引用类型,判断的是地址是否相等,即是不是同一对象。==是一个比较操作符,既可以判断基本类型,也可以判断引用类型。==如果判断的是基本类型,判断的是值是否相等。==比较操作符和equals的区别。

2024-05-13 00:27:44 551

原创 多态的应用

这里是父类Person,两个属性,一个say方法,用于返回属性信息。下面是两个子类,重写了say方法,并该有自己的特有方法。父类建立一个数组,存储父类和子类的属性信息。

2024-05-10 00:33:37 225 1

原创 自学JAVA-多态(oop编程)

Animal是dog的父类,animal是对象的引用,而=号右边的才是真正的对象,我们用父类anima对象引用l指向子类,Animal是编译类型,运行类型是new 出来的dog,所以左边和右边可以不一致。这里是一个方法重载,两个方法不同参数,调用了不同的方法,这是一种不同的形态,体现了方法的多态。instanceof比较操作符,用于判断运行类型是不是xx的类型或xx类型的子类型。需要注意的是,属性不能被重写,访问属性看的是编译类型而非运行类型。我父类的指向是子类的运行类型,不能是其他的对象。

2024-05-07 00:07:00 680

原创 自学Java-方法重写

父类中方法中方法重写是当父类的方法不能满足子类的需求,一般用于子类根据需要可以对父类的方法进行重写。方法覆盖就是子类和父类的方法名,返回类型,形参列表相同,即就是子类的这个方法覆盖了父类的该方法。1.子类的参数,方法名称要和父类一致,返回值和父类一直或是父类的子类。父类的修饰符比如说是public,子类的修饰符不能比public小。子类方法不能缩小父类方法的修饰符权限大小。

2024-04-28 23:40:58 140

原创 自学java-super关键字

那么重名时,为什么要用super呢,如果不用super,我们访问该成员时,查找关系是就近原则, 先查找子类是否有如果有并且可以访问就返回,在成员重名的情况下,我们在子类中找到就返回了,不会在查找父类。前言:我们在学继承的时候,已经初步认识了super关键字,我们调用子类构造器是必须要先调用父类的无参构造器,如果没有无参构造器,需要在子类构造器中用super去指定用哪个构造器,通过形参列表来确定。我们访问父类的属性和方法,但是不能访问父类private修饰符下的属性和方法。

2024-04-27 00:20:53 223

原创 自学JAVA(oop编程-继承)

我们在描写类的继承关系之时,要满足正常的逻辑关系,如猫类是动物类的子类,那么我说music类是动物类的子类,这从JAVA语法上是可以通过的,但是music和动物类没有一点关联,谈何继承成员呢。继承可以解决代码复用,当两个子类中出现相同的属性和方法时,我们可以抽象出一个父类,在父类中定义属性和方法,所以的子类不需要在重新定义,只需要。我们在分配内存信息时,先给最上面的object类分配属性和方法的内存空间,下来是父类,最后是子类。在上图中,A类作为B类和C类的父类,D类的父类是B类,E类的父类是C类。

2024-04-26 22:42:31 885 2

空空如也

空空如也

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

TA关注的人

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