转行的迷茫与初学java心得

      我是学材料科学与工程的,方向是金属腐蚀与防护方向,大学毕业后在一家表面科技公司上班,工厂的气味让人难闻,工资也不高,于是想转行。有同学是学计算机软件开发方面的,工资待遇很不错,于是也想学计算机,网上了解了一下,觉得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;
      }
  }
}