首页 > 代码库 > 查漏补缺(java)

查漏补缺(java)

一、匿名数组:

Java中提供一种创建数组对象并同时赋予初始值的简化书写形式
int[] a = {1,2,5,4};
在不创建新变量的情况下,重新初始化一个数组

int b[] = {1,2,3,4};
a = b;
简化:a = new int[]{1,2,3,4};

详见代码:

public class Main
{
	public static void main(String[] args)
	{
		//匿名数组的定义方式new int[]{1,5,1,9} 		int a[] = {1,5,1,9};
		int b[];
		b = a; 
		System.out.println(b[1]);
		b = new int[]{1,5,1,9};//这是上面三行代码的简化
		System.out.println(b[1]);
	}
}

二、数组拷贝:

int ary[] = {1,2,3,4,5,6,7,8,9,10};

把数组ary的所有元素拷贝到数组b中

int b[] = Arrays.copyOf(ary,ary.length);

改变数组ary的大小

ary = Arrays.copyOf(ary,2*ary.length);

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.sql.Date;
import java.util.Arrays;


public class Main
{
	public static void main(String[] args)
	{
		int ary[] = {1,2,3,4,5,6,7,8,9,10};
		//System.out.println(ary.length);
		int b[] = Arrays.copyOf(ary,ary.length);//把ary里的元素拷贝到b
		System.out.println(b[1]);
		System.out.println(b.length);//b的元素个数和ary数组相同
		ary = Arrays.copyOf(ary, 2*ary.length);//把ary数组的大小变大2倍
		
		System.out.println(ary.length);
	}
}

三、数组排序:

快速排序a数组中的元素的值

Arrays.sort(a);

代码:

import java.util.Arrays;



public class Main
{
	public static void main(String[] args)
	{
		int ary[] = {8,4,56,6,7,21,1};
		Arrays.sort(ary);
		//for(int i = 0;i< ary.length;i++)
		for(int i : ary)
		{
			//System.out.println("ary["+i+"] = "+ary[i]);
			System.out.println("ary["+i+"] = "+i);
		}
	}
}


for(int i = 0;i<ary.length;i++) { System.out.println(ary[i]);}
 		↓
for(int i : ary) System.out.println(i);//两者等价


四、java随机数的产生方式:


应用Math类中的random方法

(int)(Math.random()*n)方法随机产生一个0到1之间(包含0,不包含1)的随机浮点数,用n乘以这个浮点数就可以得到0到n-1之间的随机数

import java.util.Arrays;

public class Main
{
	public static void main(String[] args)
	{
		int ary[] = {8,4,56,6,7,21,1};
		Arrays.sort(ary);
		int ran = (int)(Math.random()*ary.length);
		
		System.out.println("生成的随机数是"+ran);
			
			System.out.println("打印的数组元素"+ary[ran]);
		
	}
}

五、类与类之间的关系:

1.依赖(use a)
2.聚合 (has a)
3.继承 (is a)
1.依赖:如果一个类的方法操作另一个类的对象,那么我们就说一个类依赖于另一个类

PS:应该尽可能的减少相互依赖的类减少至最少,如果类A不知道类B的存在,它就不会关心类B的任何变化(B的改变不会导致A类的任何bug)
用术语:让类之间的耦合度最小


2.聚合:类A对象包含类B的对象


3. 继承


Date类,它的对象描述一个时间点

System.out.println(new Date());//匿名对象

也可以将一个方法应用于刚刚创建的对象,Date类有一个toString方法,将返回的日期的字符串描述

String s = new Date().toString();
以上两例,构造对象仅使用一次,如果要多次使用 Date bir = new Date();

六、对象与对象之间存在一个重要的区别:


如:Date d;//定义一个对象变量d

String s = d.toString();

d不是一个对象,实际上也没有引用对象,它只是一个对象变量,一个名字,一个代号而已,不能将Date方法应用于这个变量

所以,必须首先初始化变量d,这里有俩个选择:
1.用新的构造的对象初始化

d = new Date();

2.让这个变量引用一个已存在的对象

Date dir = new Date();

d = bir;//现在两个变量共用一个对象


查漏补缺(java)