《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 ...
随机推荐
- hibernate中持久化对象的状态
持久化对象有以下几种状态: 临时对象(Transient): 在使用代理主键的情况下, OID 通常为 null 不处于 Session 的缓存中 在数据库中没有对应的记录 持久化对象(也叫”托管 ...
- Code Forces 20A BerOS file system
A. BerOS file system time limit per test 2 seconds memory limit per test 64 megabytes input standard ...
- CH5103 传纸条【线性dp】
5103 传纸条 0x50「动态规划」例题 描述 给定一个 N*M 的矩阵A,每个格子中有一个整数.现在需要找到两条从左上角 (1,1) 到右下角 (N,M) 的路径,路径上的每一步只能向右或向下走. ...
- MySQL数据库主从同步延迟分析及解决方案
一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 lo ...
- Python面向对象高级
一 反射 反射也可以说是python的自省机制 反射就是通过字符串的形式,导入模块,然后以字符串的形式去查找指定函数并执行.利用字符串的形式去模块(对象)中操作(查找/获取/添加/删除)属性,是一种 ...
- Python之OS模块函数
函数列表: 1 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os. ...
- 使用selenium实现简单网络爬虫抓取MM图片
撸主听说有个网站叫他趣,里面有个社区,其中有一项叫他趣girl,撸主点进去看了下,还真不错啊,图文并茂,宅男们自己去看看就知道啦~ 接下来当然就是爬取这些妹子的图片啦,不仅仅是图片,撸主发现里面的对话 ...
- LoadJS
LoadJS是一个微小的异步加载器为现代浏览器(711字节). https://github.com/muicss/loadjs 介绍 LoadJS是一个微小的异步加载库的现代浏览器(IE9 +). ...
- python的曲线平滑工具,及python画一条线中包含不同粗细不同颜色的画线方法
from scipy.signal import savgol_filter import matplotlib.pyplot as plt cc = savgol_filter(c, 99, 1) ...
- django之自定义软删除Model
软删除 简单的说,就是当执行删除操作的时候,不正真执行删除操作,而是在逻辑上删除一条记录.这样做的好处是可以统计数据,可以进行恢复操作等等. 预备知识 Managers Managers 是djang ...