欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基础知识补充(一)

程序员文章站 2022-05-13 22:46:35
...

Java基础知识(一)

主要记录一些平时做题时遇到的忘记的一些Java基础知识。

二维数组的行列获取

二维数组int array[][] = new int[3][3];
行长度:array.length //rows
列长度:array[i].length //columns

StringBuilder和StringBuffer的区别

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

StringBuffer常用方法(StringBuilder同样)

特殊方法
1 | public StringBuffer append(String s) | 将指定的字符串追加到此字符序列。
2 | public StringBuffer reverse() | 将此字符序列用其反转形式取代。
3 | public delete(int start, int end) | 移除此序列的子字符串中的字符。
4 | public insert(int offset, int i) | 将 int 参数的字符串表示形式插入此序列中。
5 | replace(int start, int end, String str) | 使用给定 String 中的字符替换此序列的子字符串中的字符。
与String类相似的方法
1 | int capacity() | 返回当前容量。
2 | char charAt(int index) | 返回此序列中指定索引处的 char 值。
3 | void ensureCapacity(int minimumCapacity) | 确保容量至少等于指定的最小值。
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) | 将字符从此序列复制到目标字符数组 dst。
5 | int indexOf(String str) | 返回第一次出现的指定子字符串在该字符串中的索引。
6 | int indexOf(String str, int fromIndex) | 从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
7 | int lastIndexOf(String str) | 返回最右边出现的指定子字符串在此字符串中的索引。
8 | int lastIndexOf(String str, int fromIndex) | 返回最后一次出现的指定子字符串在此字符串中的索引。
9 | int length() | 返回长度(字符数)。
10 | void setCharAt(int index, char ch) | 将给定索引处的字符设置为 ch。
11 | void setLength(int newLength) | 设置字符序列的长度。
12 | CharSequence subSequence(int start, int end) | 返回一个新的字符序列,该字符序列是此序列的子序列。
13 | String substring(int start) | 返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
14 | String substring(int start, int end) | 返回一个新的 String,它包含此序列当前所包含的字符子序列。
15 | String toString() | 返回此序列中数据的字符串表示形式。

https://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html‘>更详细的说明

字符串与字符

要记住比较的时候是比较字符串还是字符,字符串的话要用equals方法,而比较字符的时候要用单引号!

在Java中只获取一个数组的一部分

从java.util.Arrays类使用copyOfRange方法:

int[] newArray = java.util.Arrays.copyOfRange(oldArray, startIndex, endIndex);

int[] arr = {10, 20, 30, 40, 50};
Arrays.copyOfRange(arr, 0, 2);          // returns {10, 20}
Arrays.copyOfRange(arr, 1, 4);          // returns {20, 30, 40}
Arrays.copyOfRange(arr, 2, arr.length); // returns {30, 40, 50} (length = 5)

容器中包含容器

在容器中包含容器,修改内部容器时也会影响被包含的容器,比如

ArrayList<Integer> list2;
ArrayList<ArrayList<Integer>> list1.add(list2);

如果这时修改了list2,那么list1中的list2也会受影响,避免这种情况的方法是使用clone()方法

ArrayList<ArrayList<Integer>> list1.add((ArrayList<Integer>)list2.clone());

注意clone方法要转换数据类型。

char与string的转换

String到char(数组)

在Java中将String转换为char是非常简单的。
1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char。
2. 使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。

char转换为String

  1. String s = String.valueOf(‘c’); //效率最高的方法

  2. String s = String.valueOf(new char[]{‘c’}); //将一个char数组转换成String

  3. String s = Character.toString(‘c’);
    // Character.toString(char)方法实际上直接返回String.valueOf(char)

  4. String s = new Character(‘c’).toString();

  5. String s = “” + ‘c’;
    // 虽然这个方法很简单,但这是效率最低的方法
    // Java中的String Object的值实际上是不可变的,是一个final的变量。
    // 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
    // 而Java对使用+运算符处理String相加进行了方法重载。
    // 字符串直接相加连接实际上调用了如下方法:
    // new StringBuilder().append(“”).append(‘c’).toString();

  6. String s = new String(new char[]{‘c’});

JAVA 各种数值类型最大值和最小值

fmax = Float.MAX_VALUE;
fmin = Float.MIN_VALUE;
dmax = Double.MAX_VALUE;
dmin = Double.MIN_VALUE;
bmax = Byte.MAX_VALUE;
bmin = Byte.MIN_VALUE;
cmax = Character.MAX_VALUE;
cmin = Character.MIN_VALUE;
shmax = Short.MAX_VALUE;
shmin = Short.MIN_VALUE;
imax = Integer.MAX_VALUE;
imin = Integer.MIN_VALUE;
lmax = Long.MAX_VALUE;
lmin = Long.MIN_VALUE;

String的compareTo方法

compareTo方法按照字典序来对两个字符串进行排序
a.compareTo(b)
如果a大于b则返回1,等于返回0,小于返回-1

StringBuilder和StringBuffer的添加元素

添加元素的方法为append不是add,可以添加int等类型的值,自动转换为string。

相关标签: Java