前天,没有写笔记,昨天在火车上补。(不知说这些话的意义,也许是说给未来的自己。)
想了很多还是不能放弃。
正经总结。还记得啥
1, String和StringBuffer
String有两种赋值
字面量 String a=”abcd”;
New String 如果常量池没有就创建两次,一个放在常量池(也是·在堆区中),一个放在新堆区.
intern() String入池先在常量池中寻找是否有相同的值。之后如果New出来会被CG回收。
String的一些函数。charAt(),endWith()等等。
StringBuffer一个容量随字符串长度增加的容器。
2.封装,继承
封装使用private关键字,好处是易于维护,隐藏类的内部属性,使程序使用时遇到的逻辑上的问题减少,用户输入信息的逻辑等等。可以用public方法修改属性。
继承,java的继承一个父类可以有多个子类,一个子类只能继承一个父类。使用extends关键字,可以多重继承如类B继承类A然后类C继承类B,要使用关键字supper.好处是可以减少代码的重复。
3.构造函数
有参,无参(如果不写默认会有一个无参构造函数)
4.创建对象的过程
对象实例化使用new关键字,在堆内存中开辟空间,(初始化),然后返回一个地址,开辟栈存放指向堆内存地址的空间。创建完对象在为对象的属性赋值之前,那么对象的属性就是对应数据类的默认值
5.栈和堆的区别
栈,局部变量定义时创建在栈内存中,局部变量是指在方法内部定义的变量,只有方法被调用时会创建,更新很快。
堆,new关键字创建的对象放在堆内存中,中存放的都是实体(对象),实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以用,所以堆是不会随时释放的,但是栈不一样,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会被释放,但是会被当成垃圾,Java有垃圾回收机制不定时的收取。
2020-11-15
最新推荐文章于 2022-11-20 15:26:36 发布