为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • Java 中 String 类的常用方法 Ⅰ

    String 类提供了许多用来处理字符串的方法,例如,获取字符串长度、对字符串进行截取、将字符串转换为大写或小写、字符串分割等,下面我们就来领略它的强大之处吧。

    String 类的常用方法:

    结合代码来熟悉一下方法的使用:

    运行结果:

    友情提示:

    1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1

    2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1

    3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符


    查看全部
  • public class HelloWorld {

        public static void main(String[] args) {

    String s1 = "imooc";

    String s2 = "imooc";

            

            //定义字符串s3,保存“I love”和s1拼接后的内容

    String s3 = "I love" + s1; 

            // 比较字符串s1和s2

    // imooc为常量字符串,多次出现时会被编译器优化,只创建一个对象

    System.out.println("s1和s2内存地址相同吗?" + (s1 == s2));

            

            //比较字符串s1和s3

    System.out.println("s1和s3内存地址相同吗?" + (s1 == s3));


    String s4 = "I love " + s1;

             //比较字符串s4和s3

    // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象

    System.out.println("s3和s4内存地址相同吗?" + (s4 == s3));

    }

    }


    查看全部
  • Java 中字符串的不变性

    String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。如下所示:

    运行结果:

     

    结合上面的代码,关于字符串小伙伴们必须需要了解滴:

    1、 通过 String s1="爱慕课"; 声明了一个字符串对象, s1 存放了到字符串对象的引用,在内存中的存放引用关系如下图所示:

    然后通过 s1="欢迎来到:"+s1; 改变了字符串 s1 ,其实质是创建了新的字符串对象,变量 s1 指向了新创建的字符串对象,如下图所示:

    2、 一旦一个字符串在内存中创建,则这个字符串将不可改变。如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder(后面章节中会讲到)。

    3、 每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法(前面条件运算符章节讲过哦~~)


    查看全部
  • 如果要获得集合中某个元素的索引位置,就要用到 indexOf方法, 集合.indexOf(对象)

    查看全部
  • 什么是 Java 中的字符串

    在程序开发中字符串无处不在,如用户登陆时输入的用户名、密码等使用的就是字符串。其实,在前面的章节中我们就已经使用了字符串,例如我们在控制台中输出的 "Hello World" 、 "imooc" 、"爱慕课"等。

    在 Java 中,字符串被作为 String 类型的对象处理。 String 类位于 java.lang 包中。默认情况下,该包被自动导入所有的程序。

    创建 String 对象的方法:


    查看全部
  • 实际应用中的经验与总结

    1.处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理;

    2.在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常;

    3.对于不确定的代码,也可以加上一个try-catch,处理潜在的异常;

    4.尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出,最好在打印异常原因的同时加以其他操作,比如业务回滚等;

    5.具体如何处理异常,要根据不同的业务需求和异常类型去决定;

    6.尽量添加finally语句块去释放占用的资源,尤其是有网络连接和连接数据库的情况下。

    作业:

    模拟借书系统

    要求:

    1.定义字符串数组保存图书信息;

    2.提示用户输入,分别按“书名”和“图书序号”查找图书;

    3.根据输入信息进行适当的异常处理

    a.如果输入类型错误,抛出“错误命令异常”,并提示重新输入;

    b.如果书名不存在,抛出“图书不存在异常”,并提示重新输入;

    c.如果图书序号超过字符串数组范围,抛出“图书不存在异常”,并提示重新输入。


    查看全部
    1 采集 收起 来源:经验总结

    2018-05-17

  • 解析:捕获到的异常,可以在当前方法的catch块中处理,也可抛出给调用者去处理

    查看全部
    0 采集 收起 来源:练习题

    2018-05-17

  • Java中的异常链

    把捕获的异常包装成一个新的异常,然后在新的异常里添加对原始异常的引用,再把这个新异常抛出,他们像是链式反应一样,一个导致另一个,在Java中这种情况就叫异常链。

    例:

    package.com.imooc.test;

    public class ChainTest{

    /**

    *test1():抛出“喝大了”异常

    *test2():调用test1()捕获“喝大了”异常,并且包装成运行时异常,继续抛出

    *main()方法中,调用test2(),尝试捕获test2()方法抛出的异常

    */

    public static void main(String[] args){

    //TODO Auto-generated method stub

    ChainTest ct = new ChainTest();

    try{

    ct.test2();

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    public void test1() throws DrunkException{

    throw new DrunkException("喝车别开酒!");

    }

    public void test2(){

    try{

    test1();

    }catch(DrunkException e){

    //TODO Auto-generated catch block

    //-------------------------------------------------------------

    //方法一:

    RuntimeException newExc = new RuntimeException("司机一滴酒,亲人两行泪");

    newExc.initCause(e);

    //------------------------------------------------------------

    //方法二:

    RuntimeException newExc = new RuntimeException(e);

    //------------------------------------------------------------

    throw newExc;

    }

    }

    }


    查看全部
  • https://img1.sycdn.imooc.com//5afc67bb0001b36b13660767.jpg

    查看全部
  • https://img1.sycdn.imooc.com//5afc66df0001fc5f07340387.jpg

    查看全部
  • // 定义一个整型数组,长度为10

    int[] nums = new int[10];

            

            //通过循环给数组赋值

    for (int i = 0; i < nums.length; i++) {

                // 产生10以内的随机数

    int x = (int) (Math.random() * 10);

                

    nums[i] = x;// 为元素赋值

    }

            

    // 使用foreach循环输出数组中的元素

    for ( int num:nums ) {

    System.out.print(num + " ");

    }

    }

    }


    查看全部
  • // 使用foreach循环输出数组中的元素
    for (类型 变量名 : 需要遍历的数组名) {
    System.out.print(变量名 + " ");
    }

    查看全部
  • // 创建Calendar对象

    Calendar c =Calendar.getInstance(); 

            

    // 将Calendar对象转换为Date对象

    Date date = c.getTime();

    //获取当前毫秒值。

            //Long time = c.getTimeMillis();

    // 创建SimpleDateFormat对象,指定目标格式

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            

    // 将日期转换为指定格式的字符串

    String now = sdf.format(date);

    System.out.println("当前时间:" + now);


    查看全部
  • // 使用format()方法将日期转换为指定格式的文本

    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

    // 创建Date对象,表示当前时间

            Date now = new Date();

    // 调用format()方法,将日期转换为字符串并输出

    System.out.println(sdf1.format(now));

    // 使用parse()方法将文本转换为日期

    String d = "2014-6-1 21:05:36";

     // 调用parse()方法,将字符串转换为日期

    Date date = sdf.parse(d);

    System.out.println(date);

    查看全部
  • 基本类型不能调用方法,只有基本类型的包装类才有很多方法调用。基本类型的包装提供了不同类型转换的方法。基本类型的包装类都想java.lang包中;基本类型都有一个包装类,类名的首字母都是大写的

    查看全部
    0 采集 收起 来源:练习题

    2018-05-16

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!