20155318 2016-2017-2 《Java程序设计》第二周学习总结
20155318 2016-2017-2 《Java程序设计》第二周学习总结
教材学习内容总结
Java编程风格
- 基本语法与C相似;调用main函数写
public static void main (String[] args)
- Java是自由格式语言(确实比C自由一些,虽然编的不多,但是能感受到)
认识Java的类型与变量
- 类型
- 基本类型:整数、字节、浮点数、字符、布尔(true&false)
- 整数可分为short(2)、int(4)、long(8)
- 浮点型可分为float(4)、double(8)o
- boolean类型中的true/false不能与其他类型进行运算
- 类类型
- 程序中写下一个浮点数,系统会默认为double类型,写下一个整数时默认不超过int类型的长度,如果表达式有不同类型的数值,运算时以较长类型为主,其他数值自动提升。
- 基本类型:整数、字节、浮点数、字符、布尔(true&false)
- 变量
- 命名规则:驼峰式
- 局部变量使用前需要赋值(可以边定义边赋值)
- final变量不可修改
- 字面常数
- 忽略符号''
- 运算符
- 算数运算符、比较条件运算符、逻辑运算符、位运算符、递增递减运算符、指定运算符
=
与==
的区别,前者是赋值,后者比较是否相等。- 位运算符的一个例子,可以显示写成二进制数每一位按位取反。
byte number = 0;
System.out.printli(~number);
- 逻辑运算符的快捷方式运算
- 位运算:>>最左边补原来位,>>>最左边补0;
- 类型转换
float PI = 3.14F
和float PI =(float)3.14
- 运算时自动提升类型
掌握Java流程控制的方法
- 分支
if...else...
switch
- 循环
for(初始式;true/false;重复式)
- 前测试循环
while
while(true){...}
直接循环
- 后测试循环
do{...}while(条件);
- 退出
- break 离开循环
- continue 退出本次循环进入下一次循环
- 配合标签使用
程序优化
- 多个相同类型的选择更倾向于用
switch
而不是if else
- 如果isOpened是boolean型,在if中判断可直接用
if(isOpened)
教材学习中的问题和解决过程
- 问题1: 课本68页有关溢值的一段代码,为什么
count+1>Interger.Max_VALUE
永远不会是true? - 问题1解决方案:书上给出的解释是Java中字节的第一位是1表示一个负数,Interger.Max_VALUE代表int所能表示的最大值 0x7FFFFFFF,再加1后是0xFFFFFFFF,这在Java中表示一个负数。
- 问题2:
Math.radom()
会产生0.0到1.0的任意值吗?是什么类型的值? - 问题2解决方案
public class MathRandom {
public static void main(String[] args){
int number1 =(int) (Math.random()*10);
float number2=Math.random();
System.out.println(number1);
System.out.println(number2);
}
}
调试这些代码的时候出现了这样的提示
可见产生的是double型的数,修改程序后进行编译得出想要的结论
如果修改其中一行代码为float number2=(float) (Math.random());
也可以得出正确结论,相当于将MathRandom函数产生的随机数强制类型转换一float形式输出
代码调试中的问题和解决过程
- 问题1: 在Java中用
System.out,println("i=%d",i)
输出时报错 - 问题1解决方案:当输入
public static void main(String[] args){
for(int i=1;i<=10;i++){
System.out.println("i=%d",i);
时,显示这样的错误提示
修改为System.out.println(i);
运行正常;
上网查了一下printf,println和print的区别
public static void main(String[] args) {
int i = 4;
double j = 5;
System.out.print("用print输出i:"+ i);//直接写参数
System.out.println( "用println输出i:"+ i);//直接写参数
System.out.printf("i的值为%d,j的值为%f", i,j);
}
运行结果为
print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
printf是格式化输出的形式。
问题2:continue在for前后配合标签使用产生影响的不同?
问题2解决方案:
分别运行continue back1和continue back2
public class ContinueBack {
public static void main(String[] args){
back1:
for (int i = 0;i<10;i++ ){
back2:
for (int j=0;j<10;j++){
if (i==9){
continue back1;
//continue back2;
}
}
System.out.println("test");
}
}
}
产生的结果
- continue back1:产生9个text
- continue back2:产生10个text
- 结论:continue配合标签可以自由跳至任何一层for循环
代码托管
- 代码提交过程截图:
- 运行
ssh -T git@git.oschina.net
git init
git remove add origin http://git.oschina.net/bestiisjava2017/HelloWorld.git
git pull origin master
git add .
git commit -m "week03"
git push origin master
- 截图
- 代码量截图:
- 运行
$ chmod +x statistics
$ ./statistics
上周考试错题总结
试卷还没发,我印象中有这么几道(还会持续更新)
- 学习JavaAPI要掌握API在设计时的封装、继承、多态、接口架构
- 只有通过TCK兼容性测试的实现,才可以使用Java这个商标
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/100 | 1/1 | 24/12 | |
第二周 | 250/300 | 2/2 | 48/36 |
计划学习时间:24小时
实际学习时间:24小时
参考资料
20155318 2016-2017-2 《Java程序设计》第二周学习总结的更多相关文章
- 20145304 刘钦令 Java程序设计第二周学习总结
20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...
- 201521123063 JAVA程序设计 第二周学习总结
1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...
- 2017面向对象程序设计(Java)第二周学习总结
2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结
丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 201521044152<java程序设计>第一周学习总结
本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...
- 20145304 刘钦令 Java程序设计第一周学习总结
20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...
- 201621123007 Java程序设计第一周 学习总结
第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...
- 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结
这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
随机推荐
- 捡了一个非常淫荡的PHP后门,给跪了
<?php unlink($_SERVER['SCRIPT_FILENAME']); ignore_user_abort(true); set_time_limit(0); $remote_fi ...
- [零基础学JAVA]Java SE面向对象部分.面向对象基础(06)
1.interface 接口 2.设计模式(工厂模式) 3.异常的捕获 java: //接口中定义的全是public,即使不声明也是public的,//如果一个类定义的时候全部由抽象方法和全局常量所组 ...
- Spring Cloud(中文版)
原文链接:Spring Cloud I.云原生应用 Spring Cloud上下文:应用上下文服务 2.1.Bootstrap应用程序上下文 2.2.应用程序上下文层次结构 2.3.更改Bootstr ...
- struts配置中的常量定义
一.常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,两种配置方式如下: (1)在struts.xml文件中配置常量 <struts&g ...
- JAVAWEB之文件的上传下载
文件上传下载 文件上传: 本篇文章使用的文件上传的例子使用的都是原生技术,servelt+jdbc+fileupload插件,这也是笔者的习惯,当接触到某些从未接触过的东西时,总是喜欢用最原始的东西将 ...
- Autorelease 性能测试
__weak NSString *string_weak_ = nil; - (void)viewDidLoad { [super viewDidLoad]; // 场景 1 NSString *st ...
- Java50道经典习题-程序23 求岁数
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第1个人大两岁.最后问第一个人,他说是10岁.请问 ...
- .net增删该查DBAccess的应用
1.首先引用dll文件 2. //DBAccess.dll引用一個dll文件 private IDBAccess _access; private static readonly stri ...
- nginx开启gzip
gzip on; gzip_min_length 5k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 3; gzip_typ ...
- HDU 3635 Dragon Balls(超级经典的带权并查集!!!新手入门)
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...