20145216 《Java程序设计》第2周学习总结

教材学习内容总结

第三章 基础语法

3.1 类型、变量与运算符

•类型

•基本类型

•整数:short(占2字节)、int(占4字节)、long(占8字节)

•字节:byte

•浮点数:float(占4字节)、double(占8字节)

•字符:char(汉字、英文字符都是双字节的)

•布尔:boolean(true/false不能与其他类型进行运算)

•类类型

•变量 :数据暂存位置在程序语言中称为变量,变量在命名时不可使用数字作为开头,也不能使用一些特殊字符,而变量名称不可与Java关键词同名,也不可与Java保留字同名。

•运算符

•算术运算 :+、-、*、/、%

•关系运算:>、>=、<、<=、==、!=(注意不要对浮点数进行相等性运算)

•条件运算符: 条件表达式 ? 成立时返回值:失败时返回值

•逻辑运算:与(&&)、或(||)、非(!)(运算结果是boolean值:true或false)

•位运算 :运算结果为位串(位向量),常用于掩码(Mask)运算

•与(&):全1为1,有0则0

•或(|):全0为0,有1则1

•非(~):书上说是补码,按我们的习惯应该是反码

•异或(^):相同为0,不同为1

•左移(<<):最右补0

•算术右移(>>):右移后,正数最高位补0,负数最高位补1

•逻辑右移(>>>):右移后,最高位总是补0

•递增、递减:i++、i--、++i、--i

•赋值:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=

注意:x=y是指将y的值赋给x,而x==y是比较x与y是否相等。

•类型转换

•短->长(widening)是安全的,长->短(narrowing)必须强制转换

•类型转换 •短->长(widening)是安全的,长->短(narrowing)必须强制转换

3.2流程控制

•Structured programming(结构化程序设计)包含三种语句

•顺序

•分支:if、if...else、if...else if、switch...case(如果判断的具体数值不多,且符合byte、short、int、char这四种类型,建议使用switch语句;如果是区间判断,或对结果为布尔类型判断,则应使用if语句)

•循环:for、while、do...while

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

问题:书上p63位运算中示例程序:

byte number = 0;

System.out.println(~number);

显示结果为-1

解决过程:

~表示补码运算,补码运算是将所有位0变1,1变0,byte占内存1字节,number储存 的0在内存中是位00000000,经补码运算就变成11111111,这个数在计算机中用整数表示则为-1。

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

问题:我先将书上的代码看了几遍,然后试着自己编写,发现总是弄不清楚什么时候用System.out.printf,什么时候用System.out.println。

解决方法:通过上网百度,发现两者分别适用的情况:

如果输出的是字符串就用printf()好,但如果输出的是单个字符就用println()好。

例如:

int i = 1, j = 2, k = 3;

System.out.printf("%d的值 + %d的值 是 %d \n", i, j, k);    //如果是输出字符串用printf好

System.out.println(i + "的值 " + "+ " + j + "的值 是 " + k);

int m = 47;

System.out.printf("%d\n", m);

System.out.println(m);         //如果是输出单个字符用 println好

运用IDEA,我成功运行了以下4段代码:

•变量:

•运算符:

•switch条件式:

•for循环:

问题:第一次编写该代码时,漏写了语句"%d*%d=%2d"中的“2”。

解决方法:由于不清楚为什么要写成%2d,于是上网查找了资料,得到以下解释:

System.out.printf("%d*%d=%2d",x,y,z);

%d按照十进制整数的形式输出,%2d则是至少输出占有两个字符的十进制整数。

运行结果:

如果x=1,y=2,z=2时,1*2= 2(注意最后的一个2占有两个字符长度)

如果x=2,y=5,z=10时,2*5=10

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

第一次使用IDEA,我发现用这个软件编写java程序真的很方便,很多语句只需要简写首字母便可以全部打出来。通过多看书上的代码,然后自己试着编写,并查找错误,解决问题,我感觉自己对java的认识和了解又进了一步,我认为将自己的盲点通过自学慢慢地掌握是我学习这门课最大的收获。

代码托管

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4500行 30篇 350小时 能将java运用自如 
第一周 150/150 2/2 15/15 学习了与java相关的基础知识 
第二周 200/350 1/3 20/35

学习了java的基本语法

参考资料

20145216史婧瑶《Java程序设计》第2周学习总结的更多相关文章

  1. 20145216史婧瑶《网络对抗》Web安全基础实践

    20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些 ...

  2. 20145216史婧瑶《网络对抗》Web基础

    20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...

  3. 20145216史婧瑶 《网络对抗》 MSF基础应用

    20145216史婧瑶 <网络对抗> MSF基础应用 实验回答问题 用自己的话解释什么是exploit,payload,encode. exploit:渗透攻击模块,测试者利用它来攻击一个 ...

  4. 20145216史婧瑶《网络对抗》逆向及Bof进阶实践

    20145216史婧瑶<网络对抗>逆向及Bof进阶实践 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢 ...

  5. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  6. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  7. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  8. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  9. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  10. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

随机推荐

  1. Kafka+SpringMVC+Maven应用示例

    本文借助主流SpringMVC框架向大家介绍如何在具体应用中简单快捷的使用kafka.kafka.maven以及SpringMVC在现在的企业级应用中都占据着非常重要的地位,所以本文将三者结合起来也可 ...

  2. vue+node+mongoDB 火车票H5(五)---城市选择

    选择城市,支持搜索,储存选择过城市的历史记录,点击索引能跳到相应位置 1. 父子组件传值,trainCity城市选择组件,选择城市后改变父组件的值 2. 把城市数组按照字母A到Z排序 3.点击字母索引 ...

  3. js 函数递归优化,arguments.callee 优化

    函数递归是个经典的问题,平常用的时候,小练习可以通过函数名来反复调用,比如: function factorial(num) { if (num <= 1) { return 1; } else ...

  4. Spring Security OAuth2 授权码模式

     背景: 由于业务实现中涉及到接入第三方系统(app接入有赞商城等),所以涉及到第三方系统需要获取用户信息(用户手机号.姓名等),为了保证用户信息的安全和接入方式的统一, 采用Oauth2四种模式之一 ...

  5. Dart异步与消息循环机制

    Dart与消息循环机制 翻译自https://www.dartlang.org/articles/event-loop/ 异步任务在Dart中随处可见,例如许多库的方法调用都会返回Future对象来实 ...

  6. ionic 上拉加载问题(分页)

    问题描述: 1.第一初始化时执行了上拉加载更多. 2.上拉时存在执行多次加载动作. angularjs的ajax不提供同步机制,是为了防止页面长时间等待,很多时候我们又需要这种同步机制交换状态,比如上 ...

  7. HDU5667—Sequence(对数转化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667 题目意思:f1=1,i=1 f2=2 ,i=2 fi=a^b*f[i-1]^c*f[i-2] i ...

  8. tomcat启动报错:注释指定的bean类.与现有的冲突.相同的名称和类

    错误: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/business/config ...

  9. d3.js 之SVG:矢量化图形绘制

    SVG Scalable Vector Graphics 是一个成熟的W3C标准,被设计用来在web和移动平台 上展示可交互的图形.和HTML类似,SVG也支持CSS和JavaScript.尽管可以使 ...

  10. Python的一些教程(转)

    原文:http://blog.chinaunix.net/uid-26200547-id-3418038.html Python 安装配置及基本语法篇 Python 语言速成 Python 基本知识  ...