一维数组
格式一:
元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度]
如:int[ ] arr=new int [5]
格式二:
元素类型[ ] 数组名=new 元素类型 [ ] {元素,元素,......}
如:int[ ] ar=new int[ ] {3,4,2,5}
int[ ] arr={3,5,2,7}
冒泡法排序
public class BubbleSort
{
public static void main(String[] args)
{
outArr(bubble(new int[] {38,5,2,9,6,32,64,25,69,34,23}));
}
public static int[] bubble(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1-i;j++)
{
int temp=0;
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
public static void outArr(int[] arr)
{
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
}
}
二维数组
格式一:
int[ ] [ ] arr=new int[2] [3] //相当于两个一维数组,每个一维数组三个元素
格式二:
int[ ] [ ] arr=new int[3] [ ] //二维数组中有三个一维数组,可以分别对三个一维数组初始化,元素个数不一定相同
arr.length是二维数组的行数,arr[i].length是数组第i行的长度
面向对象
对象是类的实例
属性:对应类中的成员变量
方法:对应类中的成员函数
构造函数没有返回值并且和类同名
栈内存
用于存储局部变量,当数据用完,所占空间会自动释放。
堆内存
数组和对象,通过new建立的实例都存放在堆内存中;
每一个实例都有内存地址值;
实体中的变量都有默认初始化值;
static关键字
用于修饰成员,被修饰的成员具备特点:
1.随着类的加载而加载;
2.优先于对象存在
3.被所有对象共享
4.可以被类名直接调用
使用注意
1.静态方法只能访问静态成员
2.静态方法中不可以写this,super关键字
3.主函数是静态的
设置堆和栈
查看运行的java进程
$ jps [-V] //显示可提取pid
查看指定java进程的对空间
$ jmap -heap pid
指定堆、栈的大小
java -Xss16m Xxx //栈指定
java -Xms24m //堆起始
java -Xmx256m //堆最大值
构造函数
构造函数不需要定义返回值类型,没有具体返回值。
构造代码块
也是类的成员,构造对象时先调用构造代码块然后再调用构造函数。给构造代码块加static关键字就变成了静态代码块。
静态代码块通常放置对静态成员变量的初始化过程。静态代码块在类的加载时执行,且只执行一次。
手动控制类加载:Class.forName("classname"),默认加载类时执行静态代码块(初始化)
Class.forName(String,boolean initialize,ClassLoader),可以控制加载类时是否初始化静态代码块