JAVA高级阶段技术总结/知识点梳理/个人总结/关于java-se技术的解析(看法)/面试题解析

Objeck

简介

Object类是Javajava.lang包下的核心类,Object类是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类; 即一个类没有爸爸的话,Object就是他的爸爸。无需手动调用,系统默认的。

方法

Object类的常用方法(其他的不了解)

方法名称 类型 描述
toString( ) 普通 取得对象信息
equals() 普通 对象内容比较
toString方法
toString():1.用于返回对象成员变量的字符串表示。
2.在使用对象直接输出的时候,默认输出的是一个对象在堆内存上的地址值;所以一般我们要想输出对象的时候不要地址值,要字符串,就直接在类中重写toString方法。即

public String toString(){
   
return this.成员变量+this.成员变量//有几个写几个就行了  在我们心爱的idea,快捷键alt+insert有toString重写或者点击右键Generate也有。
}

equals方法

equals():对象比较
基本数据类型的比较用 == (如: a == 3,b == 4, a == b,比较的是值是否相等)
引用类型数据比较:调用 equals()方法进行比较
重点在,object中equals默认是比较的地址值而==也是比较的地址值。那么我们怎么比较内容呢。
那就是重写equals方法。
重写方法的快捷方式和上面一样。
其中String类是默认重写了object类中的equals方法,所以比较的是内容。

String

简介

char类型只能表示一个字符。为了表示一串字符,使用String的数据类型。

String类是Java库中预定义的类,不是基本类型,是引用类型。

方法

String对象的简单方法:

length() 返回字符串的字符数
chatAt(index) 返回字符串s中指定位的字符
concat(s1) 将本字符串与s1连接,返回一个新字符串
toUpperCase() 返回一个新字符串,其中所有字母大写
toLowerCase() 返回一个新字符串,其中所有字母小写
trim() 返回一个新字符串,去掉了两边的空白字符

字符串的比较:

equals(s1) 该字符串与s1相等,返回true
equalsIgnoreCase(s1) 该字符串与s1相等,返回true,不区分大小写
compareTo(s1) 返回一个大于0、等于0、小于0的整数
compareToIgnoreCase(s1) 返回一个大于0、等于0、小于0的整数,比较时不区分大小写
startsWith(prefix) 如果字符串以特定前缀开始,返回true
endsWith(suffix) 如果字符串以特定后缀结束,返回true
contains(s1) 如果s1是该字符串的子串,返回true
“==”操作符:只能判断两个字符串是否指向同一个对象。

equals():判断字符变量的内容是否相等
获得子字符串:

substring(beginIndex) 返回字符串的子串,从beginIndex的字符开始到字符的结尾
substring(beginIndex,endIndex) 注意都是小写,从beginIndex到endIndex-1的字符,[ , )

StringBuilder

简介

StringBuilder封装可变的字符串, StringBuilder对象创建后,可以通过调用方法,修改字符串的
内容。
StringBuilder构造器函数
public StringBuilder();
public StringBuilder(String str);

方法

因为string中的内容的不可以改变的,可以看一下上面string中的方法。基本的就是返回新的或者是和其他的拼接并没有改变原有的。所以当我们想改变的时候我们就用StringBuilderL类中的方法类来改变。

append

即在字符串后面添加新的字符串。
.append(“新字符串”);

insert

在指定位置插入,然后其他的向后移。
.insert(1,“新字符串”);即在1索引位置插入新字符串。其中的1表示你要插入的位置(索引)。

delete

删除指定位置的字符串。
.delete(1,2)即删除1索引上的内容
delete(1,3)即删除1索引和2索引上的内容

reverse

反转
.reverse()即把字符串反过来

Date

简介

java.util.Date用于封装日期和时间信息。
Date date = new Date();
date中的日期为系统的当前时间。
重写了toString方法,输出内容为日期。
Date类中大多数用于操作时间分量的方法都被Calendar取代。

方法

getTime

.getTime();即获取当前的时间毫秒值。

setTime

.setTime(毫秒值);即在当前谁调用这个方法的时间上加上这么多毫秒来改变时间。

Calendar(日历)

简介

java.util.Calendar类,用于封装日历信息,包含了日期,主要用于操作时间分量。
Calendar是抽象类, 可以通过其工厂方法获取到其子类的对象。
java.util.GregorianCalendar是Calendar的最主要使用的实现类,其对应世界上大多数国家/地区使
用的标准日历。。

方法

是抽象类所以不能直接创建Calendar对象

get

获取时间分量
.get(Calendar.YEAR)即获取谁调用这个方法的年

set

设置时间分量
.set(Calendar.YEAR , 2021);
.set(Calendar.MONTH , 10);
.set(Calendar.DAY_OF_MONTH , 11);
.set(Calendar.HOUR_OF_DAY , 12);
即设置时间为2021-10-11 12:00:00

