java高级部分(一)

                                       Arrays类

  Arrays:针对数组操作的工具类  (提供了一些针对数组排序和二分搜索法)

   public static String toString(int[] a):可以将int类型的数组转换成字符串 ([元素1,元素2,元素3...])

   public static void sort(int[] a)对指定的 int 型数组按数字升序进行排序

   public static int binarySearch(int[] a,int key):二分搜索法: int类型的数组中查找key元素的索引

                                      Calendar

Calendar:日历类

 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等 日历字段之间的转换提供了一些方法,

  并为操作日历字段(例如获得下星期的日期)提供了一些方法

 Calendar是一个抽象类,如何实例化?

  public static Calendar getInstance() :通过一个静态功能来创建日历对象

Calendar中的两个常用方法:

 public abstract void add(int field,int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量

 (这个方法常用)

 public final void set(int year, int month,int date)设置日历字段 YEARMONTH DAY_OF_MONTH 的值

  需求:获取任意一年的二月有多少天?

 分析:

  1)键盘录入任意一个年份

  2)创建日历类对象

  3)设置年月日

  set(录入year,2,1) ; //实际是31

  4)再利用add(int field,int amount) : 在这里只需要将日期往前退一天即可


                      System类

System 包含一些有用的类字段和方法。它不能被实例化。

常用的方法:

public static void gc():运行垃圾回收器。

public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;  一般情况,需要终止

Jvm,那么参数0

public static long currentTimeMillis():返回以毫秒为单位的当前时间

  •  System.gc(); //运行垃圾回收器,实质是执行的finalize()方法

public static void arraycopy :(Object src,int srcPos, Object dest,int destPos, int length)

                      从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

src:原数组

dest:目标数组

srcPos :从原数组的哪个位置开始

destPos:到目标数组的哪个位置结束

length:长度

final,finally,finalize的区别?

Final用于修饰类、成员变量和成员方法。final修饰的类,不能被继承(String、StringBuilder、StringBuffer、Math,不可变类),其中所有的方法都不能被重写,所以不能同时用abstract和final修饰类(abstract修饰的类是抽象类,抽象类是用于被子类继承的,和final起相反的作用);Final修饰的方法不能被重写,但是子类可以用父类中final修饰的方法;Final修饰的成员变量是不可变的,如果成员变量是基本数据类型,初始化之后成员变量的值不能被改变,如果成员变量是引用类型,那么它只能指向初始化时指向的那个对象,不能再指向别的对象,但是对象当中的内容是允许改变的。

Finally通常和try catch搭配使用,保证不管有没有发生异常,资源都能够被释放(释放连接、关闭IO流)。

Finalizeobject类中的一个方法,子类可以重写finalize()方法实现对资源的回收。垃圾回收只负责回收内存,并不负责资源的回收,资源回收要由程序员完成,Java虚拟机在垃圾回收之前会先调用垃圾对象的finalize方法用于使对象释放资源(如关闭连接、关闭文件),之后才进行垃圾回收,这个方法一般不会显示的调用,在垃圾回收时垃圾回收器会主动调用。

import java.util.Calendar;

class Student{
	
}
public class system {
	public static void main(String[] args) {
		Student s=new Student();
		s=null;
		System.gc();
		System.out.println("123");
//		System.exit(0);
		System.out.println("456");
		long time=System.currentTimeMillis();
		System.out.println(time);
		Calendar c=Calendar.getInstance();
		c.set(1990, 5,15);
		long tinm1=System.currentTimeMillis();
		System.out.println(tinm1);
		System.out.println((time-tinm1));
		
		
	}

}


                                             Date

  java.util.Date:

   Date 表示特定的瞬间,精确到毫秒

构造方法:

   public Date() : 表示分配它的时间(精确到毫秒)。

   public Date(long date):创建一个日期对象,指定毫秒值 (需要将long 时间毫秒值转换成Date对象)

其他方法:

  public void setTime(long time):设置毫秒值

  public long getTime()  : Date--->long的毫秒值

重点:Date的日期格式和日期的文本格式String类型之间进行转换

  Date---->String(格式化)

  String-->Date(解析)

  中间的转换:使用一个中间类:DateFormat,并且DateFormat是一个抽象类,抽象意味着不能实例化,所以应该考虑用它的子类:

   SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

   SimpelDateFormat的构造方法:

   public SimpleDateFormat(String pattern) :构造一个SimpleDateFormat对象,根据pattern(模式:规则)

   SimpleDateFormat sdf = new SimpleDateFormat("xxxxxxx") ;

   日期和时间模式:

    : yyyy

    : MM

    : dd

  

    : hh

    : mm

    : ss

 实际开发中:牵扯时间的东西,经常要Date--String  String--Date转换;

这是DateStirng文本格式进行相互转换的工具类

public class DateUtil {
	
	//无参构造私有化
	private DateUtil() {
		
	}
	
	/**
	 * 这是一个将Date的日期格式转换成日期的文本格式
	 * @param format  模式
	 * @param d      需要被格式化的Date格式
	 * @return 返回的就是日期的文本格式
	 */
	public static String dateToString(String format,Date d) {
		/*SimpleDateFormat sdf = new SimpleDateFormat(format) ;
		String s = sdf.format(d) ;
		return s ;*/
		
		return new SimpleDateFormat(format).format(d) ;
	}
	
	/**
	 * 这一个将字符串文本日期格式转换Date的日期格式的功能
	 * @param format  模式
	 * @param s  需要被解析的日期文本格式
	 * @return 返回的就Date日期格式
	 * @throws ParseException 解析如果出问题了,就会有这个异常
	 */
	public static Date stringToDate(String format,String s) throws ParseException {
		
		return new SimpleDateFormat(format).parse(s) ;
	}
}
//		注意 :simpleDateFormat在解析文本格式的时候,里面 模式(规则)一定要和文本格式的模式一直,否则就出现PareseException


                                        Math类

Math 类:包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。  

 常用的方法:

  public static int abs(int a):绝对值

  public static double ceil(double a):向上取整

  public static double floor(double a):向下取整

  public static int max(int a,int b):求最大值

  public static int min(int a,int b):求最小值

  public static double pow(double a,double b):ab次幂

  public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

  public static int round(float a):四射五入

  public static double sqrt(double a):一个数的正平方根

                                       Random类

Random:是一个可以获取随机数的类

 public Random():无参构造方法

 public Random(long seed) :指定long类型的数据进行构造随机数类对象

 public int nextInt():获取随机数,它的范围是在int类型范围之内

 public int nextInt(int n):获取随机数,它的范围是在[0,n)之间

public class RanomDemo {
	public static void main(String[] args) {
		Random r=new Random();
		for(int i=0;i<4;i++) {
			int n=r.nextInt(10);
			System.out.println(n);
		}
	}

}

猜你喜欢

转载自blog.csdn.net/m0_37167369/article/details/80167105