您的位置:首页 > 编程语言 > Java开发

JAVA数组及其他对象笔记

2012-10-14 20:56 330 查看
数组的定义
概念:同一种数据类型的集合。为引用数据类型存到堆内存中。

l 特点:数组中数据从0开始编号,操作方便。JVM运行时检查数组是否越界。

 

数组的声明与初始化:

数组的声明

①数据类型 [] 数组名 ②数据类型 数组名[] 

例如:int(数据元素的类型) [] a(数组名)  或  int a []

声明内存图

数组的实例化

①new 数据类型 [数组长度或个数]  ② new 数据类型 [] {数据元素,、、、、}

例如:new int [4]; new int [] {2,3,4,5}; int a [] = {3,2,4,5};

注意:数组同样进行默认初始化。

实例化内存图

 

排序算法总结

1) 插入排序:

⒈ 从第一个元素开始,该元素可以认为已经被排序 

⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描 

⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置 

⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 

⒌ 将新元素插入到下一位置中 

⒍ 重复步骤2

class Charu

{

    public static void main(String[] args)

    {

       int a [] = {1,9,8,3,0,5,7,3,2,9};

       for(int i=1; i<a.length; i++) {

           for(int j=i; (j>0)&&(a[j]<a[j-1]); j--) {

              swap(a,j,j-1);//交换方法

           }

       }

    }

}

 

2) 冒泡排序:

class Maopao

{

    public static void main(String[] args)

    {

       int a [] = {1,9,8,3,0,5,7,3,2,9};

       for(int i=0; i<a.length; i++) {

           for(int j=a.length-1; j>i; j++) {

              if(a[j]<a[j-1]) {

                  swap(a,j,j-1);

              }

           }

       }

    }

}

3) 选择排序:

public class Xuanze

{

    public static void main(String [] args) {

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

       sort(arr);

    }

    public static void sort(int [] a) {

       for(int i=0; i<a.length-1; i++) {

           for(int j=i+1; j<a.length; j++) {

              swap(a,i,j);

           }

       }

    }

}

 

 

java.lang.System

System类是final类,不能被继承,构造方法私有,不能被实例化。包含三个静态属性:标准输入(InputStream in)、标准输出(PrintStream
out)和错误输出流(PrintStream err)。
标准输入:system.in默认连接到键盘。
标准输出:system.out默认连接到控制台。
错误输出流:在eclipse中调用此方法打印的结果是红色的。
可以通过setIn方法setOu方法tsetErr方法进行重定向。
可以取得当前时间:public static long currentTimeMillis();

垃圾回收:public static void gc(); 调用此方法相当于调用Runtime.getRuntime().gc();需要重写protected
void finalize();方法。
public static Properties getProperties();获取系统属性。
 
 
java.lang.Runtime

每个JVM启动时实际上都对应着一个Runtime实例,表示运行时,使应用程序能够与其运行的环境相连接 。

l  Runtime构造方法被私有化,可以通过Runtime getRuntime()取得实例,属于单例设计。

l  Runtime可以操作JVM。

l  获取JVM的内存和动态库信息。但是无法设置JVM的内存,如果想自己设置JVM的内存可以通过一下方法:

1.单独的.class:java -Xms64m -Xmx256m Test
2.打开eclipse Run->Open Run Dialog->Arguments,在VM arguments中输入-Xms64m -Xmx256m ,点击Run就可以运行程序了。
3.eclipse虚拟机,window->Preferences->Java->Installed JREs选择运行的虚拟机,在Default VM Arguments中加入输入-Xms64m -Xmx256m ,也可以添加其他参数如-Xms128M
-XX:PermSize=64M-XX:MaxPerSize=128M
4.修改eclipse.ini-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
l  运行垃圾回收:void gc();

l  调用本机程序:public Process exec(Stringcommand);

r.exec("notepad ni.txt");   //ni.txt为当前路径下的文件,想访问不同路径文件,需添加路径信息。

 

 

Java日期处理

日期处理类:java.util.Date() 和 java.text.DateFormat的子类SimpleDateFormat以及java.util.Calendar的子类GregorianCalendar。
Date类大部分方法都已经过时,最常用的是 new Date();封装一个当前时间,表示特定的瞬间,精确到毫秒。默认是格林威治标准时和世界时 (UT) 。
注意:月份由从 0至 11的整数表示;0是一月、1是二月等等;因此
11是十二月。
public Date();   初始化Date对象,表示当前时间。
public Date(long date): 分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
 
 
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
l  构造方法:SimpleDateFormat(Stringpattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
l  public final String format(Date date) 格式化方法(日期 -> 文本)  
l  Pattern(模式)用字符串的表示形式为:


Calendar类封装了大量的关于时间的详细信息,以键值对的方式存储在Calendar的静态属性里面。
例如:

DAY_OF_MONTH
一月中的某天
HOUR_OF_DAY
指示一天中的小时
 
 
 
通过protected Calendar()构造方法 或 public static CalendargetInstance()获取带有默认时区和语言环境的Calendar。

 

查表法获取标准时间:

import java.util.*;

public class CalendarDemo

{

       public static String[] mtable = {"一月","二月","三月","四月",

                                                               "五月","六月","七月","八月",

                                                               "九月","十月","十一月","十二月"};

       public static void main(String [] args) {

              Calendar c = Calendar.getInstance();

              int year = c.get(Calendar.YEAR);

              int month = (c.get(Calendar.MONTH));

              String month1 = mtable[month];

              int day = c.get(Calendar.DAY_OF_MONTH);

              int week = (c.get(Calendar.DAY_OF_WEEK)-1);

              System.out.println(year+"年"+month1+day+"日"+week);

 

Java.lang.Math

Math类包含基本的数字操作,如指数、对数、平方根和三角函数。

重要方法:

n  public staticdouble ceil(double a) :返回比当前参数大的最小整数,返回值为double。

n  public staticdouble floor(double a) :返回比当前参数小的最大整数,返回值为double。

n  public staticlong round(double a) :四舍五入。

n  public staticdouble random() : 生成随机数,返回带正号的 double 值,大于或等于 0.0,小于 1.0。返回值是一个伪随机 (pseudorandomly)选择的数,在上述范围内(大致)均匀分布。第一次调用该方法时,它将创建一个新的伪随机数生成器。缺点:返回值为double。

java.util.Random提供同样的随机数生成器,Random 类所实现的算法使用一个 protected 实用工具方法,每次调用它都可提供最多 32 个伪随机生成的位。有多种返回类型,很多应用程序会发现 Math类中的random方法更易于使用。

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