- 数组定义格式:
ElementType[] a;
ElementType[] a = new ElementType[n];
ElementType[] a = {exp0, exp1, exp2};
- 不同类型的数组不能相互赋值。
- 引用单个数组元素的行为称为建下标(subscripting)或者建索引(indexing)。
- 对象数组的默认初始化值是null。
- 常量数组final int[] B = {10, 20}; 不能改变B的引用,但是可以改变元素的值。
B = new int[2]; //wrong
B[1] = 12; //right
- 数组是一个对象。 数组具有object对象的所有成员方法。数组的clone()方法专门为数组重载了。
- 数组还有一个public final的数据域length来声明数组中元素的个数。
for(int i=0; i< puppy.length; i++)
System.out.println(puppy[i]);
- 数组方法clone()返回数组的一个重复。 这种克隆称为浅拷贝。 两个数组的对应元素引用相同的对象。 也就是说,u克隆之后的v,u[0]和v[0]的地址是一样的。
Point[] u = {new Point(0,0), new Point(2,4)};
Point[] v = u.clone();
- 逐一克隆u的元素实现了独立的元素拷贝,称为深拷贝。 u和v不共享任何内存空间。
Point[] u = {new Point(0,0), new Point(2,4), new Point(3,5)};
Pint[] v = new Point[3];
for(int i=0; i<u.length; i++)
v[i] = u[i].clone();
- 当数组类型为基本类型时,clone()方法自动采用深拷贝。
int[] x = {0, 1, 2};
int[] y = x.clone();
- 在数组data中查找一个特定的值,包含要查找的值的变量称为关键字。
- 多维数组
int[][] m = new int[3][];
m[0] = new int[4];
m[1] = new int[4];
m[2] = new int[4];
或者
int[][] m = new int[3][4];
- java的数组中没有任何操作可以支持插入一个新元素或者删除一个现存的元素。
- 在集合架构中有两类列表表示法:一类实现接口java.util.Collection,另一类实现接口java.util.Map
实现Collection派生接口List、Set和SortedSet之一的类,表达列表的方法与人们通常想象的一样,这些类支持将一个列表看作一组元素。
实现Map接口或者其他派生接口HashMap的类看起来更有关联性;即,这些类提供了一种途径将值和“关键字”关联。
- ArrayList类实现List接口,提供可改变大小的列表表示。
ArrayList c = new ArrayList(); //在更新容量前,最多存10个元素
ArrayList c = new ArrayList(20); //在更新容量前,最多存20个元素
ArrayList的类方法:public void add(int, Object);
void add(int, Object); //将Object值插入到下标int处
boolean add(Object); //将Object值添加到末端,返回true
void clear(); //删除列表所有元素
Object clone(); //返回该列表的一个浅拷贝
Object get(int); //返回int下标对应的值
boolean isEmpty(); //列表无元素,返回true
Object remove(int); //删除int下标对应的元素
Object set(int, Object); //将下标int对应的值替换为Object
int size(); //返回元素个数
- java.util.Collections的类方法:static
Object max(Collection);
Object max(Collection, Comparator);
Object min(Collection);
Object min(Collection, Comparator);
void reverse(List a);
void shuffle(List a);
void sort(List a);
void sort(List a, Comparator c);
java笔记7
时间: 2024-11-10 15:57:43
java笔记7的相关文章
15.1-全栈Java笔记:Java事件模型是什么?事件控制的过程有哪几步??
应用前边两节上一章节的内容,大家可以完成一个简单的界面,但是没有任何的功能,界面完全是静态的,如果要实现具体功能的话,必须要学习事件模型. 事件模型简介及常见事件模型 对于采用了图形用户界面的程序来说,事件控制是非常重要的. 一个源(事件源)产生一个事件并把它(事件对象)送到一个或多个监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接收,监听器将处理这些事件. 一个事件源必须注册监听器以便监听器可以接收关于一个特定事件的通知. 每种类型的事件都有其自己的注册方法,一般形式为: v
13.1-全栈Java笔记:打飞机游戏实战项目|AWT技术|MyGameFrame
简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用. 比如:多线程用来实现动画效果.容器实现对于多发炮弹的存取和处理.常用类等等的应用. 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上"程序员". 老鸟建议 很多朋友会疑惑:"游戏项目,又不能拿到企业面试中,为什么要讲?" 这是一种太过于功利的想法.就像,我们说:"今天吃个馒头,又不是长高,为什么要吃呢?" 游戏项目的
Java笔记---部署 JavaWeb 项目到云服务器
一.前言 前面我们已经尝过了在云服务器上部署代码的甜头了,现在主菜就要上场了,那就是将我们的 JavaWeb 项目部署到云服务器上.兴奋吧?淡定淡定~ 二.项目部署 我们对于 Java Web 项目在本地机器(无论是 Windows 还是 Linux)上的部署已经了然于心了,那么对于在云服务器上部署 Java Web 项目又是如何操作的呢? 其实很简单,还是离不开 Web 项目部署的那三点: ① 基础的 JDK 环境 ② 一个 Web 服务器.如 Tomcat.JBoss ③ 一款数据库.如:m
JAVA 笔记 七
JAVA笔记七 this:就代表本类的对象,this代表它所在函数所属对象的引用简单说:那个对象在调用this所在的函数,this就代表那个对象静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员static特点1.随着类的加载而加载2.优先于的对象存在3.被所有对象所共享4.可以直接被类名所调用实例变量和类变量的区别:1.存放位置. 类变量随着类的加载而存在与方法区中. 实例
JAVA笔记六
JAVA笔记总结六 把大象放入冰箱的几步: 面向对象的三个特征:封装,继承,多态 JAVA开发实际上就是找对象使用,没有对象就创建一个对象 找对象,建立对象,维护对象的关系 类和对象的关系:类是对现实生活中实物的描述: 对象就是这类事物,实实在在存在的个体 匿名对象:匿名对象可以作为参数进行传递也可以作为对象方法进行一次调用
java 笔记 String 和Stringbuffer
String 是一个类,而不是java中的基本数据类型. String s = "abc"; "abc"是一个对象,存放在常量池中.一旦被初始化就不能被更改了. s = "cde"; 这里并没有改变字符串,而是使对象引用指向字符串cde: String s1 = new String("abc"); String s2 = "abc"; 这两者有什么不同,第一个有两个对象,一个是"abc&qu
14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格
布局管理器 读者会发现,如果使用坐标定位法(空布局),在一个比较复杂的界面上定位每个控件的坐标是一个非常麻烦的工作,而且在界面大小发生改变时,控件的绝对位置也不会随之发生改变.那么如果我们想让用户界面上的组件可以按照不同的方式进行排列怎么办?例如:可以依序水平排列,或者按网格方式进行排列等,其实每种排列方案都是指组件的一种"布局",要管理这些布局,就需要本节学习的布局管理器. 管理布局的类由java.awt包来提供,布局管理器是一组实现java.awt.LayoutManager接口的
14.4-全栈Java笔记: javax.swing常用控件有哪些?怎么用?
常用基本控件 javax.swing.JButton 在图形界面程序中,按钮可能是使用量最大的控件之一,javax.swing包中JButton类就是用来创建按钮的.如表1所示,为JButton常用的构造方法. javax.swing.JLabel JLabel控件是最简单的Swing组件之一,用于在窗体上显示标签, JLabel既可以显示文本,也可以显示图像.如表3所示,为JLabel常用的构造方法. 注意: JLabel只能用于显示文本和图标信息,用户不能对其进行修改. javax.swi
13.3-全栈Java笔记:打飞机游戏实战项目|PaintThread|launchFrame
多线程和内部类实现动画效果 1)增加绘制窗口的线程类 前三个版本,我们步步为营,每个小版本都有功能的突破.但是,目前为止我们的窗口仍然是静态的,并没有像真正的游戏窗口那样"各种动.各种炫".本节我们结合多线程实现动画效果. 我们在MyGameFrame类中定义"重画窗口线程PaintThread类",为了方便使用MyGameFrame类的属性和方法,我们将PaintThread定义成内部类. [示例1]MyGameFrame类:增加PaintThread内部类 pu
4.6-全栈Java笔记:THIS关键字和STATIC关键字
this关键字 对象创建的过程和this的本质 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的.创建一个对象分为如下四步: 1. 分配对象空间,并将对象成员变量初始化为0或空 2. 执行属性值的显示初始化 3. 执行构造方法 4. 返回对象的地址给相关的变量 this的本质就是"创建好的对象的地址"! 由于在构造方法调用前,对象已经创建.因此,在构造方法中也可以使用this代表"当前对