JavaSE知识点梳理

一阶段知识点(完结版)
1.初识Java,JDK,JRE,JVM,配置环境变量,配置目录为JDK安装包下的bin目录。
2.Java是先编译Java文件,后执行class文件,这也是Java跨平台的核心,JVM,因为不同的平台安装有不同的JVM虚拟机。
3.变量和数据类型:byte,short,int,long,float,double,boolean,char.
4.byte取值范围是-128 ~ 127,因为byte是一个字节八位,最大取值范围是7个1,最小相反。
5.类型的转换,自动提升(两种类型要兼容,目标类型大于源类型),手动下降(两种类型要兼容,目标类型小于源类型)。
6.选择结构:
(1)if
(2)if-else
(3)多重if:用于处理某个值处于连续的区间的情况。
(4)嵌套if
7.Switch:用于处理条件为等值的情况,支持的数据类型有,byte,short,int,char,enum,String类型是从jdk1.7才开始支持的。
8.循环结构:
(1)while:处理循环次数不确定的情况,条件不成立不执行。
(2)for:处理循环次数确定,更为合适
(3)do-while:处理循环不确定,不管条件是否成立,至少执行一次。
9.嵌套循环:外层循环变量变化一次,内层循环变量变化一轮。
10.冒泡:外层循环控制比较的轮数,内层循环控制每一轮比较的次数。外层循环N-1,内层循环N-1-i;
11.选择排序:选择排序是拿出一个数一次与后边的每一个数相比,每一轮找到一个最大的或者最小的,但是不是立即调换位置,等到一轮比较结束以后,才调换 位置,这是和冒泡的最明显的区别。
12.数组:固定,相同,连续。
(1)下标从0开始
(2)长度属性length;
(3)ArrayIndexOutOfBoundsException();数组下标越界异常。
(4)访问数组中的元素:数组名称 [index]
(5)数组定义的几种方式
13.二维数组:数组中还是数组,使用方式和一维数组是一样的,只是我们在访问的时候多加了一个[],数组的每一个元素都是一个数组。
14.方法:方法是一些列代码指令的集合。用于实现特定的功能。
(1)访问修饰 + 返回值类型+ 方法名称(参数列表){}
(2)方法重载:
①在同一个类中
②方法名称相同,参数列表不同
③跟返回值无关
(3)全局变量&局部变量
①全局变量直接定义在类中,整个类都可以使用
②存放在堆中,随着对象的创建而生效,随着对象呗GC回收而死亡。
③局部变量定义在方法中,只在本方法中其作用。
④存放在栈中,随着方法的入栈而生效,随着方法的出栈而死亡。
15.访问修饰符:
(1)Private,本类中
(2)默认不写,本包中
(3)Protected,本包及其子类
(4)public ,当前项目中所有类
16.类和对象:类是对象的抽象,对象是类的具体。
17.类的组成:属性和方法
(1)属性:一些对象共有的特征
(2)方法:一些对象共有的行为
18.构造方法:访问修饰符+类名,用于创建对象的。
(1)无参构造方法默认存在,如果书写了有参的构造方法,无参的将被覆盖,想使用,必须显式的声明。
(2)构造方法重载:
①同一个类中
②参数列表不同
1)个数
2)类型
3)顺序
19.this关键字:this指向当前对象
(1)调用本类的属性,this.属性
(2)调用本类的方法this.方法名
(3)调用本类的构造方法,this();这个必须写在第一句,并且只能写一个。
20.Static关键字
(1)修饰属性,方法,类,类级别的
21.封装:将类的信息尽可能的隐藏起来,不让外部直接访问,而是提供一对方法用于给外部访问。
(1)属性私有化
(2)提供公开的getter,setter方法
22.继承:子类继承父类,Java中只支持单根继承。一个子类只能有一个直接父类。使用extends关键字。
(1)子类继承父类可以重写父类的方法,也可以使用super关键字访问父类的成员
(2)Super关键字
①访问父类的非私有属性,super.属性
②访问父类的方法,super.方法名
③访问父类的构造方法,super();和this一样,只能写在构造方法的第一句,不能有多个。
23.方法重写:
(1)存在父子类之间
(2)方法名称相同,参数列表相同
(3)返回值相同或者是其子类
(4)访问权限不能严于父类
(5)不能抛出比父类更多的异常
24.多态:多种形态,在我们程序运行过程中,因为环境的不同,执行同一个动作,产生不同的效果。
(1)父类作为返回值
(2)父类作为形参
(3)线上转型:父类引用指向子类对象
(4)向下转型:将指向子类对象的父类引用转换为子类类型。
(5)类型转换异常:ClassCastException();
(6)我们可以通过instanceOf关键字来避免这种问题的产生。格式:对象 instanceOf 类型,返回值布尔类型。
(7)Object是我们所有类的父类,提供有一些常用的方法,我们可以选择进行重写,实现我们想要的效果。
①toString();
②equals();
③hashCode();
(8)== 和 equals的区别:==比较基本数据类型是值,引用数据类型是地址。==和equals本身都是用于比较内存中的地址。但是我们可以重写equals按照我们自己的比较方式来比较。比如String类对其进行了重写,按照内容来比较的。
(9)重写完equals方法以后,我们按照规范需要重写hashCode();
25.抽象类&接口
(1)抽象类:当我们不足以描述一个具体的对象的时候,我们可以使用抽象类,使用abstract关键字修饰。
(2)抽象类中可以有普通方法和普通属性,静态方法。
(3)接口只是表示一种能力,提供一种约束和规范,使用interface关键字修饰。
(4)这两者都不能直接new对象,必须通过new子类的方式来创建对象。
(5)子类或者实现类必须重写、实现父类中的抽象方法,非抽象方法可以选择是否重写。
(6)接口只能有抽象方法(1.7之前),抽象类不是。
26.常用类:
(1)Enum:枚举中都是静态常量
(2)包装类,每一个基本数据类型对应的都有一个包装类,除了int对应的Integer,char对应的Character,其他的包装类都是类型名首字母大写。
(3)Math类,提供数学运算的类
(4)Random:获取 随机数的,next***();
(5)StringBuffer&StringBuilder,前者是线程安全的,效率低,后者是非安全的,效率高。
(6)常量池:整数包装类型,char的包装类,在比较byte取值范围的数,被保存在常量池中,所以这个范围的对象比较的时候是true,超出范围为false。String类的字符串值也被保存在常量池。
27.异常
(1)try
(2)catch
(3)finally
(4)自定义异常
28.集合Collection接口,Collections类
(1)List接口
①ArrayList,LinkedList,(Vector安全)
(2)Set接口
①HashSet,TreeSet,LinkedHashSet
(3)Map接口
①HashMap,TreeMap,(Hashtable线程安全)
29.IO
(1)字节流 InputStream,OutputStream
①FileInputStream,FileOutputStream
(2)字符流 Reader,Writer
①InputStreamReader,OutputStreamWriter
②FileReader,FileWriter
(3)数据流DataInputStream,DataOutputStream
(4)对象流ObjectInputStream,ObjectOutputStream
(5)序列化:将对象读取为二进制文件
(6)反序列化:将保存有对象的二进制文件,读取为对象。
(7)缓冲流:BufferedReader,BufferedWriter
30.线程
(1)继承Thread类
(2)实现Runnable
31.锁:
(1)synchronized关键字修饰代码块
(2)synchronized修饰方法
(3)Lock接口,ReentrantLock,可重入锁,ReentrantReadWriteLock,可重入读写锁。
(4)Queue接口,ArrayBlockingQueue,LinkedBlockingQueue
(5)线程池:
①单个线程线程池
②无线大小线程池
③固定大小线程池
④可以定时执行任务的线程池

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值