查漏补缺(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;//现在两个变量共用一个对象

时间: 2024-08-05 04:40:38

查漏补缺(java)的相关文章

查漏补缺——java多态

---恢复内容开始--- 刚学完java,开始了查漏补缺阶段阶段,为了巩固自己的知识和为别人提供一些微末的帮助决定开通博客,求各位大牛们指出我的不足,不要吝惜言语,也希望我的总结可以对别人有帮助,对自己对他人负责. 开始正文:术语多态:可以定义为“有多种形态”,多态引用是一个一个在不同时刻可以指向不同类型对象的引用变量.通过多态引用可以调用不同的具体的方法. 类方法的多态性的实现有两种方式: 1:方法重载:可以声明多个同名但是参数不同(个数.类型和顺序)的方法.注意呵呵重载方法只能声明在一个类里

查漏补缺——java枚举(enum)

刚学完java,为了巩固自己的知识和为别人提供一些微末的帮助决定开通博客,求各位大牛们指出我的错误,也希望我的总结可以对别人有帮助. enum的全称是enumeration,是JDK1.5引入的新特性,同时”泛型“也是这一阶段,下一次总结. 1.为什么要创建枚举类型? 答:在编程过程中经常可以遇见数据稳定而且有限的一组数据,比如四季{春,夏,秋,冬}: 而当我们选择一个季节的时候只能四季四个值里选择一个,所以枚举类型是类型安全的,如果使用顶以外的值会编译出错.(例子) package based

近来的java小总结(2.1):类的知识的查漏补缺

首先,我是一名新手,所以,要带着批判的眼光来看下面的文章   这篇文章说了些什么? 这文章是我近来8.6号来在编程思想上打的代码,从0~200页的源码接近到在这里,下文正是总结这0~200页的的知识,涉及到接口,内部类.初始化,数值计算的一些细节.此文章不会一下子写完,可能隔一天可能再补下来.因为代码确实有点多.. 注意 1 我的注释不一定正确(不过各小标题和代码一定是正确的,因为是书本上的原话,但是注释不一定正确),如果你确信我的内容的话,你可能会损失很大,因为我只是个菜鸟,我只是来补救一些知

近来的java小总结(2.2):类的知识的查漏补缺

1 首先,我是一名新手,所以,要带着批判的眼光来看下面的文章   这篇文章说了些什么? 这文章是我近来8.6号来在编程思想上打的代码,从0~200页的源码接近到在这里,下文正是总结这0~200页的的知识,涉及到接口,内部类.初始化,数值计算的一些细节.此文章不会一下子写完,可能隔一天可能再补下来.因为代码确实有点多.. 注意 1 我的注释不一定正确(不过各小标题和代码一定是正确的,因为是书本上的原话,但是注释不一定正确),如果你确信我的内容的话,你可能会损失很大,因为我只是个菜鸟,我只是来补救一

java知识查漏补缺

一.重写(override)和重载(overload)的区别 二者除了名字相似,其实没什么联系 范围不同:重写发生在同一个类的不同方法之间.重载发生在父类和子类自荐. 前提: 重写要求:方法名相同,参数列表不同,对于返回值类型不要求相同. 重载要求:方法名形同,参数列表也相同.重载是实现多态的关键,注意如果父类中的方法是private类型,那么子类中对应方法不算重载,而相当于是定义了一个新方法. 二.final的用法 修饰类:该类不能被继承 修饰方法:该方法不能被重写 修饰属性:该属性初始化后不

自家用的java小总结(2.4):类的知识的查漏补缺(内部类)

1 2      首先,这是一篇自己用的文章,不对读者承担任何责任,所以,要带着批判的眼光来看下面的文章   1 发现了,得加上输出结果,怕自己出错,~~   这篇文章说了些什么? 这文章是我近来8.6号来在编程思想上打的代码,从0~200页的源码接近到在这里,下文正是总结这0~200页的的知识,涉及到接口,内部类.初始化,数值计算的一些细节.此文章不会一下子写完,可能隔一天可能再补下来.因为代码确实有点多.. 注意 1 我的注释不一定正确(不过各小标题和代码一定是正确的,因为是书本上的原话,但

查漏补缺

查漏补缺[1].this语句:this语句用于构造函数之间进行相互调用.this语句只能定义在构造函数的第一行,因为初始化要先执行.[2].对象的初始化过程 Person p =new Person("hei",10); 1.因为new用到了Person.class,所以先找到Person.class文件加载到内存中 2.执行类中的静态代码块,如果有的话,给Person.class类进行初始化 3.在堆内存中开辟空间,分配内存地址 4.在堆内存中建立对象的特有属性,并进行默认初始化 5

查漏补缺1

前言 Java的部分有基础.设计模式.IO.NIO.多线程,之后有时间还会把集合这 部分补上去,这么多内容里面,难免有一些知识点遗漏,本文主要是讲解这些遗漏的知识点.这些知识点,不是特别大的难点,所以没有必要专门写一篇文章讲解: 但是这些知识点,也不是一两句话就说得清楚的,所以放在这里.查漏补缺系列文章,每篇5个知识点,只要有值得研究的问题就会写上来. Thread.sleep(XXX)方法消耗CPU吗? 这个知识点是我之前认识一直有错误的一个知识点,在我以前的认识里面,我一直认为 Thread

20165239其米仁增第一周查漏补缺

第一周查漏补缺 上周我没有在课堂上完成考试内容,原因有以下几点: 第一,课余时间没有好好去敲课本上的java代码,我以后会在课余时间好好完成作业. 第二,因为今年寒假我回老家过年,那里没有网络,没有收到消息,所以在假期自学的时间比较短,在加上我自己母语是藏语,对汉文的理解能力有限,不像其他同学那样,自学起来就比较困难 第三:自己遇到问题时没有积极主动去找同学帮忙,而是自己一个人在那儿瞎弄,导致效率低下: 这周我吸取了上次考试的教训把第一章好好学了一遍,从java的网络,语言,需求等地位道java

第四周查漏补缺

第四周查漏补缺 第三周课下测试总结 课堂测试 考试时,题目要求的"N由命令行传入"我还没学会.于是编辑了以下代码,可以运行.通过键入N值来实现算法: 在课下学习中,还发现这段代码我用了两个类..在这个算法中没有对象,可以不需要用两个类,而且不同类应该单独存一个.java文件. 但我依然没有理解什么时候该分不同类对不同对象实现不同方法... 经过学习和修改后我修改了代码: 然后测试发现:输入5322,返回值sum太大溢出了.于是我把sum的类型改为了long,成功输出了值. 在和小组同学