Java基础知识补充(一)

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值