第一周学习总结-Java

时间:2022-08-16 03:05:25

2018年7月15日

  暑假第一周,我从网上找了一些讲Java的视频,学到了一些Java的基础,同时也弥补了一些之前学c/c++的知识漏洞。例如,了解到了原码反码补码和按位取反运算符(~)的运算原理。

  在计算机中一个整型数4字节,1字节8位;正数的原码反码补码是一样的;二进制数以补码的形式存储,负数以其正值的补码形式存在。

  负数原码转换为反码,符号位不变,其他按位取反,反码转换为原码也是一样;原码转换为补码:符号位不变,其他按位取反,末位再加1,即反码末位加1。

-7      10000000 00000000 00000000 00000111   原码

    11111111 11111111 11111111 11111000   反码

    11111111 11111111 11111111 11111001   补码

~7   00000000 00000000 00000000 00000111   原码

      11111111 11111111 11111111 11111000   按位取反后变成未知数X的补码

-   00000000 00000000 00000000 00000001   补码变反码的操作

11111111 11111111 11111111 11110111   未知数X的反码

10000000 00000000 00000000 00001000   未知数X的原码

所以~7 = -8

  其次,还总结了一些c++与java的不同点并发表在博客园。Java与c++都是面向对象语言,我们学过c++,再根据这些不同点来学java就能更快掌握java的基础。

  本周总计学习时间可达到20小时,周一至周五每天有4个小时用来学Java,周六周日休息、总结,其中用在代码上的时间基本上每天有1个小时。

  本周遇到了一些细节性的问题,比如要用Scanner类输入数据就必须有一句import  java.util.Scanner;但是我把util写成了until,所以编译一直报错,仔细检查一遍就解决了问题。还有一些问题是对Java一些语句用法不熟悉造成的,比如Scanner中没有nextChar方法,还有nextInt、nextLine方法连用出现无法录入数据的现象。原因是nextInt方法只获取了整数就结束了,整数后边的\r\n不吸收,而nextLine方法遇到\r\n就会结束,解决方法是将nextLine改为next。这些问题不算大问题,所以加起来总共花在上面的时间大概只有1小时。

  这一周学习生活很充实,下一周我会继续保持目前速度。