java复习 基础类型知识
java复习
一. 类型装换问题
1.类型自动装换问题
当一个数值较大类型与一个数值小类型相加的时候会自动转换为数值较大类型
int a = 3.0 + 1;
运行报错
原因:因为3.0是double类型的+上1还是double类型的所以double不能自动转换为int类型会丢失数据所以会报错
char、short、byte之间不管是相互相加还是自己加自己都只能赋值int
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 byte a = 1;
byte b = 3;
byte i = a + b;
编译出错
a += 1;
既可以实现运算也可以不会改变a的值
2.理论知识
1.标识符
凡是自己的起名字的地方都叫标识符
2.命名规则
类要大驼峰(每个单词的首字母大写)、变量方法名小驼峰(第一个单词首字母小写后面的都大写)
---------------2019-5-15---------------
今天还看了一个插入排序,
先说说我第一眼看到这张图片的想法吧:
思路:
当时我看到这张图片的时候我的第一反应是首先提取后面的值a依次和前面的值b进行比较并排序,
如果a的值比b的值小就继续往前比较直到没有比他大的值在进行插入,(当时我是这样想的没有想到比较的时候还需要往后
挪一个位置出来所以我之前交换的只是两个的值)
public static int[] insert(int[] a) {
for (int i = 1; i < a.length; i++) {
//把b提取出来
int indexmain = i;
//要比较i次
for (int j = 0; j < i; j++) {
//判断b是否小于a
if(a[indexmain]<a[indexmain-1])
{
//如果b小于a就把b的索引提前一位
indexmain--;
}
}
//交换
int tmp = a[i];
a[i] = a[indexmain];
a[indexmain] = tmp;
}
}
//结果发现在第二次循环的时候没有交换值所以比较的还是原来的值
之后跟同学看到我琢磨什么居然要琢磨怎么久就扭头看了我一眼代码之后。。。。
弱弱的问了一句“你每次判断ab大小的时候没有往后挪一位么?”
当时我离茅塞顿开感觉离牛顿只差一个苹果了。。。之后我修改了代码。。。。
public static int[] insert(int[] a) {
for (int i = 1; i < a.length; i++) {
//把要替换的值拿出来
int indexmain = i;
int tmp = a[indexmain];
for (int j = 0; j < i; j++) {
//这个if是我后面加上去的用于减少循环
if(a[indexmain]>a[indexmain-1])
{
break;
}
//判断是否判断b是否小于a
if(a[indexmain]<a[indexmain-1])
{
//作比较的时候往后挪一位
a[indexmain] = a[indexmain-1];
indexmain--;
}
}
}
}
return a;
}
正解
当我写完我自己的算法之后在看网上写的代码,发现和我写的有些不大一样我用的是for而网上的时候while但原理都差不多

更多精彩