-
Java 基本数据类型存储位置
https://blog.csdn.net/ncuzengxiebo/article/details/83745065
java堆、栈、堆栈的区别
https://www.cnblogs.com/iliuyuet/p/5603618.html -
Json详解以及fastjson使用教程 <==写的非常好
https://blog.csdn.net/srj1095530512/article/details/82529759 -
Spring Boot 操作 Redis,三种方案全解析!
https://zhuanlan.zhihu.com/p/68059953 -
zhisheng 大佬系列文章
https://cloud.tencent.com/developer/column/2287 -
String s1="AB"和String s2=new String(“AB”)的区别
首先,String对象是final修饰的常量,是不可改变的字符串
当String对象创建完毕后,该对象的内容不可以改变的,一旦 引用 改变就会创建一个新的对象
String s1 = “AB”;
最多创建一个String对象,最少不创建String对象.
如果在方法区中的常量池中存在”AB”,那么s1直接引用,不需要创建String对象,否则先在常量池中创建”AB”,再引用
String s2 = new String(“AB”);
最多创建两个String对象,至少创建一个String对象,先看常量池中是否有”AB”,如果没有先创建,然后在堆中创建一个String对象,引用常量池中”AB”的地址,再把自己的地址给s2.
new关键字绝对会在堆空间中创建内存区域,所以至少创建一个对象
6.Java 类加载顺序
7.java基本数据类型,char与int互相转换
char c = 'a';
System.out.println(c + 0); //char转int
int i = c;
System.out.println(i);//char转int
char c2 = (char)i;
System.out.println(c2);//int转char
官网:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
参考:
https://blog.csdn.net/c5113620/article/details/78722359
8.按位 与、或、异或 等运算方法
https://blog.csdn.net/21aspnet/article/details/7387373
9 java面向对象的几点注意说明
0.java中【派生类、基类、父类、子类】
在java的继承关系中,新的类称为子类,也叫派生类。
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,
是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
举例:
class A extends B{//这里B叫做父类或者基类,A叫做子类或者派生类
}
1.Java继承的几点注意说明:
继承:
子类继承父类,
使得 子类对象 拥有父类非private的属性和方法,
当然也可以在子类中进行扩展自己的属性和方法,
同时也可以重写父类的方法
父类更通用,子类更具体
继承可以解决代码重复的问题,将多个类相同的部分抽取出来组成一个父类
Java继承是单继承,但支持多重继承,继承的缺点就是提高了代码的耦合度。
继承关键字:extends implements 两个关键字实现继承
super 与 this 关键字
super关键字:实现对父类成员的访问,用来引用 当前对象 的父类。
this关键字:引用自己的方法和属性
final关键字
final 关键字声明类 可以把类定义为不能继承的,即最终类
或者用于修饰方法,该方法不能被子类重写。
注:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
注:类的private方法会隐式地被指定为final方法。
对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改
如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
构造器
子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。
如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。
2.Java 重写(Override)与重载(Overload)的几点注意说明:
重写是子类对父类 非final 修饰的方法进行重写编写,但方法的 参数 和 返回值都不能变。
重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。
子类重写父类方法规则:
声明为 final 的方法不能被重写。
声明为 static 的方法不能被重写,但是能够被再次声明。
子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。
子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。
构造方法不能被重写。
参数列表必须完全和被重写方法相同,
返回类型可以不同,但是必须是父类返回值的派生类。
访问权限不能比父类中被重写的方法的访问权限更低。
Super 关键字的使用
当需要在子类中调用父类的被重写方法时,要使用 super 关键字。
class Animal{
public void move(){
System.out.println("动物可以移动");
}
}
class Dog extends Animal{
public void move(){
super.move(); // 应用super类的方法
System.out.println("狗可以跑和走");
}
}
重载(Overload)
重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
最常用的地方就是构造器的重载
重载规则:
被重载的方法必须改变参数列表(参数个数或类型不一样);
被重载的方法可以改变返回类型;
被重载的方法可以改变访问修饰符;
被重载的方法可以声明新的或更广的检查异常;
方法能够在同一个类中或者在一个子类中被重载。
无法以返回值类型作为重载函数的区分标准。
总结
方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,
方法重写:
在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。
它是父类与子类之间多态性的一种表现,
方法重载:一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。
它可以理解成多态的具体表现形式。