随笔02---JavaSE基础知识

发布时间 2023-07-23 11:58:40作者: sunflower-uestc

(1)基本数据类型:

八大基本数据类型:

1、整数类型:

byte 占1字节

short 占2字节

int 占4字节

long 占8字节 (定义时后面加L)

2、浮点数类型:

float 占4字节(后加F)

double 占8字节

3、字符类型:

char 占2字节

4、布尔类型:

boolean 占1个比特位(1bit)

(2)引用数据类型:类、接口、数组

---------------------------------------------------------------------------------------

二进制0b开头,八进制0开头,十六进制0x开头

 

 

强制类型转换:高----》低 eg:int转byte,可能出现内存溢出,低容量数据类型装不下大数据

自动类型转换:低----》高

 -------------------------------------------------------------------------------------------------------------------------------------------------------------

实例变量:类的内部,方法的外部定义的变量,从属于对象,用对象来调用变量

局部变量:方法内部

类变量:加了关键字static的变量,定义位置和实例变量一样

常量:定义用final关键字

 

 

 

 

 -----------------------------------------------------------------------------------------------------------------------------------------------------

开发中必须把package包放在首行,在用import导入其他包。

javaDoc使用命令行可以生成API文档,包括开发作者、版本号等、、、、在命令行下使用javadoc -encoding UTF-8 -charset UTF-8 Doc.java 命令

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用户交互Scanner对象的使用

 

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

递归结构:

递归头:什么条件下不调用自身方法,没有最后的边界尽头,程序会陷入死循环。

递归体:什么条件下需要调用自身方法。

 

 

 

 

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

面向对象编程OOP:以类的方式组织代码,以对象的方式组织(封装)数据。

三大特性:封装、继承、多态。

方法的调用:加static的静态方法:用类名调用方法;非静态方法:先new出对象,实例化后调用。

new一个对象本质在调用构造器,new对象时不给参数则调用无参构造器;给参数则调用有参构造器。定义了有参构造器,如果想使用无参形式new对象,必须显示写出无参构造器。构造器的作用是初始化数据。IDEA中,使用alt+inter快捷键自动生成构造器。

 封装(数据/信息的隐藏):应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问。实现高内聚、低耦合。提高程序的安全性,保护数据。隐藏代码的实现细节。统一接口。增加系统可维护性。

继承:对类的抽象,类与类之间的一种关系,还有聚合、组合等。继承使用extends关键字。 

多态:

1、多态是方法的多态,属性没有多态。

2、父类和子类,父类可以转换成子类,否则可能出现类型转换异常ClassCastException。子类转换为父类,低转高自动转换,可能丢失自己本来的方法。父类转换子类,高转低强制转换。

3、子类重写父类方法,父类引用指向子类对象,运行时确定使用父类方法还是子类方法。

 

重载:方法名一样,参数列表不同。 

重写:子类和父类的方法定义必须相同,方法内部的实现内容(方法体)不同。

1、前提:需要有继承关系,子类重写父类的方法。2、方法名必须相同,参数列表必须相同。3、修饰符范围可以扩大不能缩小,public>protected>default>private 。4、抛出异常:范围可以缩小但不能扩大。classNotFpundException<Exception

重写的作用:父类的功能,子类不一定需要或者不一定满足。IDEA中使用alt+Insert的override选择方法自动重写。

 

super关键字:

 

instanceof关键字:

A instanceof B  若A\B之间有父子继承关系,则该表达式为true,否则为false.

 static关键字:

 

 abstract抽象类:

抽象类只有抽象方法,没有方法的实现,只能在继承抽象类的子类来实现方法。抽象类中可以写普通方法,但是包含抽象方法的类必须定义成抽象类。

接口:类是单继承,接口是多继承。使用interface关键字。

普通类:只有具体实现。抽象类:具体实现和规范(抽象方法)都有。接口:只有规范,自己无法写方法,约束和实现分离。

1、接口中定义的方法都是抽象方法。方法默认public abstract类型,变量默认public static final类型

2、实现接口的类需要重写接口中的方法。使用implements关键字实现接口。

接口的作用:接口是一种约束,定义一些方法让不同的人实现。

 

内部类:

 

 

 

通过外部类来实例化内部类。内部类可以使用外部类的私有变量。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

异常机制:

 1、try.....catch【....finally】IDEA中使用ctrl+alt+T

 

2、throw、throws主动抛出异常

 自定义异常:自己命名异常名称继承Exception类即可。

 实际应用中的经验总结:

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------