之前一直对编程心生敬畏之情,觉得很难很难。最近由于种种开始学编程。。
开始在学C++还是以JAVA 入手学习程序设计语言上纠结啦一下,最后还是选择啦JAVA,没有指针对我这种什么都不会的人来说,越好入门越好。。。
在看啦四五天视屏后对JAVA 有了初步的了解,发现编程也没那么难啦。。所以最近开始动手敲代码。
因为为啦找工作,所以我希望能在三个月学到足够多的知识。。
每天平均八到是个小时在看视频和敲代码,还有点时间就是关心哈哈互联网的实事啦。。。
现在感觉真心挺累的,但是也比较充实吧。慢慢发现编程也没想象中的那么难啦。。
有两句话我觉得一直激励着我
编程没有什么难不难的,只有会不会。。编程是一种思想(现在的我还没到这种高度,但是代码的优化真的很重要)
的确,当你决定开始做的时候你就不会觉得很难。。只是知识点很细,要一点点的吃透。。我觉得我现在学习最大的弊端就是求快而不精,所以我也在慢慢的放慢速度把每一个小的知识点搞清楚。
还有就是被人鄙视不会技术,当时就觉得很不爽的,可能现在就是为了证明自己吧。。
好啦,在讲完学习动机之后开始讲讲最近的学习的关于技术上的心得吧。(我是完全从零开始的,所以有些地方会出现自己理解上的错误)
第一天基本上就是敲JAVA语法:
FOR语句,while语句,其实两个循环语句基本上功能能够实现互换,看个人习惯,但是for语句在运行完后没有占内存,而while语句会继续在内存中,所以从内存的角度上说最好用for语句。
然后是if,if else, 以及switch语句,这些都是选择条件语句,能区别就可以啦。
this关键字的使用,用来定位内函数所输入的变量
位运算符
<<左移,
>>右移,
>>>右移,区别于上面一个在于他是无符号右移,右移后前面添0,上面一个是如果是负数右移后会填1;
基本上一些很基础的程序啦。。
第二天
基本上就是数组啦,
一维数组和二维数组的区别,
最新的影响就是
int [ ] x, y[ ];前面一个是一维数组,后面一个是二维数组;;
然后就是排序方法
冒泡排序:
思路:相连两个数进行比较。可以从大到小排也可以相反。。
用两成循环嵌套就可以实现啦。。
选择排序
思路:第一个数和他后面的所有数比较,得到最大或最小值
也是用两成循环嵌套实现的。(这个方法还比较重要的) 现在感觉只有有思路,写小程序还是比较简单的。。。呵呵呵。。。
折半查找
思路:首先对有序数列而言的
定义MAX,MIN ,MID
讲MID值与输入值比较,确定是在左边区域还是右边区域;
然后IF KEY<MID
MAX=MID-1;
ELSE
MIN=MID+1;
MID=(MIN+MAX)/2;
然后经常用到的还有快速查找,堆查找(这个我还不是很会)
刚敲代码不久,经常报异常,好囧啊。。。调个程序调的我好痛苦,有时就直接放弃啦。。。
第三天
敲啦三天代码颈子已经受不了啦,可能以前不搞学习,现在强度太大啦。。。感觉在慢慢入门,还是蛮开心的。。
昨天效率不搞就敲啦进制转换
tobin(转二进制)
stringbuffer sb= new stringbuffer();
int num;
while(num>0)
{
b=num%2;
num=num/2;
}
s.y.o(sb.reverse());
输出是个反的数组,所以要用stringbuffer零时存储,在用sb.reverse()反转过来
其实这个方法的代码复用性很小,但是能实现就行啦。。。^^
tohex
思路:
num与15进行与运算,得到num 的后四位;
然后将num右移四位得到笑一个,一般一个数是32位,所以要右移8次。。。代码都不全,写着完全作为自我总结。。。
stringbuffer sb= new stringbuffer();
for(int x=0,x<8,x++)
{
int temp = num&15;
if(temp>9)
sb.appen((char)(temp-10+'A");
elae
sb.append(temp):
num>>>4:
}
s.y.o(sb.reverse());
还有就是可以用数组做。。。
今天比较偷懒。。。
第四天
今天计划开始敲异常处理的代码啦。。。
坚持每周写一两次好啦。。。坚持记录最近的学习情况。。。