我是学材料科学与工程的,方向是金属腐蚀与防护方向,大学毕业后在一家表面科技公司上班,工厂的气味让人难闻,工资也不高,于是想转行。有同学是学计算机软件开发方面的,工资待遇很不错,于是也想学计算机,网上了解了一下,觉得java前景还不错,于是辞了工作学习java。
转行后其实挺迷茫的,因为自己没有基础,怕学不好,也不知以后是否好就业。还有就是进入社会后不太喜欢学习,每天按时上班,下班后就休息,习惯养成了,又要投入精力去学习,心理是很抗拒的,听了一周课,虽然每天也做笔记听讲,但是心思不在上面,整天浑浑噩噩的,也不知听懂没听懂。
学习java之前,先学C#语言基础,一周学习后做练习题发现很吃力,我觉得有必要给自己念念紧箍咒了,不要坐这山望那山,什么都没做好。于是希望自己静下心来,虽然没基础也要好好学,畏首畏尾不可行,如果有基础也不用专门花时间学习了,想清楚了这一层,克服了心理障碍,学习开始有了动力。希望自己能够认真踏实学习,不要想东想西。
首先学习基础,学习了开发入门、变量和数据类型、运算符和表达式、流程控制、数组和集合、函数等章节,其中数组我觉得比较困难。特做总结:
1、数组的基本概念
数组可以看成是多个相同类型数据组合,对这些数据的统一管理。
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组的元素可以是任何数据类型,包括基本类型和引用类型。
2、数组的代码书写
数组的声明与赋值
声明 数据类型[]变量名;
赋值 变量名=New 数据类型[长度];
合并书写:数据类型[]变量名=New 数据类型[长度];
数组项的读取与修改:
读取 变量名[索引]
修改 变量名[索引]=值
读取数组长度 变量名.Length 返回类型:int
3、数组的定长性
一个数组在创建后,它的长度固定不变
数组适用于数据数量固定的场景:
100以内的所有质数
保存太阳系中所有已知行星的质量
保存标准扑克牌中的所有牌面的数据
保存一个星期的所有日期
其他定长的数据场景
不适用使用数组的场景:
保存一个班的学生信息
保存一年中的所有日期
保存斗地主游戏某玩家的手牌数据
保存游戏中某玩家的装备信息
其他不定长的数据场景
4、数组的遍历
是指从数组的第一项开始,依次取完数组的所有项,要实现数组的遍历,可以使用循环。循环变量从0开始,依次取到数组的最大小标(数组的长度-1),在循环体中,使用循环变量作为下标,即可取出数组每一项的值。
代码示例
有一个数组,变量名位arrays,请输出该数组每一项的值
for(int i=0;i<arrays.Length;i++)
{
Console.WriteLine(arrays[i]);
}
5、交换顺序
交换排序总结:
不管nums的长度是多少,都可以使用这样的代码格式:
for(int i=0;i<nums.length-1;i++)
{
//在i-(nums.length-1)范围内,将该范围最小的数字提到i
}
如何将i-(nums.Length-1)范围内的最小数字提到i?
交换排序使用以下方式完成:
1、将位置i和位置i+1进行比较,如果比i+1大,则交换。
2、将位置i和位置i+2进行比较,如果比i+2大,则交换。
........
4、将位置i和位置nums.Length-1进行比较,如果比nums.Length-1大,则交换
因此,代码如下:
//在i-(nums.Length-1)范围内,将该范围内最小的数字提到i
for(int j=i+1;j<nums.Length;j++)
{
if(nums[i]>nums[j])
{
//交换
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
合并起来,最终代码实现如下:
for(int i=0;i<nums.Length-1;i++)
{
//在i-(nums.Length-1)范围内,将该范围内最小的数字提到i
for(int j=i+1;j<nums.Length;j++)
{
if(nums[i]>nums[j])
{
//交换
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
}