@Coco_Newtalent
#我的第一篇博客
大家好,我是Coco_Newtalent,新人一枚,这篇博客是我学习Java至今的第一篇,多的也不知道在说点什么,直接就开始把我最近遇到一些简单的问题说一下吧。
## 第一个问题:运算结束后,数据类型的转换
以前没有注意过,因为以前总是定义为double类型的,最近在写一些基础代码时,又遇到了这个问题,如果两个int类型变量进行运算,结果也还是int,仅仅把结果更改为double是不会出现小数的,所以也让我困扰一点时间,接着,说解决办法,如果两个int型的变量运算想要出现double,那就在末尾处加上“*1.0”,
例:
int a = 6,b = 6;
System.out.println((a * b)*1.0);
这样就会自动转变成double类型的。
## 第二个问题
== 与 .equals()的问题
这真是一个十分神奇的东西,先说原理,“ **==** ”在作用于基本数据类型,它比较的是变量的值,而在比较引用数据类型时,它比较的是变量在内存的地址,而.equals()不能作用基本数据类型,它只能作用于引用数据类型,真是神奇,在上网查了以后,.equals()的方法体也是十分类似数据结构中的顺序查询,接着附上代码
```
public boolean equals(Object anObject) {
if (this == anObject) { //引用相等,指向的同一个对象,肯定是相等的。
return true;
}
if (anObject instanceof String) { //判断是否是String类型
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) { //判断字符串的长度是否相等
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) { //转化为char字符串,然后挨个判断值是否相等
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
```
可以看出,.equals()是把字符串拆成字符逐个进行比较的。
## 第三个问题:continue; break;return区别
continue:是从当前位置,调回循环开始;
break:是结束这一层的循环,跳回上一层的循环;
return:不仅有提供返回值功能,在void修饰的不需要返回值得方法中,return也可以是强制结束代码的标志。
## 总结
这是我第一次写博客,Java也算是第二次学习了,虽然从头开始学会很累,但是温故而知新,所以这次的三个小问题对我而言,也算是解决了以前的遗留问题,同时也是凿开一点通往未来的岩壁,最后希望这篇博客能帮助到你。