阶段学习总结

1:内部类

内部类:一个类中定义另一个类,在A类中定义了一个B类,A类称为B类的外部类,B类称为A类的内部类

分类:

成员内部类:在一个类的成员位置定义的类(类中方法外)

局部内部类:在一个类的局部位置定义的类 (方法定义中)

成员内部类的特点: 成员内部类的成员方法可以直接访问外部类的成员包括私有

外部类的成员方法:要去访问成员内部类的成员方法,必须通过成员内部类的对象来访问

关于成员内部类的常用的修饰符----private----保证数据的安全性,不让这外部类直接访问内部类成员

局部内部类:在外部类的局部位置,方法定义中

特点:  不管是局部内部类/成员内部类,里面的成员都可以直接访问外部类的成员包括私有

>>>>>匿名内部类:就是没有名字的类-------------匿名内部类只是内部类的一种简化格式

2:Object类

Object:所有Java类的父类(自定义的类或者jdk提供的类),也称为"超类" 任何类默认继承自Object

常用的功能:--------- 

>>>public String toString():本身的含义 :返回对象的字符串表示形式(直接输出对象的名称,就是地址值),结果应该是一个简明扼要的表达,容易让人阅读。 建议所有子类覆盖此方法

>>>public final Class getClass():使用对象名调用getClass():获取正在运行的类或者接口(字节码文件对象) , 也称为"Class类对象"

>>>public int hashCode() (了解:哈希算法---提供哈希表) 返回对象的哈希码值 (理解为 "地址值",不是实际意义的地址值) , 每一个对象的哈希码值不同的

Object类的equals:public boolean equals(Object obj)------------比较两个对象是否相同

>>>>>>>>>>>>:==和equals区别 

==:  基本类型:比较的是数据值是否相同

       引用类型:比较的是地址值是否相同

equals():Object类的方法 ------- public boolean equals(Object obj) { * return (this == obj); /t/his--->就是p obj---->向上转型 p2 ==:比较是两个对象地址值 } 本身默认比较的是两个对象的地址值是否相同;当多个对象的成员信息是相同,认为是同一个,所以Object类需要建议所有的子类要重写equals()比较的是对象的成员信息是否相同几乎jdk中的所有类都基本重写equals()方法,所以比较的是这些类的成员内容是否相同!


3:String类

                代表字符串,字符串是一个常量,一旦被创建,其值不改变(地址不变,除非重新赋值)

常用的String类的构造方法

>>>public String() :空参构造

>>>public String(char[] value):将字符数组构造出字符串 (如果已知字符数组char[],----构造方法--                                                   String) (重点)

>>>public String(char[] value,int index,int length):将一部分字符数组转换成字符串

>>>public String(byte[] bytes) :将字节数组构造字符串 (如果已知字节数组byte[]-----String) (重点) 

>>>public String(String original):将一个字符串值存储进去,构造成一个字符串对象 

例题:

>>>>数组中有没有length()?字符串String类中有没有length()/集合中有没有length()方法? 

        数组没有length(),只有length属性 、 String的length():获取字符串长度

        集合没有, size():获取集合长度

>>>>>>>>>>>字符串变量相加:常量池是否存在,不存在,开空间

>>>>>>>>>>>字符串常量相加:先拼接,在常量池中找,有--->返回地址;否则,开辟空间

重点>>>String类型作为方法形式参数的特点String类作为引用类型,当成为方法的形式参数,和基本类型的效果一致: * 形式参数的改变,不影响实际参数 * String是最为特殊的一种引用类型, 其他的引用类型,都是形式参数改变直接影响实际参数!比如StringBuffer

String类常用获取功能以及判断功能

public char charAt(int index):获取指定索引出的字符

public String concat(String str):字符串拼接功能

boolean contains(String s):判断字符串中是否包含指定的某个字符或者某个子字符串(按照第一个字符判断)

public boolean endsWith(String suffix):判断此字符串是否一指定的字符串结尾

public boolean startsWdith(String prefix):判断此字符串是否一指定的字符串开头

public boolean equals(Object anObject):比较是两个字符串的内容是否相同(必须一样)

public boolean equalsIgnoreCase(String anotherString):比较两个字符串内容是否相同,忽略大小                                                                                        写进行比较

public boolean isEmpty():判断字符串是否空(是否为空内容)

