zoukankan      html  css  js  c++  java
  • 201521123040《Java程序设计》第2周学习总结

    1. 本周学习总结

           本周学习目录: 
            <1>回顾(Java程序)
            <2>掌握各种数据类型的使用
            <3>掌握运算符和表达式的使用 
            <4>枚举类、String类
            <5>Math类
            <6>掌握Java程序简单的输入输出方法
            <7>流程控制与数组
            <8>掌握Java API文档的使用方法
    
        ①基本了解了数据的基本类型有:整数类型(byte,short,int,long,char),浮点类型(float,double),boolean类型(true, false),引用类型有:数组,类,接口,null类型。
        ②基本掌握运算符和表达式的使用方法,不过对于三元运算符的使用并不是很熟练。
        ③枚举类型看起来似乎简单,实际上使用的时候我还是觉得没有if else好用。
        ④string类是重点难点,我还是有点云里雾里,尤其StringBuilder的使用不懂什么情况。
        ⑤Math类 是什么东西?百度的出来的都是些Java中比较常用的几个数学公式总结,是指这些常用的函数吗?
            Math.floor(-1.8); //取整,返回小于目标函数的最大整数,如下将会返回-2
            Math.ceil(); //取整,返回发育目标数的最小整数
            Math.round(); //四舍五入取整
            Math.sqrt(); //计算平方根
            Math.cbrt(); //计算立方根
            Math.exp(3);  //返回欧拉数e的n次幂
            Math.pow(3,2);  //计算乘方,下面是计算3的2次方
            Math.log();  //计算自然对数
            Math.abs();  //计算绝对值
            Math.max(2.3,4.5);  //计算最大值
            Math.min(,);  //计算最小值
            Math.random;  //返回一个伪随机数,该数大于等于0.0并且小于1.0
    
        ⑥已掌握JAVA简单的输入输出方法。
        ⑦了解了流程控制与数组
        ⑧不了解掌握Java API文档的使用方法
    

    2. 书面作业

    #(1)使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。
        *使用Eclipse关联jdk源代码的步骤如图所示:
    

        *按住Ctrl+左键点击String即可查看String对象的源代码
    

        #(2)为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
            - String类型在做字符串的连接操作时,效率很低,每做一个连接操作,都会在内存中创建一个新的对象,占用大量的内存空间。StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。
    
        #(3)比较两个字符串的值是否相等?为什么不能用==直接进行比较?
            -Java中,如果两个字符串是这样 Sting a=“a” 赋值方式时,同样也可以使用 == 来比较是否相等,但实际上也不是在比较两个变量的内容,当新一个变量赋值时( Sting a=“a” 赋值方式会把值放到栈中)先会从栈中找是否有相同的值,如果有就会直接指向那个值,所以使用==也可比较是否相等。
            -但如果是new String("a")这样new出字符串对象时,即使内容完全一样,使用==比较也是false,因为==比较的是堆内存中的地址,所以只能是用equals()方法比较内容。
    
        #(4)尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
            String str1 =“hi“, str2=“hi“;
            String str3 = new String(str1)
            System.out.println(str1==str2);
            
            输出结果为“true”。
            代码创建了两个字符串对象。str1和str2地址相同,str1和str3地址不同。所以是两个字符串对象。
    
        #(5)Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
            在编译Integer i = 100的时候,会将其翻译成Integer i=Integer.valueOf(100),即将100值赋给i。
    
        #(6)尝试分析下面代码输出结果
        Integer i1 = 127;Integer i2 = 127;
        i1 == i2;//true of false?
        Integer i1 = 128;Integer i2 = 128;
        i1 == i2;//true of false
    
        第一个输出“ture”,第二个输出“false”.
        int常量池中初始化-128~127的范围,当Integer i=128时,128不在常量池范围内,所以在自动装箱过程中需new 128,所以地址不一样,输出false。
    
    
        #(7)package与javac、 java、 -classpath、 -d
            在 com.ibm包中编写 StringUtil类,内有一方法
            public static void foo1(){
            System.out.println(StringUtil.class+" method:foo1");
            }
            在edu.jmu包中编写Main类,其中掉了com.ibm.StringUtil的foo1方法
    
            ##(7.1) 尝试用命令行进行编译并运行,截图
    
            ##(7.2) 将生成的StringUtil.class放到d:lib正确的目录结构下,将Main.class在d:	est正确的目录结构,尝试在命令行下运行,并截图。
    
            ##(7.3)Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
    
        #(8)自己在这门课的目标与计划 
            一周花课余时间完成作业,代码尽力而为,但是我觉得这门课的难度有点大, 我学的有点吃力,并不是很有信心。遇到问题不明白的先百度然后和舍友讨论吧,再者就是问问学长学姐这样。        
    

    3. 使用码云管理Java代码

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图
    

  • 相关阅读:
    C#导出数据—使用Word模板书签的使用
    C#动态调用泛型类、泛型方法
    C#中运算符的介绍和使用
    C#中自定义类型转换
    Linux删除文件后没有释放空间
    Linux下用dd命令测试硬盘的读写速度
    强制关闭或重启Linux系统的几种方法
    前端使用a标签启动本地.exe程序
    Linux 命令别名,让alias永久生效
    Linux 自动删除N小时或分钟前的文件
  • 原文地址:https://www.cnblogs.com/hyrrr/p/6497056.html
Copyright © 2011-2022 走看看