Java中的基本数据类型与引用数据类型
2021-03-06 05:29
标签:ima 教程 布尔类型 inter nim 接口 编写 com dem 一、基本数据类型 Java数据大多数存放在堆栈中。 栈区:存放局部变量,对象声明的引用等。 堆区:存放new关键字创建的类(包含成员变量)和数组等。 堆与栈的优缺点 栈的优点:栈数据可以共享,存取速度比堆快。 缺点是:存在栈中数据大小与生命周期是确定的。 堆的优点:可以动态分配内存大小,生存期也不必事先告诉编译器。缺点是:存取速度较慢。 举个栗子,如下图: 编译器会在栈中创建一个a的引用,然后在栈中查找字面值为5的引用,将a指向5的地址,若没有找到,就会开辟一个地址来 存放字面值5,然后再将a指向该地址。定义int c=5;因为栈中存在字面值5,所有c会直接指向5的地址。令a=8,因为栈中 没有字面值为8的引用,所有会开辟一个地址存放8,a会重新指向8的地址,c的指向不受a影响,c的值不会改变。 二、引用数据类型 1. Class(类) 2. Interface(接口) 3. Array(数组) Java是面向对象语言,它为每一个基本数据类型都做了相应的包装类(见上一个表格),也就是实现了基本类型变量到包装类 对象的转换。引用类型一般通过new关键字来创建,(对象)它存放在内存的堆中,可以在运行时动态的分配内存大小。引用 变量中存放的是变量内容的地址,它存放在内存的栈中。当引用类型变量不被使用时,Java内部的垃圾回收器GC会自动回收。 1.代码示例-Class: 2.代码示例-Interface 编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。 接口与类的区别: 接口不能用于实例化对象。 接口没有构造方法。 接口中所有的方法必须是抽象方法。 接口不能包含成员变量,除了 static 和 final 变量。 接口需要被类实现。 接口支持多继承。 3.代码示例-Array 拓展1: 方法的返回值类型为类名:返回该类的对象。 方法的返回值类型为接口名:返回该接口的实现类的对象。 上述代码中,传递参数为实现了Comparable接口的对象数组,方法返回的是Comparable接口的实现类的对象。 我们通常会使用Object、接口类型等方式来表示泛型,目的是支持代码重用。 拓展2:自动装箱与拆箱 自动装箱:如果一个int型量被传递到需要一个Integer对象的地方,编译器将在幕后插入一个对Integer构造方法的调用。 自动装箱:如果一个Integer对象被放到需要int型量的地方,则编译器将在幕后插入一个对intValue方法的调用。 Java中的基本数据类型与引用数据类型 标签:ima 教程 布尔类型 inter nim 接口 编写 com dem 原文地址:https://www.cnblogs.com/wuzh/p/14300828.html
public class Demo {
String Name;
int Age;
double Score;
Demo(String Name,int Age,double Score){
//定义带三个参数的构造函数,进行初始化
this.Name=Name;
this.Age=Age;
this.Score=Score;
};
public static void main(String[] args) {
Demo d1=new Demo("小吴",20,98);
Demo d2=new Demo("小天",19,80);
}
}
interface Animal {//定义Animal接口
public void eat();
public void speak();
}
public class Dog implements Animal {//Dog类实现Animal接口
public void eat() {
System.out.println("我喜欢吃骨头!");
}
public void speak() {
System.out.println("汪汪汪!");
}
public static void main(String[] args) {
Dog d=new Dog();
d.eat();
d.speak();
}
}
public class Array {
public static void main(String[] args) {
int[] myList = new int[] {5,2,0,1,3,1,4};
for(int list: myList) {
System.out.print(list);
}
}
}
public static Comparable findMax(Comparable[] arr) {
int maxIndex=0;
for(int i=1;i0)
maxIndex=i;
return arr[maxIndex];
}
注:参考《数据结构与算法分析Java语言描述》和 菜鸟教程
上一篇:python 命令行参数
下一篇:Java中的对象比较