java学习资料

java学习资料:

面向对象:

java运行内存分为:堆内存,栈内存,全局数据区内存, 全局代码区内存
普通方法可调类方法,类方法不能调普通方法
圈剧数据区节省堆内存空间

匿名对象:new chenli().build

1:只使用一次
2:创建对象不接收,只在堆中开辟空间,栈中无对象储存

this:

1:表示本类中的属性
2:可以使用this调用本类中的方法
3:至少要留一个不适用this调用的构造方法,要留一个出口
4:this调用构造方法时必须放到构造方法代码首块

内部类:

1:在类的内部再定义一个类,叫内部类,不建议使用内部类,破坏了类的结构
2:内部类代码可以访问外部类的私有属性
3:static方法不能访问非static属性和方法
4:访问内部类的格式:
外部类.内部类.内部类对象= new 外部类.new 内部类

代码块:

1:静态代码块优先主方法运行
2:运行顺序:静态代码块>构造块>构造方法>普通方法
3:静态代码,不管实例化几次,此代码只运行1次
4:构造块+构造方法:实例化N次,构造块+构造方法块就执行N次

继承:

1:子类创建实例,会先调用父类的构造方法,再调用子类的构造方法

super关键字:

1:子类继承父类,若父类中有构造方法,则子类必须要有构造方法通过super给父类传参
2:super要放到构造方法的首行
3:this和super不能同时在一块调用构造方法
4:this一般用于调用本类中的属性
5:super只能调用父类中的方法
6:this可以调用本身的方法,和父类中的pubilc方法

方法重写:

1:子类中定义父类中的方法,同名,通权限,同返回值
2:重写关键字:Override,重载:Overload
3: 构造方法其实就是一种重载
4:重写是发生在继承中,重载是发生在一个类中

抽象类:

抽象类中必须要有一个抽象方法,使用abstract定义的类,和方法
1:抽象类被继承的时候,必须要实现他的所有抽象方法
2:抽象类必须是pubilc修饰

接口:interface定义的类

1:final修饰的属性是常量
2:普通类不能继承接口,普通类只能实现接口,因为接口中都是抽象方法
3:子类要重写抽象类,接口中的所有抽象方法
4:抽象类只能被继承,接口只能被实现
5:抽象类可以实现多个接口
6:接口是可以继承多个接口的
7:接口是不可继承抽象类的
8:接口可以多继承,类只能继承一个父类

对象多态:

1:向上转型,实例化子类的时候,接收对象的时候可以用父类类名接收,就实现了父类的对象
2:问题:如何拿到抽象类的对象?
对子类进行实例化,向上转型拿到抽象类的对象
3:向下转型,首先向上转型,再向下转型

pom:

org表示开源

看源码步骤poi:
XSSFWorkbook类方法

1:构造方法,三个,无参构造,file构造,String构造,字节流构造创建
createsheet()
createsheet(“sheetname”)

获取sheet
getsheet(“sheetname”)
getsheet(index)

获取sheet下标
getSheetIndex(“sheetname”)
getSheetIndex(sheet),传入是sheet对象

得到sheet的名字
getSheetName(index)

XSSFSheet类方法:

createRow(rowindex)新建一行

removeRow(Row)入参是Row接口实例,必须找到一个实例实现接口

getRow(rowIndex)得到行下标
getFirstRowNum();
getLastRowNum();

是否隐藏
setColumnHidden(index,true)隐藏第一列
isColumnHidden(index)查看是否隐藏

设置列的默认宽度
setDefaultColumnWidth(11);
设置某一列的宽度
设置行的高度
获取列的高度

类XSSFRow类方法:

createCell(int column)创建单元格
createCell(int column,CellTypt type)枚举类,用类名点设置单元格格式

removeCell(Cell):Cell是接口,找到子类让子类上转

setRowNum()设置行下标

getCell(index)得到单元格,反回Cell
getFirstCellNum()得到第一个单元格
getLastCellNum()得到最后一个单元格,这个比较特殊,它的下标是从1开始的

setHeight(int)设置单元格高度

得到行的类型,设置行的类型

类XSSFCell类方法:

