Contents

java基础

菜鸟教程

整型数据范围

byte:-128 ~ 127 (1个字节,$-2^{7}至(2^{7}-1)$)
short: -32768 ~ 32767 (2个字节,$-2^{15}至(2^{15}-1)$)
int: -2147483648 ~ 2147483647 (4个字节,$-2^{31}至(2^{31}-1)$)
long: -9223372036854775808 ~ 9223372036854775807 (8个字节,$-2^{63}至(2^{63}-1)$)

数学公式

调用Math函数

String

StringBuffer

菜鸟教程

需要动态改变string时通常使用StringBuffer 和 StringBuilder类

String和char[]互转

  • char[] to String

    String s = String.valueOf(char[])
    String s = new String(char[])

  • String to char

    char[] c = s.toCharArray()

char转int

int n = char -‘0’

String转int

int n = Integer.valueOf(String s)

hashSet

只能为引用类型

自定义sort排序函数

  • 类数组
    //按二维数组intervals第二位升序排序
    Arrays.sort(intervals, new Comparator<int[]>() {
        @Override
        public int compare(int[] a, int[] b) {
            return a[1] - b[1];
        }
    });
    
  • 集合
    Collections.sort(n,new Comparator<T>(){
        @Override
        public int compare(T o1, T o2) {
            ...
        }
    });
    

二维数组

二维数组本质上也是个一维数组,但该一维数组的每个元素又都是一个一维数组。

  • 初始化
        //静态初始化
        int[][] a={{1,2,3,4},{4,5,6,7},{8,9,10,11}};
        //动态初始化
        String[][] b=new String[10][10];
        b[0]=new String[]{"zahngsan","lisi","wangwu"};
        b[1]=new String[]{"java","python","c++"};
    

列表

菜鸟教程

  • 初始化

    List<int[]> list= new LinkedList<int[]>(); List list = new ArrayList(Arrays.asList("")); List中T需为泛型,int等基本数据类型不可行。

  • 转数组

    list.toArray(T[] a); //T[] a 表示用于存放的数组

  • 获取元素

    用list.get(i)而不能用list[i],只有数组才能直接访问

参数传递

java中函数传参是值传递, 不是引用传递.

  • 值传递 (pass by value): 是指在调用函数时将实际参数复制一份传递到函数中, 这样在函数中如果参数进行修改,将不会影响到实际参数。
  • 引用传递 (pass by reference): 是指在调用函数时将实际参数的地址直接传递到函数中, 这样在函数如果对参数进行修改, 将影响实际参数。
  • 一个方法不能修改一个基本数据类型的参数;
  • 一个方法可以改变一个对象参数的状态(属性);例如:
    public void testParam(){
        User user = new User("zs", 1);
        pass(user);//user.username改变为张三
        System.out.println(user);
    }
    public static void pass(User u){
        u.setUsername("张三");
    }
  • 一个方法不能实现让对象参数引用一个新对象;例如:
    public void testParam(){
        String a="abc";
        pass(a);//a还是abc
        System.out.println(a);
    }
    public static void pass(String a){
        a = "ABC";
    }