Java学习笔记

·字符串无论如何是不会变的
变的只是原字符串改变后的副本

String字符串要先str.toCharArray()转化为字符串之后就好处理了,比如打印,升降序什么的

Math.abs(-1)这个能直接用是因为Math类定义了一个静态的成员方法,其它非静态方法要先定义一个变量才能使用,很多能直接用都是因为jdk定义的静态方法

通过new类直接能够输出是因为写好了输出的构造方法,否则要输出要调用定义的其它方法
如Student stu = new Student(); new调用无参构造方法Student();

接口的默认方法有利于调用接口的类的扩充,可以直接使用
接口的静态方法是接口里定义的方法,可以通过接口名直接使用

加上static,就跟对象没关系了

关于继承、抽象类、接口、静态方法之间的关系:
子继承父,父的东西会保留
抽象类就是个框架,必须有子来继承,而且必须全部继承,接口也是一样
接口里面可以定义各种丰富的方法,抽象方法是里面最重要的方法
比如全班同学一起在101教室上课,教室可以定义成静态方法。

如果儿子重写了,就是多态
如果儿子没有重写直接用父类的,就叫继承

重写必须继承,重载不用。
重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同

抽象方法就是个空架子,继承抽象方法的实现类才等同于普通类

普通的int等等功能不够,为了实现更多花样的操作,可以用包装类Integer.

集合中存储数据元素的类型就叫做泛型,集合类似于一个动态的有很多自带功能的数组

迭代器Iterator it = coll.iterator()玩的就是多态

基本类型也称为值类型,如int
引用类型则包括类、接口、数组、枚举等,如Integer,定义的类

//将one当中保存的对象地址值赋值给two
Phone two = one;

基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。而引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

String创建后一直存在,对它进行的操作都是重新创建一块空间放进去,原来的不会变动

使用Map和Set集合存储自定义对象,需要再类中重写equal和hashcode方法

创建对象之后,对对象重新用构造方法new一个,内容改变的实质是地址改变,如果调用set方法,虽然内容改变了但是地址不变,final中区分

创建线程的两种方法
1.MyThread extends Thread再重写run方法,创建MyThread类的实现类对象mt,mt.start.
2.RunnableImpl implements Runnable再重写run方法,创建Runnable接口的实现类对象run,Thread t = new Thread(run),t.start.

如果接口的实现类或者是父类的子类只需要使用唯一的一次,可以省略掉该类的定义,改为使用匿名内部类,匿名内部类可以直接new接口
接口名称 对象名 = new 接口名称(){覆盖重写所有抽象方法(大括号里面的就是匿名内部类)};不用格外写实现类了,甚至可以省略掉创建对象

函数式编程接口里面,new接口可以这么想:接口不能够直接new,因为是个空壳子,强行new之后只能在后面的大括号中补充具体实现的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值