add

增加时间分量
.add(Calendar.YEAR , 10);即在这个时间分量年上加10(加10年)

getTime

获取时间毫秒值

8种包装类

在这里插入图片描述基本数据类型和包装类的转换,依靠编译器的“预处理”完成。
即包装类和基本数据类型会自动转换(自动装箱,自动拆箱)
需要注意包装类可以是null。 基本数据类型有自己的默认值。

基本数据类型加value

.基本数据类型Value();即要把你现在的转换成基本数据类型
.floatValue();即把调用方法的类型转换成float类型

BigDecimal

简介

java中的浮点数类型(float , double)在运算时会有舍入误差,如果希望得到精确的运算结果,可以
使用java.math.BigDecimal类

方法

.add 加法
a.add(b)即a和b相加
.subtract 减法
.multiply 乘法
.divide 除法
a.divide(b,设置精度)即a/b并保留多少位

BigInteger

简介

jdk中提供的整数类型(int ,long )的储值范围有限,当需要进行很大的整数运算时,可以使用
java.math.BigInteger,理论上BigInteger数据范围只受内存容量的限定。

方法

方法和BigDecimal一样

集合

jdk中提供了将对象存储于特定数据结构的容器,被称为集合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Collection

简介

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集

方法

public boolean add(): 把给定的对象添加到当前集合中 。
public void clear() :清空集合中所有的元素。
public boolean remove(): 把给定的对象在当前集合中删除。
public boolean contains(): 判断当前集合中是否包含给定的对象。
public boolean isEmpty(): 判断当前集合是否为空。
public int size(): 返回集合中元素的个数。
public Object[] toArray(): 把集合中的元素,存储到数组中。

.add(你要添加的东西);即在集合中添加
.clear();清除元素
.remove(一个你想删除的元素);即输入一个你想从集合删除的元素,这个元素就会从集合中被删除
.contains(输入一个元素);即输入一个你想判断是否这个是集合中的元素。
.isEmpty():即判断是否集合为空
.size():即看集合中元素的个数

List

简介

List接口的实现类实现了Collection接口中的方法。
重写了父类的方法
其中list集合中的元素是 有顺序的 不可重复的。

方法

get(i)得到索引位置的元素
.get(1);即获取索引位置1中的元素

set(i, obj)将索引位置上的元素修改为你想要的元素
.set(1.“a“);将索引位置上的元素修改为a

add(i ,obj)在索引位置上加入元素
.add(1.a);在索引位置上元素后加入一个元素,然后后面的元素向后移动一格
remove(i)删除指定位置上的元素
subList(E e)获取子集合,即获取集合的某一部分然后组成集合

ArrayList & LinkedList

简介

List接口的两个实现类分别用ArrayList , LinkedList
ArrayList用动态数组实现,适合于随机访问。
LinkedList用链表实现,适合于插入和删除。
ArrayList和LinkedList的方法一样,但是性能不同。

迭代器

简介

所有Collection的实现类,都实现了iterator方法, 该方法返回一个Iterator接口类型的对象,用于
对于集合中的元素进行迭代遍历。

方法

boolean hasNext(); // 判断是否还有下一个元素
E next(); // 取出下一个元素
default void remove();// 在原集合中返回刚刚

在这里插入图片描述

泛型

简介

泛型是java 1.5引入的新特性,泛型的本质是参数类型化。在类,接口和方法的定义过程中,所操
作的数据类型被传入的参数指定。
java泛型机制广泛低应用于集合中,所有集合类型都带有泛型, 在创建集合对象的时候,指定集合
中元素的类型。
java编译器根据泛型的类型,对集合中元素进行类型检查,减少运行的时候错误。

list<String>list//其中集合只能放字符串类型的

Queue - 队列

简介

队列是常用的数据结构,可以将队列堪称是特殊的线性表,队列只能从一端添加元素(offer),另
一端取出元素(poll)
队列遵循先进先出的原则(FIFO, first in first out)
Queue是jdk中的接口, LinkedList是Queue的实现类。

即把这个想象成一个打通的山洞

Dueue - 双端队列,模拟栈

简介

Deque是Queue的子接口, 被称为双端队列,即可以从队列的两端入队(offer),出队
(poll),LinkedList实现了该接口。
将Deque限定为为只能从一段出队和入队,就可以模拟栈的数据结构,栈数据结构,入栈为push,
出栈为pop.
栈遵循先进后出的原则FILO(first int last out)

即把这个想象成一个没打通的山洞

Comparable接口 & 接口排序

Comparable 接口

针对对象数组或者集合中的元素进行排序的时候,首先需要确定元素的比较逻辑,制定比较的
比较规则。
jdk中的Comparable接口 , 定义了对象间大小比较的方法, 需要大小比较的类,可以实现该
接口。
public int compareTo(T o);
返回正数: this > o
返回负数: this < o
返回0 : this == o

