java 基础 。知识点统一
应用数据类型默认值为null
Class(类)
接口(interface)
数组
一维数组
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。
二维数组
数组中的元素还是数组
声明和创建
静态
String[][] s=new String[][]{{"www","sssss"},{"www","sssss"}};
动态
第一种方式 int[][] ss=new int[3][2];//3表示二维数组的长度,2表示二维数组里面的一维数组的长度 第二种方式 int[][] ss=new int[3][]; ss[0] =new int[]; ss[0] =new int[]; ss[0] =new int[];
常见异常
下角标越界
异常代码:ArrayIndexOutOfBoodsException
空指针异常
NullPointerException
基本数据类型默认值为0
数值型
整数型
byte(1字节)
byte储存空间为1字节 1B(byte,字节)= 8 bit(见下文); 表数范围 -128 ~ 127-128 = - (2^7) 127 = 2^7 – 1 //后面我们详细说明 字节类型
int(2字节)
整型
short(2字节)
类型:短整型 表数范围 -215 ~215-1
long(4字节)
长整型
浮点型
获取随机数
Math.randm();
布尔型
字符型
Throwable
Error
没有针对性的代码可以进行处理
子主题 2
Exception
有针对性的代码可以进行处理
编译时异常
FileNotFoundException
文件找不到异常
运行时异常
NullPointerException
空指针异常
ArrayIndexOutOfBoundsException
下角标越界
StackOverflowError
栈溢出
ArithmeticException
算数运算异常
抓抛模型
抛 :当我们执行代码的时候,一旦遇到异常代码,系统会根据异常的类型创建对应的异常类的对象并抛出。
抛出给方法的调用者,同时终止程序的运行。 ①系统向往抛异常 ②手动向外抛异常
- try-catch-finally
格式
try{
可能会发生异常的代码
}
catch(异常的类型1 变量){
异常的处理方式1;
}catch(异常的类型2 变量){
异常的处理方式2;
}
......
finally{
一定会执行的代码;
}
说明:
catch后面的异常类型会和抛出的异常的对象进行类型匹配。一旦匹配成功则执行相应的异常处理的代码。
当catch中的代码执行完毕时将再执行finally中的代码。finally中的代码再执行完毕后跳出该结构继续向下执行其它代码。
2.可以有多个catch语句,但是catch后面的类型如果有子父类关系,子类在上父类在下。
3.可以写成try-catch-finally, try-catch, try-finally三种结构
4.finally可以省略。如果有finally那么其中的代码一定会执行。
5.常处理的异常方式 : getMessage() :输出异常错误信息的名称
printStackTrace() : 输出异常的详细信息
注意 : 在实际开发中一般我们都不会处理运行时异常。
- finally
再谈finally: finally中的代码一定会执行
1.无论异常是否能捕获到或者处理异常时再次发生异常,finally都会执行。
2.就算在try中或者catch中已经调用return了,finally中的代码也一定会执行。
- throws
}
抛给方法的调用者进行处理。
1.throws自己不处理异常,将异常向上抛,抛给方法的调用者处理。最后还是需要try-catch进行处理。
2.try-catch是真正的处理了异常
如果在main中调用了多个方法而且传输了数据。一旦因为数据的错误导致的异常,中间的所有的方法都不能进行处理。
这个异常必须由传输数据的那个人来进行处理。
1.异常必须处理时不能使用
2.如果父类被重写的方法没能抛出异常,那么子类重写的方法也不能抛出异常
- throw
- 【throws】和【throw】的区别?
成员变量和局部变量的区别 成员变量可以是用权限修饰词 局部变量不可以使用权限修饰词 成员变量在类中,方法之外的声明的参数 局部变量声明在方法,构造器和形参当中 成员变量是有默认值的, 局部变量是没有默认值的
成员变量
内存创建在堆中 先有默认值然后赋值
局部变量
内存创建在栈中
权限修饰符
private
public
缺省的
此修饰符就是什么都不写默认的
protected
形参
写在方法上的变量
1、可变形参 int ... number
方法的可变形参和相同类型数组的形参不构成方法的重载,应为可变形参的底层就是数组
一个方法中只能有一个可变形参
return
break
作用
创建对象
给对象进行初始化
格式
创建对象必调用构造器
说明
什么是序列化?
在Java中,对象序列化意味着将对象表示为字节序列。字节包括对象的数据和信息。序列化对象可以写入文件/数据库,并从文件/数据库中读取并反序列化。表示对象及其数据的字节可用于在内存中重新创建对象。 (我自己的理解序列化就是将字节序列也就是将文件转为二进制字节,然后用io写入写出的一个过程) 序列化:文件的写出 反序列化:文件的写入
作用
多态的前提
一种事物的多种行态
动态绑定
这是一个技术
多态的体现
广义上
方法的重写
方法的重载
静态绑定
编译时多态
运行时就可以确定调用的哪个方法
子类对象的多态性
子类对象的多态性
面向对象生性之继承性
格式
A extends B A类(继承、扩展)B类
A :子类(subclass)
B:父类,超类,基类,superclass
继承的好处
1、减少了代码的重复、提高了地面的复用性,提高了扩展性、为多态提供了前提
2、子类继承父类以后就拥有了父类中的属性和方法。(构造器不能被继承)
3、父类中的属性可能因为封装子类不能再直接进行调用,但是可以通过间接的方式进行调用
所以我们认为被封装后的属性还是被继承到了
4、一个子类只能有一个父类,一个父类可以有很多子类
父类的相对概念。父类为直接父类和间接父类
5、子类不仅可以继承直接父类中的属性和方法还可以继承间接父类中的属性和方法
6、一个类如果没有显示的继承其他类那么默认继承object类。(objet是所有类的基类)
7、子类除了可以继承父类中的属性和方法,还可以创建自己的属性和方法
成员变量
可以分为
同一类的多个对象,各自拥有一份实例变量,共同拥有一份类变量
但一个对象对类变量进行赋值或者修改后,其他对象看到的类变量
设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式
单例设计模式
class A{//线程是不安全的
private A(){}
private static A a=null;
public static A getA(){
if(a==null){
a=new A();
}
return a;
}
}
class A{//线程是安全的
private A(){}
private static A a=new A();
public static A geta(){
return a;
}
}
代理设计模式
工厂设计模式
观察者设计模式
装饰设计模式
策略模式
说明
枚举类 : 如果一个类的对象是可数多个的,那么这个类叫做枚举类。
一 自定义枚举类(jdk1.5之前)
二 使用enum关键字实现枚举类(jdk1.5)
三 常用方法
四 实现接口的枚举类
实现枚举类
格式
使用enum关键字实现枚举类(jdk1.5)
格式 :enum 类名{ }
构造器只能使用private关键字修饰
③枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾).
列出的实例系统会自动添加 public static final 修饰
④JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式,
case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定
枚举类的常用方法
如不是,会有运行时异常:IllegalArgumentException。
实现接口的枚举类 (每一个对象都可以重写接口中的方法)
常见的三个注解
@Override
限定重写父类方法, 该注解只能用于方法
@Deprecated
用于表示某个程序元素(类, 方法等)已过时
@SuppressWarnings
抑制编译器警告
自定义注解
格式
权限修饰符 @interface 注解名{}
元注解
备注
注解的注解(用在注解上面的注解)。
@Retention:用来说明使用该注解的注解的生命周期
RetentionPolicy:
SOURCE : (废弃了)源文件 - 编译期间
CLASS:编译期间 - 运行期间
RUNTIME:运行期间 (如果想要通过反射获取注解中的信息,那么该注解的生命周期必须是RUNTIME)
@Target:用来说明使用该注解的注解可以使用在哪些结构上。
通过反射获取注解的信息
2.1数组一旦创建成功,那么数据的长度就不可变
2.2数组的声明时的类型,就决定了数组储存的元素的类型
数组的缺点:
①数组的长度不可变,不能很好的进行扩容
②数组的属性和方法较少。比如缺少像增删改查,等这样的方法
③数组中只能用来储存的元素是有序可重复的。那么对于无序不可重复的无能为力
ForEach
增强for循环
Iterator
//返回Iterator接口实现类的对象(在此接口上的迭代器 - 用来遍历集合中的元素) Iterator iterator = c.iterator();
/*
注意 : 如果没有更多元素时再指针下移会发生NoSuchElementException
存放的是键值对
Map中所有的key可以看成是Set的集合。无序的且不可重复的。在Map中存放的key的数据(自定义类对象)
必须重写hashCode和 equals方法
实现类
HashMap(主要实现类)
Hashtable
TreeMap
文件名称 | 文件大小 | 文件下载地址 |
---|---|---|
JAVA.xmind | 0.71MB | 点击我下载资源 |
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com