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


    教材学习内容总结

    1. 学习主要内容:基本类型介绍及流程控制简介
    2. 关键点:关键记住JAVA的大体框架,可以类比C语言结合着记。相较于C不同且值得关注的主要信息有:
      1. 基本类型的不同:byte、boolean、char;
      2. print、println、printf的区别;
      3. 类型转换(默认的double与int等)

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

    第三章

    • 1.byte与Byte、int与Integer、char与Character各自有什么区别?在教材上P55的关于输出不同类型可储存数值范围的.java文件,对于int、char的可储存数值最大(小)值分别是Integer.MAX_VALUE(Integer.MIN_VALUE)和Character.MAX_VALUE(Character.MIN_VALUE),“.”点号前面的是Integer和Character,这与Integer类型和Character类型有什么关系吗?
    • “Byte、Short、Integer、Long、Float、Double、Character、Boolean都是java.lang包下的类,这些类是基本类型的包裹器(Wrapper)MAX_VALUE、MIN_VALUE、MIN_EXPONENT、MAX_EXPONENT、TRUE、FALSE等都是这些类上的静态(static)成员”......
    • 2.“在JAVA的世界中,并非每个东西都抽象化为对象,你还是要面对系统的一些特性。例如你还是要意会到内存长度有限的问题”,抽象化为对象会怎么样?
    • 3.%n与 的区别?
    • %n是格式控制符号,表示输出平台特定的换行符号,如windows下会置换为“ "; 是忽略符号,表示换行。
    • 4.关于类型转换,什么时候可以用float PI=(float) 3.14;这种形式,什么时候用float PI=3.14F"这种形式?
    • 两种方式判断:
    • (1)当是长字节类型的Cast到短字节类型的时候可以用第一种形式,其他时候不可以,第二种形式是通用的(一般情况下)。
    • (2)当编译出现“possible loss of precision”时可用第一、二种形式;出现形如“integer number too large”时可用第一种形式。

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

    • 1.看到书上对%h的解释后不太理解,根据书上说的“Integer.toHexString(arg.hashCode())得到的输出结果,如果arg是null,则输出null,也常用于想得到十六进制格式输出”,想测试一下%h会输出什么,以下为尝试过程
    • 想测试下Character.MIN_VALUE和Character.MAX_VALUE用格式%h输出的是16进制还是Integer.toHexString(arg.hashCode())得到的输出结果,就将%h改成%d。结果改了并编译程序以后,运行时出现了这个问题:
    • 说是用错了格式,这说明这里的格式%h输出的不是16进制,那么就应该是Integer.toHexString(arg.hashCode())得到的输出结果,这正是我想理解的部分,又因为用%h格式输出的结果是0~ffff,便尝试着把%h改成%c试试:
    • 发现没有出现正常的输出,再从Integer.toHexString(arg.hashCode())本身英文部分的分析猜想,这里%h的输出与16进制(hex)以及字符串(string)有一定的关联,查资料知:Integer.toHexString(arg.hashCode())返回的是某种格式化后的字符串

    代码托管

    • 代码提交过程截图:
      • 运行 git log --pretty=format:"%h - %an, %cd : %s" 并截图
    • 代码量截图:
      • 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l 并截图

    上周考试错题总结

    1. 第二周第19题:在src目录中编译图2.23中Main.java代码的命令是【我现在的答案】(javac -cp classes -d classes cc/openhome/Main.java)【参考答案】(javac -d . Main.java
    2. 第二周第20题,教材P50第3题,编译可得结果

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 45/45 1/1 15/15
    第二周 288/333 2/3 21/31
    • 计划学习时间:20小时

    • 实际学习时间:21小时

    • 改进情况:争取每天都能多学一点

    参考资料

  • 相关阅读:
    通信中几种复用方式的介绍
    通信的一些基本概念整理
    网易有道2017内推选择题
    腾讯2017暑期实习生编程题
    MATLAB的一些应用--最近用的比较多
    (十六)命令模式-代码实现
    (十四)观察者模式-代码实现
    (十三)备忘录模式-代码实现
    (十二)模板模式-代码实现
    (十一)享元模式-代码实现
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/6506757.html
Copyright © 2020-2023  润新知