10.Java常用类和包

1.Object--Java的祖先类

          a.概述:类 Object 是类层次结构的根类,由Java不断向上抽取而来。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

          b.常用方法:

boolean equals(Object obj)
          指示其他某个对象是否与此对象“相等”。

代码示例:

class Person extends Object {
	private int age;

	Person(int age) {
		this.age = age;
	}

	// 覆盖父类equals方法,根据对象特有内容,建立判断对象是否相同
	public boolean equals(Object obj) {
		if (!(obj instanceof Person)) {// 健壮性判断
			throw new ClassCastException("类型转换异常");
		}
		Person p = (Person) obj;

		return this.age == p.age;
	}
}

public class StringDemo {
	public static void main(String[] args) {
		Person p1 = new Person(20);
		Person p2 = new Person(15);
		System.out.println(p1.equals(p2));

	}
}
int hashCode()
          返回该对象的哈希码值。

注意:当 equals 方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。 

Class getClass()
          返回此 Object 的运行时类。

代码示例:

		Person p1=new Person(20);
		Person p2=new Person(15);
		
		Class c1=p1.getClass();
		Class c2=p2.getClass();
		System.out.println(c1==c2);
String  toString()

          返回该对象的字符串表示。

代码示例:

		System.out.println(p1);//默认调用 toString 方法
		System.out.println(p1.getClass().getName()+"@"+Integer.toHexString(p1.hashCode()));//和 p1.toString()值相同
2.String--字符串类

          a.概述:字符串是一个特殊的对象,一旦被初始化就不能被改变

          b.常用方法:
构造方法
代码示例:

	// 等效于String s="";表示一个对象   不等效于常量 String s=null;
	String s = new String();
	
	byte[] arr={97,66,67,68};
	//String(byte[] bytes)自动查ASCII码表 将字节数组变成字符串
	String s1=new String(arr);
	System.out.println("s1="+s1);
	
	char[] arr1={'h','e','l','l','o'};
	//String(char[] value,int offset,int count)分配一个新的String,它包含取自字符数组参数的一个子数组的字符
	String s2=new String(arr1,1,3);
	System.out.println(s2);
常用功能

代码示例:

// 1.获取

	String s = "hello";

	//1.1 int length();获取字符串中字符的个数
	System.out.println("length:" + s.length());

	//1.2 char charAt(int index);根据位置获取字符
	System.out.println("char:" + s.charAt(2));

	//1.3 int indexOf(int ch);返回指定字符在此字符串中第一次出现处的索引。如果不存在返回 -1
	System.out.println("index:" + s.indexOf('l'));
	//1.4 int indexOf(int ch,int fromIndex);返回指定字符在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
	//1.5 int indexOf(String str);返回指定子字符串在此字符串中第一次出现处的索引。
	//1.6 int indexOf(String str,int fromIndex);返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

	//1.7 int lastIndexOf(int ch);回指定字符在此字符串中最后一次出现处的索引。
	System.out.println("index:" + s.lastIndexOf('l'));
	//1.8 int lastIndexOf(int ch,int fromIndex);返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
	//1.9 int lastIndexOf(String str); 返回指定子字符串在此字符串中最右边出现处的索引。
	//1.10 int lastIndexOf(String str,int fromIndex); 返回指定子字符串在此字符串中最右边出现处的索引。

	//1.11 String substring(int beginIndex,int endIndex);返回一个新字符串,它是此字符串的一个子字符串。
	System.out.println("substring:" + s.substring(1, 3));
	//1.12 String substring(int beginIndex);
	
// 2.转换
	
	//2.1 String[] split(String regex)将字符串转成字符串数组(字符串的切割)
	String s2 = "Monday,Tuesday,Wednesday";
	String[] arr = s2.split(",");
	for(int i=0;i<arr.length;i++){
		System.out.println(arr[i]);
	}
	//2.2 char[] toCharArray();将字符串转成字符数组
	char[] chs=s2.toCharArray();
	for(int i=0;i<chs.length;i++){
		System.out.println(chs[i]);
	}
	//2.3 byte[] getBytes();将字符串转成字节数组
	byte[] bytes=s2.getBytes();
	for(int i=0;i<bytes.length;i++){
		System.out.println(bytes[i]);
	}
	//2.4 String toUpperCase(); StringtoLowerCase();将字符串中的字母转换大小写
	System.out.println("hello".toUpperCase());
	//2.5 String replace(char oldch,char newch); String replace(String s1,String s2);将字符串中的内容进行替换
	System.out.println("hello".replace('l', 'x'));
	//2.6 String trim(); 返回字符串的副本,忽略前导空白和尾部空白。
	System.out.println(" hell o ".trim());
	//2.7 String concat(String str);将指定字符串连接到此字符串的结尾。
	System.out.println("hel".concat("lo"));
	//2.8 String valueOf(int i); 返回 int 参数的字符串表示形式。
	System.out.println(String.valueOf(1)+1);
	
