《Java程序设计》 第2周学习总结
20145318 《Java程序设计》第2周学习总结
教材学习内容总结
- short,2字节;int,4字节;long,8字节;byte,1字节;float,4字节;double,8字节;char,2字节;boolean只有true和false。
- 基本类型:整型(short、int、long) 、字节(byte) 、浮点型(float、double) 、字符(char)、布尔(boolean,只有true和false,且不能与其他类型运算)。
- 常量:整数可以用二进制(b),八进制(o)、十进制、十六进制(x)。
- 小数默认为double型,只有其后加f或F才是浮点型,double型精度更高。
- 类型转换:如果表达式中包括不同类型,则以精度最高的类型计算;可强制转换,如sqrt的类型是double型,如果要直接引用即将int强制转换为double型。
- break 可以离开当前for、switch、while等循环语句,并执行循环外下一个语句。
- continue 用于循环语句中,不执行其后的语句,回到循环开始进行下一次循环,不离开循环。
- 除算术运算符、赋值运算符、比较运算符、逻辑运算符之前常用外,位运算符包括<<、>>、>>>、&、|、^、~,只能对二进制运算,有时用位运算符能简化程序,但是可读性不高,推荐学习但是实际编程不推荐。
- goto可以用break/continue代替,之前用goto语句用的很顺手,但是实际编程中不建议使用goto,在此总结一下goto语句的优缺点。优点:可以快速的跳出多重循环,方便的去到我所想要执行的语句处。缺点:虽然可以用goto代替ifelse等语句,但是它会使程序搅在一起,像一团乱了的毛线球,不容易阅读,也就是所谓的破坏语言的结构性。总结来说,goto语句一般不用,尽量少用,特别是对于初学者,goto可能会在某些方面简化程序,但是终究不是正解。
代码调试中的问题和解决过程
打印九九乘法表
/*
需求:打印九九乘法表如下。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
思路:正三角形状可用改变for循环中间的表达式实现,注意到每一行前面的乘数依次增加,后数不变,可用for循环嵌套实现。
针对得数位数不同,可用制表符\t使格式整齐。两数之积直接用y*x表示。
*/
class MultiplicationTable
{
public static void main(String[] args)
{
int x,y;
for(x=1;x<=9;x++)
{
for(y=1;y<=x;y++)
{ //两种方法都可以打印,注意printf和print的区别
System.out.printf("%d*%d=%d\t",y,x,y*x); /* 此处用print不行。若不用"%d\t",可以用"%2d " */
//System.out.print(y+"*"+x+"="+y*x+"\t"); //制表符:\t,使每列对齐。
}
System.out.println();
}
}
}
冒泡排序
/*
需求:冒泡排序。
思路:冒泡排序即第一个元素与第二个元素进行比较,大者向后移动,第二个元素与第三个元素比较,大者向后移动,一轮比较完成时,最大的元素就在最后面,
此时开始第二轮比较,同样是第一个与第二个比较,但是此时最后一个元素已经不需要比较了,依次类推,最后一轮第一个元素和第二个元素比较完成即排序完成。
交换数值:新定义函数
*/
class BubbleSort
{
public static void main(String[] args)
{
int[] arr={4,2,9,6,8,3,1,5,7};
printArray(arr);
bubbleSort(arr);
printArray(arr);
}
public static void bubbleSort(int[] arr)
{
for(int i=0;i<arr.length;i++)
for(int j=0;j<arr.length-i-1;j++)
//注意:-i是因为依次比较i次后后面的i个数已经确定,不需要再比较;
//-1是因为避免下一行arr[j+1]越界。
if(arr[j]>arr[j+1])//注意比较的是相邻两元素。
{
sort(arr,j,j+1);
}
}
public static void printArray(int[] arr)//注意两个函数包含在一个类中
{
System.out.printf("[");//先打印一个[
for(int i=0;i<arr.length;i++)//数组名.length表示数组长度
{
if(i<arr.length-1)
System.out.printf("%d,",arr[i]);//若非最后一个元素,打印"%d,"
else
System.out.printf("%d]",arr[i]);//若是最后一个元素,打印"%d]"
}
System.out.printf("\n");//最后在循环外换行
}
public static void sort(int[] arr,int a,int b)
//int 三个系数,一个数组两个代表数组的标号,不能直接int 两个数
{
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
结果

代码托管


其他(感悟、思考等,可选)
初学者学习Java这样的操作性课程需要大量的练习,只有在编写代码的过程中才有所提高,但是我不提倡遇到问题遇到错误就去问同学问老师,我认为更好的解决办法是自己查错和百度,经过努力的纠错过程才会印象更加深刻,特别是针对稍微复杂一点的循环嵌套,有很多需要注意的细节,比如<=和<,都需要考虑清楚。
另外写注释的习惯也要逐步培养,养每段代码class前有需求和思路分析,代码中复杂的部分或者复习时需要注意的部分应该有所标记。
之后会尝试IDEA进行编写。
针对老师提出的问题应该尽快有回复或者改正。
学习进度条

参考资料
《Java程序设计》 第2周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- Angular2+学习第1篇 简介
历史: Angular是Google推出的Web前端开发框架,从12年发布起就受到了强烈的关注,他首次提出了双向绑定的概念,让人耳目一新. Angular 2特性 就在2016年9月中旬,时隔4年,G ...
- HDU 5667 Sequence(矩阵快速幂)
Problem Description Holion August will eat every thing he has found. Now there are many foods,but he ...
- 跟着包子学 css (一)
1.在每次 写css之前 都应该先将浏览器的默认 样式 给清除掉 *{padding:0; margin:0;} h1,h2,h3,h4,h5,h6{font-weight:normal; font- ...
- NSUserDefault 保存自定义对象
由于NSUserDefaults 不支持保存自定类,保存的对象需要实现NSCoding协议,不过自定的类型就算实现了NSCoding也不可以保存,可以通过以下方法实现: //h文件 #import & ...
- c#使用FastReports打印
private void btnprint_Click(object sender, EventArgs e) { //报表路径 string path = Application.StartupPa ...
- Arcengine 二次开发得到点shapefile的坐标
做二次开发的时候,想要得到Point shapfile的坐标和相应的属性,也就是Point 的(x,y)和某个属性,在网上查了一些资料,做总结如下 首先,你要确定自己要操作的图层,一般来说,得到当前操 ...
- Oracle Java Mission Control MBean 服务器 飞行记录器
Oracle Java Mission ControlMBean 服务器飞行记录器
- Android技巧小结之新旧版本Notification
最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...
- Linux命令(基础2)
1.命令概要介绍: 查看目录内容:ls 切换目录命令:cd 创建与删除目录:touch(创建文件).rm(移除文件与目录).mkdir(创建目录) 拷贝与移动命令:cp(拷贝).mv(移动) 查看文件 ...
- 从CPU/OS到虚拟机和云计算
从CPU/OS到虚拟机和云计算 作者:张冬 关于软硬件谁为主导这个话题,套用一句谚语就是三十年河东三十年河西.风水轮流转.软件和硬件一定是相互促进.相互拆台又相互搭台的. ...