int length():获取字符串长度

public int indexOf(int ch):查询字符串中的某个字符第一次出现的索引值

System.out.println("------------------------------------------------------------------------------------------------") ;

String类的常用的转换功能

public char[] toCharArray():将字符串转换成字符数组

byte[] getBytes() :使用平台默认的字符集(idea:utf-8:一个中文三个字节) 将字符串数据----变成字节数组 (编码)

public String[] split(String regex):使用分割符号---拆分成字符串数组 (分割功能)

public String toLowerCase():将字符串转换成小写

public String toUpperCase():将字符串转换成大写

public static String valueOf(int i) :这个方法参数可以是任意的Java类型:基本类型或者Object 万能方法:将任何类型转换成String

System.out.println("------------------------------------------------------------------------------------------------") ;

String类的截取功能

public String substring(int beginIndex):从指定位置处开始截取,默认截取到末尾 

public String substring(int beginIndex,int endIndex):从指定位置开始截取,到指定位置结束,但是不包括endIndex位置,endIndex-1的位置(包前不包后)

Java语言中,只要某个成员方法涉及角标问题,而且有开始索引,有最终索引,不包含最终索引值,最终索引-1的位置 * javaScript语言:跟Java语言这个是一样的

System.out.println("------------------------------------------------------------------------------------------------") ;

String类的其他功能(有一个功能重点:考察源码:按照字典顺序比较) * public String replace(char oldChar,char newChar):替换功能 替换字符 * public String replace(String oldStr,String newStr):替换功能 替换字符串 * * public String trim():去除字符串的前后端的空格

StringBuffer:线程安全的可变的字符串缓冲区,支持可变的字符序列

常用的构造方法: 

StringBuffer():空参构造:创建一个支持缓冲区对象

StringBuffer(String str):将指定的字符串存储在字符串缓冲区中 (将String---StringBuffer) 

这个类的部分功能和String :  int length(): 获取字符串缓冲区的长度

public int capacity():获取字符串缓冲区的容量 默认容量 16个字符,超过这个容量,会自己分配,使用的新的字符串的长度+16

System.out.println("------------------------------------------------------------------------------------------------") ;

StringBuffer常用的功能

public StringBuffer append(任意类型数据):添加任何类型数据到字符串缓冲区中 返回值字符串缓                                                                   冲区本身

public StringBuffer insert(int offset,String xx):插入:在指定位置的前面插入一个新的字符序列 public StringBuffer reverse():将字符串缓冲区字符序列反转

System.out.println("------------------------------------------------------------------------------------------------") ;

类型转换:StringBuffer和String的类型转换--String---->StringBuffer,目的为了StringBuffer的特有功能--------StringBuffer--->String,结果需要是String类型

4:Character类
char类型 包装类类型---构造方法-----Character(char value) :将一个char类型的字符值构造成Character类对象

常用成员方法:

判断字符是否为大写字母字符-------public static boolean isUpperCase(char ch)

判断字符是否为小写字母字符----public static boolean isLowerCase(char ch)

判断字符是否为数字字符----public static boolean isDigit(char ch)

5:Date

构造方法:

public Date():无参构造方法---创建日期对象,获取当前系统时间的日期格式--包含星期年份月份月中的日期... (获取当前日期:使用这个)

public Date(long date):创建日期对象,和1970年1月1日时间有关系 00:00:00

成员方法:public long getTime():获取时间的毫秒值

Date重点:日期文本格式和Date如何转换?  

String日期文本格式 "2022-8-13"------>java.util.Date 日期格式

Date日期格式 转换成 String----使用中间桥梁:DateFormat类是一个抽象类,不能实例化,jdk提供更具体的子类:SimpleDateFormat

构造方法----public SimpleDateFormat(String pattern)yyyy:年 MM:月 dd:月中日期 HH:小时 mm:分钟 ss:秒

成员方法-------Date---->String public String foramt(Date date) :格式化

String--->Date: public Date parse(String dateStr) throws ParseException: 解析这个本身可能出现异常,如果解析的字符串的格式和 pattern参数的模式匹配,就出错了,解析失败

public SimpleDateFormat(String pattern)

String s = "2008-5-12"

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日")

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ") 

6:Random

java.util.Random:随机数生成器

