Static关键字
如果一个成员变量用了ststic关键字,那么这个变量不再属于对象自己,而是属于类。 多个对象共享同一个数据
倘若成员方法用Static修饰,那么就成为静态方法。 静态方法不属对象,属于类 如果没有Static关键字,那么必须先创建对象,然后通过对象使用他 如果有了Static关键字,则不需要创建对象,直接通过类名称使用即可 无论是成员变量还是成员方法,如果使用了Static修饰,都推荐使用类名称进行调用 静态变量: 类名称.静态变量 静态方法: 类名称.静态方法() 注意事项: 1.静态不能直接使用非静态 【原因】因为内存中是先有静态内容,后有非静态内容 (先人不知到后人,但后人晓得先人) 2.静态方法中不能用this 【原因】this代表当前对象,通过谁调用的方法,谁就是当前对象
静态代码块: public class 类名称{ static{ //静态代码块的内容 } } 特点:当第一次用到本类时,静态代码块执行唯一的一次 静态内容总是优先于非静态,所以静态代码块比构造方法先执行 静态代码块的典型用途: 用来一次性的对静态成员变量赋值
Arrays
java.util.Arrays是一个与数组有关的工具类,里面提供了大量的静态方法,用来实现数组常见操作
puplic static String toString(数组):将参数数组变成字符串(按照默认格式[元素1,元素2,元素3····· ])
public static void sort(数组):按照默认升序(从小到大),对数组的元素进行排序
注意事项:
- 如果是数值,sort默认按照升序从小到大
- 如果是字符串,sort默认按照字母升序
- 如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持(今后学习)
练习题
package Sunday; import java.util.Arrays; //题目: //请使用Arrays相关的API,将一个随机字符串中的所有字符升序排列,并倒叙输出 public class Test01Array { public static void main(String[] args) { String str = "dakwdgadalkwhdqaw93712"; //如何使用升序排列 ---> sort //必须是一个数组,才能用Arrays.sort方法 //String --> 数组, toCharArray char[] chars = str.toCharArray(); Arrays.sort(chars); //对数组进行升序排列 //需要倒序遍历数组 for (int i = chars.length - 1; i >= 0; i--) { System.out.print(" "+chars[i]+" "); } } }