由于大学里学过C++,年前粗略看了java,这会儿针对一些还不是很清楚的问题写下自己的理解和笔记。
1、数据类型
直接存储不过多重复,对于引用存储类型一定要加以理解:
引用存储类型包括类类型、接口类型、数组类型等,存储模型是“间接存储”,创建引用数据类型时,首先在栈上给其引用(句柄)分配一块内存,而对象的具体信息则存储在堆内存上,然后由栈上面的引用指向堆中的对象。
栈里面存着各种逻辑,以及像整形,浮点型等数据,根据栈先进先出的原则,代码会一条条被执行,执行代码中包含着栈中可以存放的数据。但数据量过大的时候,存入栈中会明显影响性能。所以,我们将大量的数据存入堆中,之后,栈中放堆的地址。这样,在进行数据调用的时候,可以通过地址找到对应数据。
2、运算符
注意精准度的问题:当两个操作数之间的类型不一致时,系统需要将不同的数据类型转换为精度最高的数据类型,以便尽可能的保证计算结果的准确性。
对于除法运算,程序中两个整数相除结果一定是整数
3、动态数组
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。
1.语法:add()是添加一个新的元素,
remove()删除一个元素,
size()获得ArrayList的长度。
ArrayList的下标是从0开始。
2.示例代码
import java.util.ArrayList;
public class JavaArrayList {
public static void main(String[]args) {
//Java动态数组的初始化
ArrayList al=new ArrayList();
//向Java动态数组中添加数据
al.add("a");
al.add("b");
al.add("c");
//输出Java动态数组
for(int i=0;i<al.size();i++) {
String alEach=(String)al.get(i);
System.out.println(alEach);
}
//删除数组中的某个元素,删除第二个元素
al.remove(1);
//修改Java动态数组,把新的元素放到第二个位置
al.add(1,"2");
//输出Java动态数组
for(int i=0;i<al.size();i++) {
String alEach=(String)al.get(i);
System.out.println(alEach);
}
}
}
输出如下:
a
b
c
a
2
c
PS:java的一维动态数组一般是使用集合的:ArrayList,HashMap等
泛型:
ArrayList<T> a = new ArrayList<T>();