Java学习知识点小结2

1.形成多态的条件:继承,方法重写,父类引用指向子类对象
2.多态的转型: 父类引用指向子类对象(自动向上转型 ),强制向下转型
3.final关键字:修饰变量:变量不能被修改,赋值
修饰方法:方法不能被子类重写,可以在自己内部被重载
修饰类:不能被继承,例如Math,String

4.数组声明 type[ ] arr_name;

5. 数组3种初始化
静态初始化 :int[ ] a={1,2,3} ;
默认初始化:int[ ]a=new int[2]; 里面每个元素按照实例初始化,int的初始化为0
动态初始化:int[ ] a=new int[10]; // 给数组分配空间
a[0]=1;//初始化

6 foreach循环读取数组: for(int m:a){}
7.System.arraycopy(s,0,sBak,0,s.length);实现数组的拷贝,进而实现数组的删除与插入,s是代拷贝数组,sBak是新数组,两个0是起始位置,s.length是拷贝长度

8.Scanner scanner=new Scanner(System.in);
scanner.nextLine();//输入字符串,nextLine()方法的结束符只是Enter键,得到Enter前所有字符
scanner.next();//输入字符串,空格和回车结束。

9.抽象方法只能在抽象类里,父类里没有实现,子类必须实现抽象方法 标志符号是abstract,抽象类里允许普通方法存在

10.接口是多继承,接口中的方法只能是:public abstract,接口中的属性只能是常量

11.外部类以外的地方创建内部类对象:Outer.Inner varname = new Outer().new Inner(),非静态内部类可以直接访问外部类的成员,但是外部类不能直接访问非静态内部类成员

常用类:
12.String类:
12-1 可以用+完成字符拼接
12-2 substring方法是左闭右开区间
12-3 将10进制数转换为二进制 System.out.println(Integer.toBinaryString(num));

12- 4 StringBuilder 类是可变的字符序列,里面字符可以随时修改 ,String类是不可变的
(注意:再给字符串循环累加拼接的时候,String不可修改,则会产生很多对象,选用可修改的Stringbuilder.append则安全)
12-5 StringBuilder线程不安全,效率高。StringBuffer线程安全,效率低

12-6 StringBuilder类的方法:
sbu.append(char temp) //往sbu数组后添加元素
sbu.reverse() //sbu倒序
sbu.setChar(1,‘肖’) //sbu第1个元素修改
sbu.insert(1,‘我’).insert(2,‘爱’)//在第一个位置和第二个位置插入元素

13.arrays类:
1.Arrays.toString()方法进行打印(区别于OBJ的toString方法,必须要用类目Arrays调用这个静态方法)
2.Arrays.sort()方法排序
3.Arrays.binarySearch(a,元素)进行收索,若存在返回下标,不存在返回负值

14.二维数组:可以理解成数组内存放数组 in[][]a=new int[3][] 第一个数组的大小是3,里面的数组大小还未规定。
静态初始化 int[][]b={{1,2,3},{4,5,6},{7,8,9}}

15.八种数据类型对应八个包装类:Character和Integer对应char和int,特殊一点。
包装类提供了方法使得 基本类型,包装,字符串能相互转换。
Integer a=new Integer(3) 定义a包装类
int b=a.intValue() a包装类转换为基本类型b
Integer c=new Ingeter(“9999”) 将字符串转换为包装类c
String d=c.toString 将包装类对象转换为字符串
自动装箱:编写 Integer a=200; //编译器自动调用Integer.valueOf(200)
自动拆箱:编写int b=a //编译器修改成int b=a.intValue();

16.Date类
Date d=new Date() 默认为计算机当前时间

17.DateFormat类(抽象类)
一般使用它的子类 SimplrDateFormat类实现

// 括号内定义了格式,字母有具体含义
DateFormat d=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
// 可以调用方法将时间对象转换为按指定格式的字符串
String str=d.format(new Date(5000));
//可以将按照指定的格式的字符串转化为时间对象
Date date=d.parse(“2020-2-28 0:23:00”);

例子:(得到今天是今年的第几天)
DateFormat d=new SimpleDateFormat(“D”);//D有特殊含义
String str=d.format(new Date());

18.Calendar日历类(抽象类)
GregorianCalendar 是 Calendar 的一个具体子类
c.get(Calendar.YEAR)方法得到该对象的年份
c.get(Calendar.DAY_OF_WEEK)得到该对象是星期几
c.add(Calendar.YEAR,100)得到该对象往后100年的日期
c.getTime()将日历类转换为时间类
c.setTime(new Date())将日期设置为时间

19.Math类
Math. abs 绝对值
Math.sqrt 平方根
Math.round四舍五入
Math.random()随机生成[0, 1)之间的double类型的数据

20.Random类
Random rand = new Random();
rand.nextInt()//随机生成int类型允许范围之内的整型数据
rand.nextInt(10)//随机生成[0,10)之间的int类型的数据

21 System.getProperty(“java系统变量”) 读取JVM中的系统属性,例如user.dir 用户的当前工作目录

22.File类 File f= new File(“d:/1/2/3”);
f.exists()是否存在
f.isDirectory()判断是否是目录
f.delete()删除文件
f.mkdirs()创建目录树(一层一层的文件夹)
f.createNewFile();创建文件
f.listFiles()某个目录下的所有文件和目录的文件名

23.异常:
所有异常的根类为Throwable,有两个子类Error错误与Exception异常(Checked Exception 已检查,RuntimeException运行时)
异常的处理方式有两种:使用“try/catch”捕获异常 或 使用“throws”声明异常。

24.RuntimeException:
NullPointerException空指针异常,当对象是空的时候,调用了其方法
ClaseeCastException强制转型错误
ArrayIndexOutBoundsException数组越界判断
NumberFormatException 数字格式错误,在包装类转换时可能会出现该异常

25.Checked Exception:必须在编译时处理

**26.try/catch/finally:**先执行try里的,如果try语句没有出现异常则执行完后跳至finally语句块,若遇到异常,中断执行,跳到catch内。 即使try和catch块中存在return语句,finally语句也会执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值