-
Error 是系统错误类; VirtualMachineError 是 Error 子类; Thread 是线程类, Exception 是异常类,自定义异常要继承于 Exception 类或者其子类查看全部
-
throw一将产生的异常抛出(动作) throws一声明将要抛出何种类型的异常(声明) public void方法名(参数列表) throws异常列表{ 刀调用会抛出异常的方法或者: throw new ExceptionO;查看全部
-
异常体系结构 1、所有异常都继承于Throwable类,其下有两大子类: (1)Error类:错误,一般编程人员不太接触,如虚拟机错误、线程死锁。硬伤:使程序崩溃 (2)Exception类:异常,编码、环境、用户输入等问题,其子类主要有: ·非检查异常(运行时异常RuntimeException):【由java虚拟机自动捕获】如空指针NullPointer、越界ArrayIndexOutofBounds、错误类型转换ClassCast、算数异常Arithmetic等 ·检查异常CheckException:【需要手动添加捕获和处理语句】文件异常IO等查看全部
-
//调用此方法randomString(int),int是字符串的长度,即可产生指定长度的随机字符串查看全部
-
布和不,傻傻分不清查看全部
-
String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。 通过 String s1="爱慕课"; 声明了一个字符串对象, s1 存放了到字符串对象的引用 然后通过 s1="欢迎来到:"+s1; 改变了字符串 s1 ,其实质是创建了新的字符串对象,变量 s1 指向了新创建的字符串对象 2、 一旦一个字符串在内存中创建,则这个字符串将不可改变。如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder(后面章节中会讲到)。 3、 每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法查看全部
-
collection map 集合查看全部
-
实际应用中的经验与总结 1.处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理 2.在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常 3.对于不确定的代码,也可以加上try-catch,处理潜在的异常 4.尽量去处理异常,切忌只是简单的调用printStackTraceO去打印输出 5.具体如何处理异常,要根据不同的业务需求和异常类型去决定 6.尽且添加finally语句块去释放占用的资源查看全部
-
public class chainTest { /** * @param args * Test1抛出喝大了异常 * Test2调用test1捕获了喝大了异常,并且包装成运行时异常,继续抛出 * main方法中调用test2尝试捕获test2方法抛出的异常 */ public static void main(String[] args) { try{ // TODO Auto-generated method stub chainTest ct=new chainTest(); ct.Test2();} catch(Exception e){ e.printStackTrace(); } }public void Test1()throws DrunkException{ throw new DrunkException("喝车别开酒"); } public void Test2(){ try{ Test1(); }catch( DrunkException e){ RuntimeException rte=new RuntimeException(e); //rte.initCause(e); e.printStackTrace(); throw rte; } } }查看全部
-
public class chainTest { /** * @param args * Test1抛出喝大了异常 * Test2调用test1捕获了喝大了异常,并且包装成运行时异常,继续抛出 * main方法中调用test2尝试捕获test2方法抛出的异常 */ public static void main(String[] args) { try{ // TODO Auto-generated method stub chainTest ct=new chainTest(); ct.Test2();} catch(Exception e){ e.printStackTrace(); } }public void Test1()throws DrunkException{ throw new DrunkException("喝车别开酒"); } public void Test2(){ try{ Test1(); }catch( DrunkException e){ RuntimeException rte=new RuntimeException("司机一滴酒,亲人两行泪"); rte.initCause(e); e.printStackTrace(); throw rte; } } }查看全部
-
类的equals方法的重写查看全部
-
对象存入集合都变成Object类型,取出时需要类型转换查看全部
-
例如:在下面的示例代码中,创建了 StringBuilder 对象,用来存储字符串,并对其做了追加和插入操作。这些操作修改了 str 对象的值,而没有创建新的对象,这就是 StringBuilder 和 String 最大的区别。查看全部
-
在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串,那么它们之间有什么区别呢? String 类具有是不可变性 从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存 "helloworld"。当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。至于 StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。查看全部
-
==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 equals(): 比较存储在两个字符串对象中的内容是否一致 PS:字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89” ,而英文字母 “J” 对应 “74” 。同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示查看全部
举报
0/150
提交
取消