黑马程序员技术交流社区
标题: 黑马JavaEE学习17天技术感想 [打印本页]
作者: 徐浙波 时间: 2017-12-24 19:18
标题: 黑马JavaEE学习17天技术感想
从预科班开始算起,不知不觉已经在黑马度过了17天了。在这半个多月的时间里,正是导师和助教为我打开了Java的大门,让我从一开始的一窍不通慢慢向一个程序员转变,真的很感谢他们。
记得预科班第一天的时候,教的是计算机的基础知识,这正是我最欠缺的一块,因为我之前对计算机真的是一窍不通,除了能玩玩游戏,看看电影什么的,其他关于计算机本身的一些东西,完全是一片空白。通过第一天的学习,我开始了解计算机,知道了什么是软件开发,什么是计算机语言,我们所学的Java就是一种计算机高级语言。然后还认识了Java之父詹姆斯高斯林,JDK,JRE,JVM三者之间的关系,然后还有就是Java及格软件的使用,从一开始比较low的DS控制台,到后来的稍微高端点的notepad++,再到editplus,以及我们现在正在使用的eclipse,随着在这些软件上不断的敲着代码,我对于Java的认识也日渐加深。在这里,我一定要写一个代码,或许对于以后的我来说,它会变得非常普通,没有一点技术含量,但是我要记录下它,只因为它是我写的第一个代码。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
在之后的几天时间了,我又学了很多的新知识,知道了常量,变量,知道了几类运算符,它跟我们以前数学中遇到的有相似也有不同,然后是if,switch选择语句,还有三个循环语句:for循环,while循环,do...while循环,特别是for循环,我感觉特别的有用,我个人特别喜欢for循环的嵌套,甚至那会做题目的时候我都觉得,没有什么是两个for循环还解决不了的,如果有,那就来三个。在这里,有一个印象比较深刻的案例,就是水仙花数的求取,可能是比较有趣吧,所以就记了下来,刚学的时候,感觉还是有点难的,但是现在,我眯着眼睛都能打出来,一个for循环就能解决:
for(int i= 100;i<1000;i++) {
int ge = i%10;
int shi =i/10%10;
int bai =i/100%10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai ==i) {
System.out.print(i+" ");
}
}
后来又学会了方法的调用,了解了数组,还有就是昨天刚学的面相对象了。说实话,这三块挺难得的,特别是昨天的面相对象,听得时候感觉很难,云里雾里,但是做作业又感觉都会做,不知道是作业太简单了让我产生了以为自己已经懂了的假象,还是我自己想多了把事情想复杂了,其实我内心还是更偏向于前者的,所以吓得我有多看了两遍教学视频。然后在这段时间里,还学了回文数的案例,还有评委打分,不死神兔这些,还有个彩票的模拟,感觉挺有意思的。
还有就是数组的那块内容,应该是我这十几天学的最开心的一块内容了,因为跟以前数学的内容比较接近吧,思考方式也差不多,把一道道的题目做出来还是很有成就感的。这期间,同桌自己想了个问题出来,就是一个随机的数组,如何让它从小到大排列好,然后我们俩就一起在想,一开始,我是想设置一个count数,然后那数组中的每个元素跟其他元素去比,如果遇到比它小的,就count++,然后新建一个数组,count等于几,就把这个原数组的元素做为新数组的索引为count的元素,但是后来我发现这么做有个bug,而且我想了很久也解决不了,就是原数组中如果有元素相等,那么他们的count是会相同,那么就会少接受一个数了,这个bug我想了好久都没能解决,所以后来我有换了另一种思路。就是每次通过for循环拿出最小值之后,就把这个元素直接踢出去,然后让剩下的数形成一个新数组,再取最小值,最后将取出的数一个一个排列起来就行,但是如何踢出一个元素形成数组难倒了我,我觉得是可以靠arr.length个for循环来解决这个问题的,直到现在我也这么觉得,但是这样做超出了我的大脑运算范围,所以我放弃了这种做法。只好又去开辟新的思路了,其实是跟第二种差不多吧,算是一个升华,先算出最小值,然后将它和第一位元素交换位置,再通过一个for循环的嵌套,每次将第一位元素踢出,然后算出剩下数中的最小值,以此类推。下面我来写下:
for (int x = 0; x < arr.length; x++) {
int min = arr[x];
int a= 0;
for (int i = x; i < arr.length; i++) {
if (min>=arr) {
min=arr;
a=i;
}
}
int temp = arr[x];
arr[x]=arr[a];
arr[a]=temp;
}
这个就是最终版本了,一开始我还再用了一次for循环取算a的值的,被同桌改进了一下,其实可以在求最小值的同时就能a求出来的,这样就又少了几行代码。一个想了整整一天多的问题结果就靠这么几行代码解决了,真的是又难受又开心。
通过这十几天的学习对于Java也算是入门了,接下来,让我们继续敲代码吧。
作者: 小浙姐姐 时间: 2017-12-31 10:08
是面向对象,而不是面相对象哈!同学很用心哦!就业班也要继续努力哦!后面有什么好的idea,不仅可以和同学讨论讨论,也可以跟导师和助教分享分享哈!说不定有额外收获哦!加油
作者: 秋子菇凉 时间: 2018-1-7 11:13
不错!知识点很详细!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |