20155325 2016-2017-2 《Java程序设计》第十周学习总结

教材学习内容总结

Java视频笔记

  • 强制转换

  • 运算符


获取特定位数的值

  • 循环

  • switch(不能判断布尔型)
int x = 3, y = 3, z = 3;
        int  n = 0;
        switch (x)//一般都这么干
        {
            case 1:
                System.out.println("x=1");
                break;
            case 2:
                System.out.println("x=2");
                break;
            case 5:
                System.out.println("x=5");
                break;
            default:
                System.out.println("default,x没找到");
                break;//此处可写可不写
        }

        System.out.println();


        switch (z) {
            default://第一次时先不过它,先看case,如果满足case中的条件接着往下执行,看是否遇见break或右大括号
                System.out.println("default,z没找到");
            case 1:
                System.out.println("z=1");
            case 3:
                System.out.println("z=2");
            case 4:
                System.out.println("z=3");
                break;//此处是否有break;结果都一样
        }
        System.out.println();

        switch (y) {
            default://第一次时先不过它,先看case,如果不满足case中的条件则运行default然后不看条件运行case里的语句,直到遇见break或右大括号
                System.out.println("default,y没找到");
                n++;
                System.out.println( "   f1 ="+n);
                d++;

            case 1:
                System.out.println("y=1");
                n++;
                System.out.println("   c1 ="+n);

            case 2:
                System.out.println("y=2");
                n++;
                System.out.println("   c2 ="+n);

                break;
            case 5:
                System.out.println("y=5");
        }

        System.out.println();
    }

结果:

default,x没找到

z=2

z=3

default,y没找到

f1 =1

y=1

c1 =2

y=2

c2 =3

后期的jdk对switch进行增强,字符串和枚举类型也能判定。

  • if-else
    简写格式: 变量 = (条件表达式)?表达式1:表达式2

注:
1.表达式1,2必须要有结果,例如打印语句没有代码。
2.条件表达式不一定是一个短式,还可以以类似以下状态进行。

int a=0,b=1,c=2;
int d;
d = (c<a|b>a)?123:0;
System.out.println(d);
int a=0,b=1,c=2;
int d;
d = (c<a||b>a)?123:0;
System.out.println(d);

  • 方法

小技巧

/*boolean型方法返回简写形式*/
    public static boolean buer(int a,int b){
        //当不返回true 或false用下面这种形式
        //return (a==b)?true:false;
        //返回返回true 或false用下面这种简写形式即可
        return a==b;
    }
/*void型方法的返回探究*/
public static void o(int a){
    System.out.println(a);
    return;//这一句可写可不写
}

重载只和参数列表有关

  • 数组

局部变量:定义在方法、方法中的参数、for循环定义的变量

堆中数据均有默认初始化值

类型 默认初始化值
int 0
double 0.0
float 0.0f
boolean false

堆栈 垃圾回收机制

报错

1.

2.

直接打印数组

学至:视频day04-10

教材学习中的问题和解决过程

  • 问题1 :getInstance()
  • 问题1解决方案:
    在java中,可以使用这种方式使用单例模式创建类的实例,所谓单例模式就是一个类有且只有一个实例,不像object ob=new object();的这种方式去实例化后去使用。
private static Control ControlAdapter = null;
public static Control getInstance(){
if(ControlAdapter == null)
ControlAdapter = new ControlAdapter();
return ControlAdapter;
}

参考: java中getInstance()的用法百度百科

打开
Java使用RSA加密解密签名及校验可见一个完整程序

代码调试中的问题和解决过程

为了保证笔记的整体性,在看视频学习的过程中遇到的问题解决方案均放入了笔记。

  • 问题1:对switch的default的实验
  • 问题1解决方案:见笔记-Java视频笔记-语法-switch
  • 问题2:if-else简化结构中条件表达式是否只能写一个短式,可否有其他结果?
  • 问题2解决方案:见笔记-Java视频笔记-语法-if-else-注
  • 问题3:课上代码-如何将字符串转化为整数
  • 问题3解决方案:

1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);

我用的这一种

sum = sum + Integer.parseInt(args[i]);

当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
我的理解是若radix是几则返回几进制数

然后我就实验了一下

但是我不明白为何“0x10”会有问题

2). int i = Integer.valueOf(my_str).intValue();
注: 字串转成 Double, Float, Long 的方法大同小异.

如何将整数 int 转换成字串 String ?

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

注: Double, Float, Long 转成字串的方法大同小异.

参考: [Java]如何将字串 String 转换成整数 int
JavaScript parseInt()函数

代码托管

上周考试错题总结

结对及互评

5328

大佬帮我解决了部分连接数据库时的问题。

评分标准

  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)

    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)

    • 一周提交次数少于20次的不加分
  6. 其他加分:

    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
  7. 扣分:

    • 有抄袭的扣至0分
    • 代码作弊的扣至0分

点评模板:

  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

  • 参考示例

点评过的同学博客和代码

其他(感悟、思考等,可选)

速度比想象中的慢呢,但是有所获得的感觉还是很好的,继续加油吧~

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 16篇 400小时
第一周 9/9 1/1 19/19 熟练下载安装技能,锻炼解决问题能力
第二周 185/194 1/2 16/35 下载并熟悉IDEA,练习使用码云、git的技能。
第三周 488/535 1/3 18/53 花了更少时间磨合软件,学习更顺利
第四周 366/901 2/5 18/71 继承、多态、行为
第五周 611/1512 1/6 14/67 异常处理、Collection与Map
第六周 337/1849 1/7 16/73 输入与输出、线程与并行API
第七周 459/2308 2/9 15/88 Lambda、时间与日期
第八周 554/2862 1/10 16/104 NIO与NIO2&通用API
第九周 484/3346 2/12 32/135 从头开始
第十周 261/3607 1/13 20/155 语法

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:25小时

  • 实际学习时间20小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

原文地址:https://www.cnblogs.com/GDDFZ/p/6789616.html