码迷,mamicode.com
首页 > 其他好文 > 详细

试用新编辑器

时间:2016-04-14 01:22:01      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

1. 学会了```的用法 一开始并没有成功,后来发现是因为输入法没有切换成英文,今后这样的问题要避免出现。——20145106

2.问题:教材86页,Guess的代码,猜数字,不知道原先没有设定好一个数字,为什么可以在0-9之间猜中一个数

解答:百度了(Math.random()10)这行代码的意思,知道了(Math.random())的意思是在[0,1)之间随机产生一个数字,10,所以变成了[0,10)之间随机产生一个数字,所以可以进行猜数字

——20145123

3.IntegerCache.low默认值是-128,IntegerCache.high默认值是127(这不是出现得问题,但是一度记错范围)——20145123

!!!4.问题:true和false的判定,不能正确的根据代码判断出是ture还是false,这个问题目前还没解决——20145123

5.问题:%2d的意义

解答:百度得知输出为2位的固定位宽——20145123

6.看书上的注释只知道new int[2][]是声明arr参考的对象会有两个索引,但是长度不同的数组时怎么排列的不是很明白。看下面的循环语句应该是将两个已定义长度数组的值从行到列排序然后输出他们的值。——20145122

!!!7.不太理解为什么要进行基本类型打包,基本类型打包有什么作用?——20145120

8. 对1到100那个程序的运行结果截图的时候因为结果太长,很难截图,感觉应该是有结果自动换行功能的,找了一下,发现了应该是自动换行按钮的东西
技术分享
还有显示代码行数的功能
技术分享
——20145120

9. 在第四章的学习中,我在浮点数精确度的部分有些纠结,在判断运算结果时总会出错...Java中浮点数默认为double类型,且Java遵守IEEE 754浮点数运算规范,使用分数与指数来表示浮点数!!(即使程序中显示的是0.1,但实际内部表示为1\10!)

以后若想要得到”字面上的结果”,需要使用标准类java.math.BigDecimal

技术分享

(标准API由许多类组成,可以直接取用以免去重新打造基础的需求,一般包名称为java开头的类,表示标准API提供的类.)

——20145118

10.

技术分享

一个 *.java 文件中,只能有一个public 的类,而且这个public修饰的这类必需要和这个文件名相同
问题出在文件命名上,应该命名为Sum.java

——20145110

11.书中P121的操作题1,是一个关于费氏数列的问题。其中用到了数组和java.util.Scanner.
代码如下:

import java.util.Scanner;

public class Fei1 {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

System.out.printf("求几个费氏数?");

int n=s.nextInt();

int arr[] = new int[n];

arr[0] =0;

arr[1] = 1;

for (int i = 2; i < arr.length; i++) {

arr[i] = arr[i - 1] + arr[i - 2]; }

System.out.printf("斐波那契数列的前%d项如下所示:",n);

for (int i = 0; i < arr.length; i++) {

System.out.println(arr[i]); }

}

}

截图如下所示:
技术分享

不过所显示的结果是一行一个,看上去并不美观,不知道如何修改。希望老师能够指导。

肖昱学长的解答:

关于斐波那契数列:println自带换行,改成print然后字符串后面加个空格就好了。

——20145110

12. 在看书的过程中,作者提到这样的一个例子:
String text1 = "Ja"+"va";
String text2 = "Java";
System.out.println(text == text2);
当时没有继续往下看时,以为会输出false。但答案是true。后来作者通过反编译解释了这个问题。
“+”是链接字符,并不是新产生的字符串。
所以在学习过程中,各程序语言会有细微、重要且不容忽视的特性。在学习程序语言是,不得不慎。

——20145201

13.不知道p100、p102的代码中System.out.println()的意思。

解决过程:我进行了一下尝试:

技术分享

我发现加上这句话的执行结果和书上是一样的。如果不加这句话,执行的结果就是这样的:

技术分享

这是什么原因呢?难道这句话的作用仅仅是空格的作用?

娄老师回复:换行看不出来?(这句话就是换行的意思!)

——20145203

!!!14.调试代码的时候,我不明白这个代码为什么i++最后输出的结果会是10:

技术分享

技术分享

解决过程:我问了几个同学他们也对这个问题不太理解。只能理解为输出的时候还未进行++运算!

——20145203

!!!15.关于自动拆箱与装箱的问题

  1. 对象指定一相等性中我们知道对于基本类类型而言,“==”和“=”前者用来比较参考名是否参考同一对象,所以类类型中不能草率的使用这两个符号。但是在章节自动装箱与拆箱中又可以直接比较两个对象中的内含值。是因为基本类型打包的表述方式不同所以有所区别吗?
  2. 凡是使用integer wrapper=10这样的方式jvm都会自动默认装箱与拆箱?在自动装箱与拆箱中“==”符号必须在指定的范围内才可以进行数值比较,那么用“=”赋值操作有限定吗?
  3. 在课本上有这样一句话

“建立Integer时,使用Integer.valueof()。用这种方式建立实例,如果传入的int在IntegerCache.low与IntegerCache.high之间,就会看缓存中有没有打包过相同的值,如果有就会直接返回,如果没有就会用new建立新的实例。”

那么Integer i1=100;Integer i2=100;这相当于Integer i1=100;Integer i2=i1;那i1和i2有什么意义吗?同一个对象i2改变,那么i1也会改变啊?仅仅是为了比较数值大小吗?

——20145204

!!!16.还是有些不太清楚什么事候用printf、print、println,只知道println不仅可以输出还可以直接换行,在P85代码中,输出使用了println运行结果出现错误。
解决过程:还没有解决。

——20145206

17.在代码编译中我遇到了GBK码的一些问题,一些包含汉字的文件我在IDEA是可以正常的运行,但是在cmd上运行就会出现错误,下面是任务日志的内容:
技术分享

——20145208

18.在编写代码的时候出现了一个没有解决的问题。

public class Average {

public static void main(String[] args) {

long sum = 0;

for (String arg:args){

sum +=Long.parseLong(arg);

}

System.out.println("平均:"+(float)sum/args.length);

}

}

上述代码的运行结果是技术分享
结果是NAN,这不是我想得到的,在网上查到NAN代表not a number,是因为程序中没有给定参数值的原因,但是我想按照书上的方法对其赋予参数变量,却提示无法找到相应的类,这个问题我研究了一会还是没有解决。
技术分享

——20145208

在编写代码的时候出现了一个没有解决的问题。

public class Average {

public static void main(String[] args) {

long sum = 0;

for (String arg:args){

sum +=Long.parseLong(arg);

}

System.out.println("平均:"+(float)sum/args.length);

}

}

上述代码的运行结果是技术分享
结果是NAN,这不是我想得到的,在网上查到NAN代表not a number,是因为程序中没有给定参数值的原因,但是我想按照书上的方法对其赋予参数变量,却提示无法找到相应的类,这个问题我研究了一会还是没有解决。
技术分享

  • p88 DecimalDemo.java:修改代码,测试学习效果,比如打印两个整数的乘积
    修改后代码如下
  • import java.math.BigDecimal;
  • public class DecimalDemo {
  • public static void main(String[] args) {
  • BigDecimal operand1=new BigDecimal("1.0");
  • BigDecimal operand2=new BigDecimal("0.8");
  • BigDecimal result=operand1.multiply(operand2);
  • System.out.println(result);
  • }

}

打印结果
技术分享

  • Score2.java:把scores填充成{55,65,65,80,75,70,95,90,85,100},测试一下Arrays类的各种排序方法
    修改后代码如下

import java.util.Arrays;

public class Score2 {

public static void main(String[] args) {

int[]scores={55,65,65,80,75,70,95,90,85,100};

for (int score:scores){

System.out.printf("%2d ",score);

}

System.out.println();

Arrays.fill(scores,60);

for (int score:scores){

System.out.printf("%3d",score);

}

}

}

结果如图
技术分享

  • p108 Sum.java:输入11.1试试,会是什么效果?如果有问题怎么解决?
    输入了11.1之后出现了错误如图
    技术分享
    阅读之后发现是因为参数定义的是整型,所以只需要修改为浮点数就可以了,代码如下:

import java.util.Scanner;

public class Sum {

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);

float sum=0;

float number=0;

do {

System.out.print("输入数字:");

number=Float.parseFloat(scanner.nextLine());

sum+=number;

}while (number!=0);

System.out.println("总和:"+sum);

}

}

结果如图,果然可以了:
技术分享

  • p85 Field2.java: 构造方法的使用,构造方法决定了生成对象的方式
    按照教学指导上面说的加了一行加一行Clothes2 autumn = new Clothes2();发现不能运行;
    技术分享
    原因是实际参数列表和形式参数列表的长度不同,就是新加的一行与形式参数长度存在差异。

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

在代码编译中我遇到了GBK码的一些问题,一些包含汉字的文件我在IDEA是可以正常的运行,但是在cmd上运行就会出现错误,下面是任务日志的内容:
技术分享
然后我通过上网查找相应的解决方案,发现应该是文件编码方式的问题,只要改成如下方式就可以正常编译运行了:
技术分享

试用新编辑器

标签:

原文地址:http://www.cnblogs.com/xxy745214935/p/5389515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!