Collections类中提供了一些对集合操作的方法,其中比较常用的有对List的排序方法。
如果要使用Collections.sort()方法进行对集合中的元素排序,那么要求集合中的元素是实现类
Comparable接口的,即对象可以比较大小。

Set

Set 用于存储不重复的对象集合, set集合中存储的对象,不存在两个对象的equals相等。
HashSet 和 TreeSet是Set集合的两个常用实现类。
HashSet 用hash表实现了Set集合。
TreeSet 用排序二叉树实现了Set集合。
Set集合中的元素,不能和顺序的下标对应,无法从Set集合中获取除特定的元素。

Map

简介

Map集合主要用于存储“key-value”键值对的数据,key可以看作是value的索引,通过key,查找到
value值, key不能重复。
Map是一个interface , 有多种实现类,比如hash表实现的HashMap ,排序二叉树实现的TreeMap

HashMap是Map比较常用的实现类。

方法

.get(key);即可以得到对应的value
put(key ,value);往集合里面放入元素
remove(key);即删除对应的value

异常

简介

1.程序出现异常时正常现象【就跟人会生病一样】
2.Java中异常类Throwable【类】是顶级异常类
3.Throwable【类】有两个子类:
(1)Error【错误】
(2)Exception【异常】
在这里插入图片描述

Excaion

方法

try…catch

一段代码,该段代码就是捕获异常的范围。
在执行try语句块的过程中,该段代码可能会抛出一种或多种异常,catch语句块可以分别对不同的
异常做处理。
如果try语句块没有发生,那么所有的catch语句都被忽略,不被执行。
catch语句块中是对异常处理的代码,不同的异常,可以多个不同的catch语句块。
当由多个catch语句的块的是,应该先捕获小类型的异常,或捕获大类型的异常。

throw & throws

当程序发生异常,不能处理的时候,会抛出对应的异常。
可以通过throw 语句 ,将异常抛出,那么被抛出的异常,可以让其他代码来捕获这个异常。如果需
要自行抛出异常,需要使用“throw”关键字,并且要创建出抛出的异常类的对象。
throw new XXException();
类中有很多方法,当在类中的方法中使用到了throw 语句抛出了异常,那么在这些方法的声明过程
中,需要使用throws 关键字,声明该方法抛出的异常。
public void add() thows XXExcedption{
// code
}
如果在方面声明的时候,使用throws抛出了异常,那么在调用方法的时候,就需要捕获异常,或者
继续抛出异常。

那么都是异常他们之间有什么区别呢?

try…catch
是当我们觉得想要去排除代码中的异常时使用的;比如你在try{
语句一(有异常)
语句二(无异常)

}catch{}
语句体三
然后当我们执行时,语句一有异常,然后语句二就不会执行。语句三继续执行
所以我们在用时,只是排除try中的代码,try外面的可以继续执行这是非常智能的。
throw&throws
程序员在构建方法时,比如student类时,成员变量有年龄。然后程序员想年龄在一定范围内是合适的,其他范围是不合适的。当我们刚才开始的时候是输出提醒非法。“非法输入”。而这种语句的需要给的对象是看不懂代码的人看的。而我们程序员肯定不能这么low啊!当别的程序员来调用我们这个类的方法时,别的程序员调用方法时,发现咦怎么报错了啊。那么这个异常就是我们给他提醒的。然后系统就会给出这个异常的错误的来源。方便查看改正。就比如说当我们在学习时,我们是不是经常调用方法啊。然后我们输入一些参数不对时。系统是不是会提醒啊。然后我们就会Ctrl加B去看源码。原理是一样的。
所以当我们在构建方法时,对于可能会出现的异常。我们输入抛出异常语句,这样别人用时有不对的地方就会提醒。
其中throw是在方法体内,throws是在方法体上面。

try…catch…finally

即在有finally时无论try中是否有异常都会执行下去

自定义异常

简介

程序员可以自定义异常,解决自己程序中的一些特定内容:
public class GenderErrorException extends Exception{
// 重写异常类的方法
}

// 类 继承了Exception, 说明这个类是一个异常类型。
public class GenderException extends Exception {
   
// ** 定义构造函数
public GenderException(){
   
super();
}
public GenderException(String str){
   
super(str); // 调用父类的有一个参数的构造函数。
}
// ** 重写一些方法
@Override
public String getMessage() {
   
return "性别错误。性别只能是男生或女生。" ;//super.getMessage();
}
@Override
public void printStackTrace() {
   
super.printStackTrace(); // 调用父类的方法
}
}

使用

public class ExceptionDemo5 {
   
private String sex ;
public static void main(String[] args) {
   
ExceptionDemo5 ed5 = new ExceptionDemo5();
try {
   
ed5.setSex("女");
}catch (GenderException e){
   
e.printStackTrace();

}
}
public void setSex(String sex
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值