setCellValue()设置单元格的值
getCellValue()获取单元格的值
给单元格进行赋值之前,得先设置单元格的类型
单元格进行get取值的时候,应该先判断单元格的格式
cell.getCellTypeEnum()获取单元格类型,反会枚举类,用switch进行判断,get类型,set类型

复制sheet
clonesheet(index)
clonesheet(index,name)克隆sheet并重命名

删除sheet
removesheetat(index)

基本数据类型

基本数据类型:byte,short,int,long,float,double,char,boolean
引用数据类型:class,interface,数组,String

1KB=1024字节
8位为一个字节

根据实际业务需要选择:
整数值
byte:8位,范围:-128~127,默认值是:0,占内存的1个字节
short:16位,范围:-32768~32767,默认值是0,占用2个字节
int:32位,范围:-2147483648~2147483647,默认值是0,占用4个字节
long:64位,范围:-9223372036854775808~9223372036854775807默认值:0,占用8个字节

浮点
float:32位,占用4个字节,范围:-3.410308~3.4*10308,默认值是0.0f
double:64位,范围:-1.7
10308~1.7*10308,默认值0.0d

字符型
char:16位,范围:0~255,占用2个字节,默认值是0,输出结果是键盘上可看见的字符

布尔型
boolean:范围是true或false,默认值是false

包装类(数据类型对应的类称为包装类)

数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
作用:对数据类型进行转换
装箱:将基本数据类型转换位包装类
拆箱:将包装类变为基本数据类型

运算符

&和&&的区别:&是所有条件都判断,&&第一个条件位false后面面得条件就不判断了
|和||的区别:|所有条件都判断,||第一个条件位true后面的条件都不判断了

三木运算符:条件?结果:否则结果

程序结构

if…if else…if else…else中只进入一个判断后,后面的判断就算正确也不会再进入了

do while:条件不满足也会执行一次

数组

二维数组,score.length代表整个数组长度
二维数组,score[0].length代表一行的长度

什么是动态数组,什么是静态数组?

答:静态就是直接给了数组默认值,而动态只是给定了数组的长度

异常处理:

ArithmeticException:算数异常
try{
有可能出现的异常
}catch(异常类 异常对象){
编写异常的处理语句
}finally{
一定会执行的语句
}
作用:代码报错后,后续的代码依然可以正常运行
catch,处放异常终极父类,Exception,可以捕获所有异常
main不建议用throws,因为他是程序的开始,throws是往调用方抛出的
throw自己抛出异常给自己,throw e
有三种方式可以直接输出异常信息

泛型:

定义:class 类名称

注意:

1:泛型的类型参数只能是类类型,不能是简单类型:

2:泛型类,是在实例化类的时候指明泛型的具体类型;泛型方法,是在调用方法的时候指明泛型的具体类型

好处:
1:泛型编程实现了编译期的类型安全检查,以避免运行期发生类型转换异常
2:可以让代码高利用,一份代码可以接受多种类型的参数
【访问权限】 class 类名称<泛型类标识1,泛型类型标识2>
实例化:
类名称<具体类> 对象名称=new 类名称<具体类>(值);

泛型方法:
泛型方法定义:

​ 其必须要声明类型变量 ,且位于方法修饰符(public、public static)与方法返回值之间

​ public void getInfo(T e)

上限:

定义格式:【访问权限】 类名称<泛型标识 extends 类>
比如Integer的上限时number,number是所有数值类型的父类
泛型标识可以是:?,标识通配符,作用是接收泛型对象

下限:

定义格式:【访问权限】class 类名<泛型标识 super 类>
比如Integer的下限就是本身和他的父类

泛型接口:

定义格式:【访问属性】 interface 接口名称<泛型标识>
实现方式:
1:在子类的定义上声明泛型类型:即:class FruitGenerator implements Generator如果不声明编译就会报错
2:直接在接口中指定具体类型:class FruitGenerator implements Generator

集合

list接口与实现类:
1:list是一个接口,继承了Collection
2:实现类:Arraylist:

构造方法:
Arraylist(int 大小);一般用的时候知道你要存多少个元素
Arraylist();不知道大小的时候一般用这个方法
当定义的大小超出范围的时候,会自动扩充10个位置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值