根据int变量n的值来获取随机数数字,范围是[1,n],可以取一也可以取n

构造方法:

创建随机数生成器对象----Random() 创建对象之后,调用nextInt()/nextInt(int n):每次随机数数字不一样的

public Random(long seed) :调用nextInt()/nextInt(int n):每次随机数数字一样,不推荐用这个

成员方法

int nextInt():int类型的范围获取

int nextInt(int n):[0,n) :范围

7:Collection

使用集合专有遍历方式"迭代器",将5个不同的学生进行遍历,获取信息

集合的专有遍历方式----"迭代器"

Iterator<E> iterator()

返回值是一个接口: iterator: Object next()返回迭代中的下一个元素。 (返回任意java类型)  

boolean hasNext():判断功能:判断迭代器中是否下一个元素

返回true,表示存在

返回false,不存在

泛型:<引用类型> 集合中使用的

模拟 Java创建数组的时候就明确了数据类型

String[] str = {"hello","world",100}------------报错

int[] arr = {10,20,30,11,22,"hello"}------------报错

1)创建集合的时候,就明确集合存储的引用类型的数据类型是什么-

2)可以有效防止程序不安全,通过的迭代器获取数据 next()--->返回值E (Object任意Java类型),向下转型可能出问题,心里明确迭代器里面现在放的什么类型

3)不需要在强转了,避免了强转类型转换

8:List

List集合的特点:

1)元素可以重复

2)存储和取出一致(有序性)

List集合 继承Collection接口,目前存储字符串,并遍历? 有几种方式

Objec[] toArray() 将集合转换成对象数组

Iterator<E> iterator() Collection的迭代器

自己的特有的遍历方式

        后面这两个:List<E></>集合有功能

1)普通for循环: 使用集合 int size():获取元素数  E get(int index):通过角标获取元素

2)集合的列表迭代器ListIterator listiterator()

ListIterator: boolean hasNext():是否有下一个元素---- E next():获取下一个元素

>>>>>>>>>>最终的写法-------开发中写的,增强for循环:

jdk5的新特性------增强for循环的出现目的:是为了代替迭代器的使用(为了简化代码的书写),一般在集合中用 * 增强for循环遍历数组少,数组:建议普通循环

                 for(集合中存储的类型 变量名:集合对象或者数组对象){

                         System.out,println(变量名)

                         }

LinkedList集合:底层数据结构是一种链表,链表的特点:查询慢(每次需要冲链表头查询到末尾)

特点:

        增删快

        线程不安全的,不同步,执行比较高

特有功能:

public void addFirst(E e):添加到链表的开头

public void addLast(E e):添加到链表的末尾

public E getFirst():获取链表的第一个元素

public E getLast():获取链表的末尾的元素

public E removeFirst():删除链表第一个元素

public E removeLast():删除链表的最后一个元素

public void push(E e):推送到链表开头(压栈)---等价于public void addFirst(E e):添加到链表的开头

public E pop():弹出最后一个元素(弹栈) 等于removeFirst() :将第一个元素删除并返回

Set

Set集合的特点:保证元素唯一,而且不能保证迭代次序;唯一,无序

HashSet<Student>如果存储的是自定义对象,必须自定义的类要重写Object类的equals和hashCode(),否则不是唯一的

Vector
集合底层数据结构数组,是List集合接口子实现类之一

它有自己的特有功能

添加元素----public void addElement(E obj):添加任意元素 如果E类型确定了,就只能添加这个数据类型

类似于 集合的通用功能add(E obj)

遍历元素方式1 ----public Enumeration<E> elements():获取组件(返回值是枚举接口---产生一系列元素)

类似于Collection集合的Iterator iterator()迭代器

Enumeration枚举接口

boolean hasMoreElements() 判断是有更多的元素 --->类似于Iterator迭代器里面的hasNext()  

E nextElement() :获取下个元素  --->类似于Iterator迭代器里面的next():获取下一个元素

遍历元素方式2 -------public E elementAt(int index)通过角标获取元素 ---类似于List集合的public E get(int index)

结合 int size()获取集合长度(集合元素数量)

这个集合特点:底层数据结构数组(查询,更新元素比较快,添加,删除比较麻烦的)

线程安全的类---同步的---执行效率比较低(多线程环境下使用安全性比较大的类)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值