-
检查异常查看全部
-
异常查看全部
-
throwable查看全部
-
字符串str中字符的索引从0开始,范围为0到str.length()-1
使用indexOf进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配到结果,返回-1
使用substring(begininIndex,endIndex)进行字符串截取时,包括beginIndex位置的字符,不包括ebdIndex位置的字符
查看全部 -
异常问题实际应用中的经验与总结
处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的问题。
对于不确定的代码,也可以加上try-catch,处理潜在的异常。
尽量处理异常,切忌只是简单的调用printStackTrace()去打印输出
具体如何处理异常,要根据不同的业务需求和异常类型去决定
尽量添加finally语句块去释放占用的资源
查看全部 -
package com.imooc_b;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class CollectionsTset {
public void Sort() {
List<String> listTset = new ArrayList<String>();
Random random = new Random();
// 生成十条不重复的字符串(由数字和字母组成)
for (int i = 0; i < 10; i++) {
StringBuffer buffer = new StringBuffer();
do {
// 字符串长度为10以内的整数,nextInt()范围为(0,9),字符串长度不想设置为空就加1
int k = random.nextInt(9) + 1;
// 随机生成字符串
for (int j = 0; j < k; j++) {
int b;
do {
// 随机生成0到122的数字,0到9表示数字字符,65到90表示'A'到'Z'
// 97到122表示'a'到'z'
b = (int) (Math.random() * 123);
}
// 当生成的字符为'0'到'9'或'a'到'z'或'A'到'Z'时跳出
while (!((b >= 0 && b <= 9) || (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z')));
if (b >= 0 && b <= 9) {
String in = Integer.toString(b);
buffer.append(in);
} else {
char ch = (char) b;
String in = String.valueOf(ch);
buffer.append(in);
}
}
} while (listTset.contains(buffer.toString()));
// 如果list没有该字符串就加入
listTset.add(buffer.toString());
}
System.out.println("-------排序前----------");
for (String string : listTset) {
System.out.println("元素:" + string);
}
Collections.sort(listTset);
System.out.println("---------排序后---------");
for (String string : listTset) {
System.out.println("元素:" + string);
}
}
public static void main(String[] args) {
CollectionsTset ct = new CollectionsTset();
ct.Sort();
}
}
查看全部 -
功能案例说明
查看全部 -
1、如果要对日期进行处理,一般使用Calendar类
2、Calendar是通过该类的getInstance()方法获取实例(对象),此对象已由当前日期时间初始化,这个方法是静态方法,所以只能用类来调用
3、要想打印输出、赋值,需转换成Date类,用getTime()方法,此方法是非静态方法
查看全部 -
set 两个参数().第一个是索引位置的值,另一个是新对象的值
查看全部 -
1、Set和List都是Collection类的子类
2、List是有序可重复的集合,实现类是ArrayList;Set是无序且不可重复,实现类是HashSet
查看全部 -
1、List集合中的元素时被忽略其类型,也就是说都是Object类型,取出时需要强转
2、泛型是控制集合中元素的类型,取出时不需要强转
3、格式,已List为例
List<类型>属性名 = new ArrayList<类型>;
4、泛型和泛型的子类是可以共存在一个集合
5、泛型的类型不能是基本类型,只能是包装类和对象引用、String
查看全部 -
从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld"。当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
查看全部 -
equals适用于字符串,若字符判断,直接用等号
查看全部 -
// Java文件名
String fileName = "HelloWorld.java";
// 邮箱
String email = "laurenyang@imooc.com";
// 判断.java文件名是否正确:合法的文件名应该以.java结尾
/*
参考步骤:
1、获取文件名中最后一次出现"."号的位置
2、根据"."号的位置,获取文件的后缀
3、判断"."号位置及文件后缀名
*/
//获取文件名中最后一次出现"."号的位置
int index = fileName.lastIndexOf('.');
// 获取文件的后缀
String prefix = fileName.substring(index+1);
// 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
if (index !=1 && prefix.equals("java")) {
System.out.println("Java文件名正确");
} else {
System.out.println("Java文件名无效");
}
查看全部 -
String 类型的字符串是不可变的,如果改变了,其实是创建了新的对象,然后变量指向了新对象的内存地址,废除了原来指向的内存地址。用I love+s1连接后,实际上是创建了一个新的对象,也就有了新的内存地址,s3和s4各自创建了一个新对象,所以说他们2个用==比较的结果是false
查看全部
举报