20155325 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结
- 别用==直接比较浮点数运算结果。
- Integer默认值-128到127,若超出,需要修改系统属性,所以最好通过equals()比较。
- 系统错误提示:若超出数组范围,则显示ArrayIndexOutOfBoundsException错误。
如果无法剖析传入的String事例,则会抛出NumberFormatException的错误。 - 设初始值
import java.util.Arrays;
Arrays.fill(数组名,初始值);
- 比较
String.name1 = “lalala”;
String.name2 = “lalala”;
System.out.println(name1==name2);
结果:true
String.name3 = new String(“lalala”);
String.name4 = new String(“lalala”);
System.out.println(name3.equals(name4));
结果:true
- 在类中定义方法,如果不用返回值,方法名称前可以声明void。
- private关键字可使用户无法直接存取私有数据,只能按照定义的流程进行修改。取值方法的名称形式是固定的,也就是以get开头,之后加上首字母大写的单词。
教材学习中的问题和解决过程
- 问题1:书上P88ClassObject DecimalDemo.java中对subtract的好奇。
- 问题1解决方案:搜索资料。结果如下:
BigDecimal result = o1.subtract(o2);
这句话的意思是o1-o2 。
BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类。
java.math.BigDecimal类,它支持任何精度的定点数。
Java中float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal(我觉得这也算是我们会用到的运算)
拓展:
BigDecimal使用事例:
public class Arith {
2 /**
3 * 提供精确加法计算的add方法
4 * @param value1 被加数
5 * @param value2 加数
6 * @return 两个参数的和
7 */
8 public static double add(double value1,double value2){
9 BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
10 BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
11 return b1.add(b2).doubleValue();
12 }
BigDecimal类 | 作用 |
---|---|
b1.add(b2).doubleValue(); | 加法 |
被减数.subtract(b减数).doubleValue(); | 减法 |
b1.multiply(b2).doubleValue(); | 乘法 |
除数.divide(被除数, 精确范围).doubleValue(); | 除法 |
BigInterger类常用方法 | 作用 |
---|---|
abs() | 返回其值是此BigInteger的绝对值的BigInteger |
add(BigInteger val) | 返回其值为(this+val)的BigInteger |
subtract(BigInteger val) | 返回其值为(this-val)的BigInteger |
multiply(BigInteger val) | 返回其值为(this*val)的BigInteger |
divide(BigInteger val) | 返回其值为(this/val)的BigInteger |
remainder(BigInteger val) | 返回其值为(this%val)的BigInteger |
compareTo(BigInteger val) | 将此BigInteger与指定的BigInteger进行比较。返回值1、0、-1分别表示大于、等于、小于 |
pow(int exponent) | 返回当前大数的exponent次幂 |
toString() | 返回此BigInteger的十进制字符串表示形式 |
toString(int radix) | 返回此BigInteger的给定基数(radix进制)的字符串表示形式 |
注:abs():返回某数字的绝对值.参数可以是float、double、long或int。如果是byte或short类型,那么它们会被强制转换成int类型。
参考资料:
java.math.BigDecimal类的用法考;使用BigDecimal进行精确运算(实现加减乘除运算);JAVA Math类的数学计算函数
- 问题2:不明白以下代码的含义
Scanner scanner=new Scanner(System.in);
int s=scanner.nextInt();
- 问题2解决方案:查百度。结论:此时从键盘输入值为s的值。
拓展:
++当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。++
举例:
import java.util.Scanner;
/**
* Created by DELL on 2017/3/12.
*/
public class ShuRuTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("YES or NO?");
while (true) {
String line = s.nextLine();
if (line.equals("NO")) break;
System.out.println(">>>" + line);
}
}
}
结果:
参考资料:
java 中的Scanner(非常详细不看后悔)
代码调试中的问题和解决过程
- 问题1:调整idea字体大小
- 问题1解决方案:Intellij IDEA 设置字体的大小
- 问题2:纯属日常作死,原有代码成功后,尝试输入别的东西,有些连编译都通不过就不放了。
本来是应该这样的:
然后我输入不同字符
然后对应'b','o','x'输出的是不明白缘由的数字。
- 问题2解决方案:
类比C语言,我去查询了相关的ASCII码,果然输出的是对应的ASCII码 。 ASCII编码转换
若想要输出字母的话,改变输出格式为%c,如下图:
拓展:
Java 数组基础
通过这个博客可以更轻松了解数组的使用方法,已然很简洁。
- 问题3 P105数组复制,手抖抄错,一时没检查出来。
换成书上的名称编辑后依然
出现不对劲的地方,然后在cmd里重输,发现一样,所以排除了是idea错误。
但其实!!!我第二天才发现我输出输反了俩字符……
对于%和d之间的数字引起了好奇,经过实验 我发现,当无数字时仅仅将数字输完,当输入位数少于数字位数,则从左边开始空格占位。
- 问题3:运行结果出乎意料“NaN"。
- 问题3 的解决方案:
是日夏茗悠悠
详见这个博客的问题三
代码托管
- 代码提交过程截图:
- 代码量截图:
(上周的截图是185行,但是这次我把IDEA里上周的代码拷进了一个新建的week2包里,总代码量535-这周488=47,结果算下来上周的只有47行代码了。)
上周考试错题总结
- ~0b1011的十进制值是(-12)
解决:(计算机存八位)->1011->00001011->(“~”意为“取反)->11110100->存补码且符号位为1->除符号位其余取反再+1->10001100->结果为-12.
- Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)
解决:-ctime:创建时间;linux系统中‘find’的详细用法;当前目录为:“.”;昨天用1,前天用2。
- System.out.printf("%b", 11)的输出结果是0b1011 (X)
解决:
- 0x10%9 的结果是( 7 )0x10&9 的结果是(0)
解决:“0x”的意思是:数据是十六进制的
其他
1.之前对软件和模板不熟悉,加上自己的不仔细,作业不规范,本次作业特意反复检查。
2.关于考试题,希望以前的卷子能够被发回来纠错,或者做完后自己能用手机拍一下。
3.以后会更加注重对平时时间的规划,合理利用散碎时间学习。
4.前两周被安软件折磨得够呛,这周终于可以做一个安静敲代码的美狗子了……
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 400小时 | |
第一周 | 9/9 | 1/1 | 19/19 | 熟练下载安装技能,锻炼解决问题能力 |
第二周 | 185/194 | 1/2 | 16/35 | 下载并熟悉IDEA,练习使用码云、git的技能。 |
第三周 | 488/535 | 1/3 | 18/53 | 花了更少时间磨合软件,学习更顺利 |
计划学习时间:20小时
实际学习时间:18小时
改进情况:以后会更加注意时间规划,多利用平时的散碎时间学习。
参考资料
20155325 2016-2017-2 《Java程序设计》第3周学习总结的更多相关文章
- 20155326 2016-2017-2 《Java程序设计》第九周学习总结
20155326 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 1.撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. 2.JDBC目的 ...
- 20155328 2016-2017-2 《Java程序设计》第九周学习总结
20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- 【Win10+eclipse+MinGW+QT安装教程】已有eclipse环境下配置QT插件出错详解
(纪念一下装了一整天濒临绝望的自己[/doge]) (以下所有下载项一律使用32位) step1:下载安装eclipse.适配的jdk.MinGW和QT 1.下载32位eclipse for c++以 ...
- BZOJ 1012 最大数maxnumber 线段树
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1012 题目大意: 见链接 思路: 直接用线段树模拟一下就可以了. #include&l ...
- BZOJ5072:[Lydsy1710月赛]小A的树(树形DP)
Description BZOJ只是扔了个下载链接 Solution 设$f[x][i]$表示$x$点选中$i$个黑点的最小连通块. 设$g[x][i]$表示$x$点选中$i$个黑点的最大连通块. 转 ...
- 【[NOI2011]阿狸的打字机】
首先发现这个插入的非常有特点,我们可以直接利用这个特殊的性质在\(Trie\)树上模拟指针的进退 之后得到了\(Trie\)树,先无脑建出\(AC\)机 之后考虑一下如何写暴力 最简单的暴力对于每一个 ...
- Kali-linux使用Metasploitable操作系统
Metasploitable是一款基于Ubuntu Linux的操作系统.该系统是一个虚拟机文件,从http://sourceforge.net/projects/metasploitable/fil ...
- jq页面加载问题
Window.onload=function(){ //页面加载,不能同时编写多个,最后面的会覆盖前面的 } $(document).ready(function(){ //页面加载,能同时编写多 ...
- robotframwork接口测试(三)—HttpLibrary.HTTP安装
1. 安装: 1)可以用命令:pip install robotframework-httplibrary(或pip install --upgrade robotframework-httplib ...
- Kubernetes 学习2 k8s基础概念
一.架构描述 1.基本架构 2.pod ,有两类 a.自主式pod 自我管理的,创建之后,任然是需要提交给API Server,API Server接受之后然后由调度器调度到指定的 node节点,由n ...
- 在 Linux 下搭建 Git 服务器(yum安装)
服务端(linux): 1. 安装git [root@localhost ~]# yum -y install git 2. 增加一个git账户 为了管理的方便,在linux下面增添一个 " ...
- Mybatis Plus启动注入 SQL 原理分析
1) 问题: xxxMapper 继承了 BaseMapper<T>, BaseMapper 中提供了通用的 CRUD 方法, 方法来源于 BaseMapper, 有方法就必须有 SQL, ...