//3.判断
	
	//3.1 boolean equals(Object obj);两个字符串内容是否相同
	//    boolean equalsIgnoreCase(String anotherString);将此 String 与另一个 String 比较,不考虑大小写。
	System.out.println("ABC".equalsIgnoreCase("abc"));
	//3.2 boolean contains(String str);字符串中是否包含指定字符串
	//3.3 boolean startsWith(String prefix); 测试此字符串是否以指定的前缀开始。
	System.out.println(s.startsWith("he"));
	//    boolean endsWith(String suffix); 测试此字符串是否以指定的后缀结束。
	
//4.比较
	
	//4.1 boolean compareTo(String anotherString); 按字典顺序比较两个字符串。
	System.out.println("abc".compareTo("acc"));
	//4.2 String intern();返回字符串对象的规范化表示形式。
	String s3=new String("abc");
	String s4=s3.intern();
	System.out.println(s3==s4);

3.StringBuffer--字符串缓冲区类

          a.概述:StringBuffer是一个容器,用于存储元素,必须以字符串的形式调用

          b.特点:长度可变,可存储不同数据类型,要转成字符串进行使用,可对字符串进行修改

          b.常用方法:

代码示例:

	//new StringBuffer();构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
		StringBuffer sb=new StringBuffer();
		
	//1.添加    StringBuffer append(data data);
		sb.append(true);
		sb.append(1);
		sb.append("hello");
		System.out.println(sb);
		//插入  StringBuffer insert(int offset,data data);
		sb.insert(4, "num:");
		System.out.println(sb);
		
	//2.删除  StringBuffer delete(int start,int end);  移除此序列的子字符串中的字符。
		sb.delete(0, 4);
		System.out.println(sb);
		//     StringBuffer deleteCharAt(int index);    移除指定位置的元素
		sb.deleteCharAt(4);
		System.out.println(sb);
		
	//3.修改  StringBuffer replace(int start,int end,String str);
		       System.out.println(sb.replace(0,3,"xxx"));
		//     void setCharAt(int index,char ch);
		       sb.setCharAt(0, 'z');
		       System.out.println(sb);
		       
	//4.查找  char charAt(int index);      回此序列中指定索引处的 char 值。
		//     int  indexOf(String str);    返回第一次出现的指定子字符串在该字符串中的索引。
		//     int  lastIndexOf(String str);返回最右边出现的指定子字符串在此字符串中的索引。
		System.out.println(sb.charAt(0));
		System.out.println(sb.indexOf("ll"));
		System.out.println(sb.lastIndexOf("ll"));
		
	//5.自定义设置缓冲区初始容量  void setLength(int newLength);
	    sb.setLength(10);
	    System.out.println(sb);
	    System.out.println(sb.length());

4.StringBuilder--字符串缓冲区类

          a.概述:一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步(线程不安全),执行速度快

          b.常用方法:

                    同 StringBuffer

5.Integer--对象包装类

          a.概述:将基本数据类型包装成对象。可以在对象中定义更多的方法操作该数据。

          b.常用方法:

代码示例:

	//1.该包装对象主要用基本类型和字符串之间的转换
		//基本类型-->字符串
		     //1.基本类型数值+""
		     //2.用String类中的 静态方法 valueOf(基本类型数值);
			 //3.用Integer的 静态方法 valueOf();
		
	    //字符串-->基本类型
			//用包装类中的静态方法  
			int parseInt("intstring");  
		        long parseLong("longstring");
			boolean parseBoolean("booleanstring");
		    
		   //如果字符串被Integer进行对象的封装 可使用 非静态方法  intValue(); 将一个 Interger 对象转成基本数据类型值
			
	//2.整数具备不同的进制体现
			//十进制-->其他进制
			System.out.println(Integer.toBinaryString(60));
			System.out.println(Integer.toOctalString(60));
			System.out.println(Integer.toHexString(60));
			
			System.out.println(Integer.toString(60,16));
			
			//其他进制-->十进制
			System.out.println(Integer.parseInt("3c",16));
			
	//3.Integer 类中  equals 方法覆盖 Object 类中的 方法,比较两个对象的数值是否相等
			Integer a=new Integer("3");
			Integer a=new Integer(3);
			
			System.out.println(a==b);
			System.out.println(a.equals(b));
			
	//4. 自动装箱,简化书写
			  Integer i=1;
			  Integer i = new Integer(4);
