0
点赞
收藏
分享

微信扫一扫

Java文档第二弹

其生 2022-01-13 阅读 79
  1. 数组排序
//1.parallelSort方法
Arrays.parallelSort();
//2.Sort方法
Arrays.sort();
//3.重载方法
Integer arri[] = new Integer[] {72, 7, 65, 72, 91, 91, 91, 89, 65, 58, 87, 9};
Arrays.sort(arri, new Comparator<Integer>() {
	//arri数组的类型必须和<  >中的类型一致
    public int compare(Integer a, Integer b) {
         return b - a;//后 - 前 返回降序
//       return a - b;//前 - 后 返回升序
    }
});
  1. 二分查找
//二分查找 找到返回下标 找不到返回 -p (p是元素应该插入的位置)
Arrays.binarySearch(a, 0);
  1. 复制数组
Arrays.copyOf(arr, len);
//将该数组前len个数值复制到新数组中,新数组的长度为len
Arrays.copyOfRange(arr, from, to);
//将该数组第from到第to个元素复制到新数组中,新数组的长度为to - from
  1. 填充数组
Arrays.fill(arr, from, to, value);
//将arr第from到第to个元素填充为value
  1. String类型
    (1) 字符串不是基本数据类型
    (2) String不是关键字
    (3) String在java.lang包下
    (4) 字符串拼接 +
    (5) 任意类型和字符串拼接后得到的结果都是字符串
//查找子串第一次出现的下标位置
A.indexOf(B);
//查找该字符串B在A中的第一次出现的位置 找到返回下标 找不到返回-1
//若B有很多字符,则返回第一个字符的下标
		
//查找子串最后一次出现的下标位置
A.lastIndexOf(B);
//查找该字符串B在A中的最后一次出现的位置 找到返回下标 找不到返回-1

//获取A字符串第no个字符
A.charAt(no);

//截取字符串
A.substring(begin, end);
//不包含end位置的值

//返回字符数组
char[] a = s.toCharArray();

//分割字符串
String result[] = ori.split("6");//用'6'来切割字符串
String result[] = ori.split("[68]");//用'6','8'来切割字符串
//切割字符串后,该字符消失

//字符替换replace(old, new);
String result = ori.replace("1","0");
//用new来替换old

//比较字符串的值是否一样 
A.equals(B);

//拼合字符串
String [] str_arr = {"12", "34", "56", "78"};
String str = "";
for (int i = 0; i < str_arr.length; i++) {
	str += str_arr[i];			
}

/**
*StringBuffer && StringBuilder
*StringBuffer 线程安全 慢
*StringBuilder 线程不安全
*/
A.append(B);//往StringBuffer内添加字符串	
/**
 1. 为什么要使用StringBuffer 和StringBuilder?
 2. 在字符串拼接过程中会产生中间量,大数量的拼接会导致程序变慢
 3. StringBuffer中使用一个数组来存储拼接的内容
 4. 拼接完成后将该数组转为一个字符串,这样就避免中间量的生成
 5. 执行append方法,向value数组追加字符,
 6. 在追加过程中,value数组不能存储要追加的部分,
 7. 如果数组value的长度不够就需要扩容
 8. 扩多大?
 9. (value.length<<1)+2, 如果这个空间还不够,需要多大就给多大
*/
  1. 数组扩容
//不是真正的扩容,是将原数组的内容放到更大的数组中
System.arraycopy(old_arr, old_pos, new_arr, new_pos, copy_length);
//将old_arr从old_pos开始的总计copy_lebgth个元素复制到new_arr中
//其中,从new_arr的new_pos开始进行操作

  1. java类默认可以访问本包下的类
    java类默认导入java.lang包
    如果本包的类和其他包的类名相同,需要访问别的包的类时,直接写该类全名

  2. 类和对象
    面向对象三大特征:封装, 继承, 多态

  3. 构造方法
    构造函数对对象中的属性初始化操作,或者时准备资源
    系统会自动给每一个类添加一个无参构造方法
    如果自定义了构造方法,系统默认构造方法就不存在了
    子类的构造方法中,第一行必定是super(),即父类的构造方法。

  4. static
    通过static声明的属性和方法输入类的,可以通过调用类名直接调用
    一个类中静态方法不能直接调用非静态方法和非静态属性
    因为在java中类对象先被加载, 这时对象还未生成

  5. 访问权限修饰符(访问权限由高到低)
    public     公共的(在任何包中都可以调用)
    protected  受保护的(家族性的)(仅限继承类使用)
    default    默认的(本包下可使用)
    private    私有的(只可被本类使用)

  6. 类中代码加载顺序
    静态代码块(必须使用才会加载,并且只在最初new的时候执行一次)->普通代码块(每次new都会执行)->构造方法
    顺序
    1-执行父类静态代码块
    2-子类的静态代码块
    3-父类的普通代码块
    4-父类的构造方法
    5-子类的普通代码块
    6-子类的构造方法

  7. 跳出循环

name : while(true) {
			while(true) {
				if(b == 0) {
					break name;
				}
			}
		}
举报

相关推荐

0 条评论