6.System--系统类

         a.概述:System 类包含一些有用的类字段和方法。它不能被实例化方法都是静态的。

          b.常用方法:

代码示例:

//1. static long currentTimeMillis(); 返回以毫秒为单位的当前时间
		System.out.println(System.currentTimeMillis());
		
		//2. static Properties getProperties(); 确定当前的系统属性,并存储到Properties集合中
		Properties prop=System.getProperties();
		
		Set<String> nameSet=prop.stringPropertyNames();
		int count=0;
		for(String name:nameSet){
			String value=prop.getProperty(name);
			count++;
			System.out.println(count+"."+name+":"+value);
		}
		
		//3. static static String getProperty(String key); 获取指定键指示的系统属性。
		private static final String LINE_SEPARATOR=System.getProperty("line.separator");
		System.out.println("分割"+LINE_SEPARATOR+"符");
7.Runtime--运行时环境类

          a.概述:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。

          b.常用方法:

代码示例:

		Runtime r=Runtime.getRuntime();
		// Process exec(String command); 在单独的进程中执行指定的字符串命令
		r.exec("notepad.exe");
8.Math--数学运算工具类

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

          b.常用方法:

代码示例:

		//1.static double ceil(double a);  返回大于参数的最小整数
		//2.static double floor(double a); 返回小于参数的最大整数
		//3.static double round(double a); 返回四舍五入的整数
		
		double d1=Math.ceil(12.56);
		double d2=Math.floor(12.56);
		double d3=Math.round(12.46);
		
		System.out.println("d1="+d1);
		System.out.println("d2="+d2);
		System.out.println("d3="+d3);
		 
		//4.static double pow(double a, double b);返回第一个参数的第二个参数次幂的值。
		double d4=Math.pow(2, 7);
		System.out.println("d4="+d4);
		  
		//5.static double random(); 随机返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。  
		for(int i=0;i<10;i++){
			double d=Math.random();
			System.out.println(d);

9.Date--日期类

          a.概述:类 Date 表示特定的瞬间,精确到毫秒。 

         b.常用方法:

代码示例:

	//1.日期对象和毫秒值之间的转换
		
		//毫秒值-->日期对象
		//通过Date对象的构造方法 new Date(timeMillis);
		Date date=new Date(86400000);
		System.out.println(date);
		//通过setTime设置
		//通过Date对象的方法对该日期中的各个字段(年月日等)进行操作
		
	
	    //日期对象-->毫秒值
		//getTime方法 因为可以通过具体的数值进行运运算
		
	//2.对日期格式格式化
		
		//获取日期格式对象,具备默认的风格 FULL LONG 等可以指定风格
		DateFormat dateFormat =DateFormat.getDateInstance();
		//获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。
		dateFormat=DateFormat.getDateTimeInstance();
		//日期对象-->日期格式的字符串 使用DateFormat 类中的 format 方法
		String str_date=dateFormat.format(date);
		//日期格式的字符串-->日期对象 使用DateFormat 类中的parse 方法
		Date date1=dateFormat.parse(str_date);
		
		System.out.println(str_date);
10.Calendar--日历类

          a.概述:Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEARMONTHDAY_OF_MONTHHOUR日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

         b.常用方法:

代码示例:

		//getInstance() 使用默认时区和语言环境获得一个日历。
		Calendar c=Calendar.getInstance();
	
		//void set(int year, int month, int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 
		c.set(2012,2,20);
		
		//abstract  void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 
		c.add(Calendar.YEAR, 2);
		
		//int get(int field);  返回给定日历字段的值。 
		int year=c.get(Calendar.YEAR);
		int month=c.get(Calendar.MONTH);
		int day=c.get(Calendar.DAY_OF_MONTH);
		int week=c.get(Calendar.DAY_OF_WEEK);
		
		System.out.println(year+"年"+month+"月"+day+"日"+"星期"+week);
11.包  package

          a.包是一种对类的封装形式,写在程序文件第一行

          b.格式: 包名.类名  

          c.作用: 对类文件进行分类管理,给类提供多层命名空间

          d.包与包之间的访问:

                    public          protected         default          private

同一类中      可以               可以                  可以             可以

同一包中      可以               可以                  可以              -----

子类中          可以               可以                  -----              -----

不同包中      可以               -----                  -----              -----

          e.导入指定包中的类使用关键字 import      例: import   java.lang.Object;

           f:Jar--java文件的压缩包

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值