老马,来壶烧酒

我从来不后悔自己的决定,八月份离开了生活一年多的桂林,现在在北大青鸟学编程,总觉得吧,人总的有一份为之追求的事,也就是经过复杂之后才会真正懂得简单的好处,可能在二十岁的年龄阶段说这些话,未免有些“做”,但总归来说,有一种这样的心境,利弊取舍,归根结底还是看自己的怎么去看待自己的位置吧。

接下来,言归正传,八月份入学北大青鸟,从学JAVA语言那一天起,坚持每天十个小时以上的码代码时间,这个产业门槛低,门槛低有门槛低的好处,同时也有也在告诉着你,你必须比别人努力十倍,百倍,才能被市场所接受,如果说我不看重工资那是假的,但是我更享受于一种创造,那种由无到有的一种感觉,对,那种可以被客户接受,认同的感觉,我相信任何一份工作都是以这个为起点,当然实质性内容的话,得因人而异。

11月4日,学完了类和对象,紧接着进行了前面while;do while;for;双重for;数组的插入;的测试,当要我用笔把代码一行一行写出来的时候,我彻底的发现了我自己的薄弱之处,原来假象一直都存在着,我原本以为我自己能够轻松的应对这次的测试,可是不尽人意,我没有头绪,尽管我每天花那么长的时间敲代码,可是你应该知道有些东西,得要有那个思维,没那个思维模式,真的很难想得出来,凌晨经常是卡壳,碰到一个问题,始终想不出该如何去解决,萌生一个好想法,却不知道该用哪些代码去敲,我从未怀疑过自己比别人差。

11月5日,因为发现自己的薄弱之处是基础没打扎实,用一晚上跟一上午的时间把课本上的2到11章的习题都做了一遍,一些知识点也记载了下来,当自己的笔记,也养成了每写一行代码写一行注释的习惯,因为自己前期自学到后面去了,前面的一些知识点自以为掌握了,现在回过头来看自己当初的代码,很多漏洞都出来了,例如判断结构里面原本只能判断3个值得,我输入4个值也能进去,例如原本是只能输入数字进去,我输进去一个字符就报错,这就是一些问题所在,对于代码的不理解,而且想字符串类型强制转换成 char类型,一时间,许多问题都暴露在了眼前。

11月7日昨晚上因为今天上午是休假,弄到了凌晨三点多,弄出了一个客户信息管理系统,主要熟练的是方法的调用,还有一个人机猜拳没有弄出来,问题现在很大,还有很多地方需要弄明白,正好,这两天是周末,又可以晚上熬通宵了。

2.0变量、数据类型和运算符

变量是一个数据储存空间的表示。

变量时储存数据的一个基本单元,不同的变量相互独立。

使用声明的变量名就是使用变量对应的内存空间中存储的数据。

算术运算符>关系运算符>逻辑运算符>赋值运算符

3.0选择结构(一)

If(条件){

代码块

};

需要先判断条件,条件满足后执行

程序执行时,先判断条件。当结果为true时,程序先执行大括号里的代码块,再执行if结构后面的代码块。当结果为false时,不执行大括号里的代码块,而执行if结构后面的代码。

Public class Demo{

Public static void main(String args[]){

//语句1;

//语句2;

If(条件){

//语句3;

}

语句4;

}

}

程序开始执行后,首先执行语句1和语句2,然后对条件进行判断。如果条件成立,则执行语句3,然后跳出if结构块,执行语句4,。如果不成立,则语句3不执行,直接执行语句4.

If-else选择结构

If(条件){

代码块1

}else{

代码块2

}

如果XX,就XX;否则,就XX.

Int random = (int)(Math.random()*10);         //产生十个随机数    (random) 随机的

多重if选择结构,多重选择结构在解决需要判断的条件是连续的区间时有很大的优势。

If(条件1){

代码1

}else if(条件2){

代码2

}else{

代码3

}

程序判断条件1,如果成立,则执行代码块1,然后直接跳出这个多重if选择结构,执行它后面的代码。这种情况下,代码块2的代码块3都不会被执行。如果条件1不成立,则判断条件2;如果条件2成立,则执行代码块2,然后跳出这个多重if选择结构,执行它后面的代码;如果多重if选择结构中的所有条件之间只是简单的互斥,不存在连续的关系,则条件没有顺序的要求。

嵌套if选择结构

If(条件1){

If(条件2){

代码块1

}else{

代码块2

}

}else{

代码3

}

只有当满足外层的if选择结构的条件时,才会判断内层的if的条件

Else总是与它前面最近的那个缺少else的if配对。

04章switch选择结构

等值判断与区间判断的区别

Switch(表达式){

Case 常量1:

//代码1;

Break;

Case 常量2:

//代码2;

Break;

Case 常量3:

//代码3;

Break;

Default:

//代码n;

Break;

}

当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码,如果没有任何一个case 后的常量与switch后的小括号中的值相等,则执行switch末尾部分的default块中的代码。

Switch选择结构只能用于判断一个整形变量或表达式是否等于某个整数值的或者一个字符型变量或表达式是否等于某个字符的情况,并且每一个case后面的常量值都不同,而多重if选择结构即可以用于判断条件是等值的情况,也可以用于判断条件是区间的情况。

Switch选择结构只能用于等值条件判断的情况

当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重if选择结构会更简单,代码结构更清晰易读。

If(input.hasNextInt()==true){

}else{

System.out.println(“请输入正确的数字”);

}

通过调用Scanner对象的hasNextInt()方法,来判断用户从键盘上输入的字符是否合法;如果用户输入的是数字,则根据输入的具体的数值跳转到相应的菜单。(程序异常)

05 循环结构(一)

While(循环结构):

我们可以从循环条件跟循环操作两个角度考虑,即循环就是“在什么条件成立时不断地做什么事情”;

循环条件满足,则执行循环操作,当条件不满足的时候,即循环操作停止.

循环条件是一个表达式,它的值为boolean类型,即true或fasle,{}中的语句称为循环操作,又称之为循环体;

特点:先判断,后执行;

Do-while(循环结构):

无论如何循环都会先执行一次,再判断循环条件,决定是否继续执行;

执行一遍循环操作,再判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环

如果条件设置为boolean类型,条件判断成立后,则必须在输出尾赋值为真

循环结构由循环条件和循环操作构成,只要满足循环条件,循环操作就会反复执行;

捕捉:分析循环条件和循环操作,套用循环的语法写出代码,检查循环能否退出;

注意点:循环变量的初值、循环操作中对循环变量值的改变和循环条件三者间的关系;确保循环次数正确,避免出现“死循环”;

06循环结构(二)

在解决有固定循环次数的问题时,可以首选for循环结构

For循环结构4个部分:

初始部分

循环体

迭代部分

循环条件

For(表达式1;表达式2;表达式3){

//循环体

}

表达式1:赋值语句,为循环变量赋初值

表达式2:条件语句,循环结构的循环条件

表达式是3:赋值语句,循环结构的迭代部分,通常用来修改循环变量的值

条件=true

For(①初始部分;②条件判断;④改变循环变量值){

③循环操作;循环体被执行

}

根据循环条件判断结果

如果为true,则执行循环体

如果为false,则退出循环

表达式1只执行一次,表达式2跟表达式3则可能会执行多次,循环体可能多次执行,也可能一次也不执行

Break语句不仅可以用在 for循环结构中,也可以用在 while和do-while循环结构中,break语句通常与if条件语句一起使用

Break语句用于终止某个循环,程序跳转到循环体外的下一条语句

Continue语句是用于跳出本次循环,进入下一次循环的语句

在For循环结构中,Continue语句使程序使程序先跳转到迭代部分,然后判断循环条件,如果为true则继续下一次循环,否则终止循环。

0.8数组

数据类型操作往往是单个的数据,有时候,需要对数据类型相同,用途相近的一组数据集中进行处理,就非常繁琐,所以用数组集中操作数据比使用多个变量操作数据便捷得多。

数组就是一个变量,用于将相同数据类型的数据储存在内存中(声明一个变量就是在内存空间分配一块合适的空间,然后将数据存储在这个空间中)数组中的每一个数据元素都属于同一类型数据

数组的基本要素:

标示符:

数组元素:数组标示符后,要向数组存放数据,而这些数据就称为数组元素

数组下标:为了得到正确的数组下标,就需要对他们进行编号,方便计算机存取

元素类型:

数组中每个元素都可以通过下标来访问

1 声明数组

数据类型[]数组名

2.分配空间(要为数组分配空间,这样数组的每一个元素才等对应一个存储单元)

数组名[] = new 数据类型[数组长度]

语法

数据类型 数组名[] = new 数据类型[数组长度];

数组排序:Arrays.sort(数组名);

数组经常与选择结构,循环结构搭配来解决问题

If(数组名[] .compareTolgnoreCace(用户接收姓名)>0){               //字符串比较

原数组下标=数组下标(index=i);

Break;

}

0.9循环结构进阶

二重循环就是一个循环体内又包含另一个完整的循环结构

//while与while循环嵌套

While(循环条件1){

//循环操作1

While(循环条件2){

//循环操作2;

}

}

//do-while与 do-while循环嵌套

Do{

//循环操作1

Do{

//循环操作2

}while(循环条件1);

}while(循环条件2);

//for与for循环嵌套

For(循环条件1){

//循环操作1

For(循环条件2){

//循环操作2

}

}

//while与for循环嵌套

While(循环条件1){

//循环操作1

For(循环条件2){

//循环操作2

}

}

循环条件1和循环操作1对应的循环称为外层循环,循环条件2和循环操作2对应的循环称为内层循环,内层循环结束后才执行外层循环的语句,外层循环变化一遍,内层循环变量要变化一次;

Continue语句是跳出本次循环,进入下一次循环,而break语句是跳出本层循环,即提前结束本层循环,执行循环下面的语句;

11.0

类与对象

“世界是由不同类别的事情构成的,当提到某一个分类时,就可以找到该分类的一个具体的事物,而当我们提到这些具体的概念时,就会联想起他们所对应的一些类别,而这些现实世界中客观存在的事物就称之为对象!”

分类就是以事物的性质,特点,用途等作为区分的标准,将符合同一标准的事物归为一类,不同的则区分开来;

“根据待解决的问题的需要,选择合适的标准或角度对问题中出现的事物进行分类”

在面向对象中,对象时用来描述客观事物的一个实体

静态特征是可以用某些数据来描述的特征

动态特征是对象所表现的行为或对象所具有的功能

对象的属性 -------à静态特征(属性是用来描述对象静态特征的一个数据库)

对象的方法---------à动态特诊(方法是用来描述对象动态特征(行为)的一个序列动作)

构成对象的两个主要因素

用来描述客观事物的一个实体,由一组属性(对象)和方法构成

类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例;

定义类就是抽取同类实体的共性自定义的一种数据类型

类是程序的基本单元

Public class<类名>{

//定义属性部分

属性1的类型  属性1;

属性2的类型  属性2;

….

属性N 的类型 属性 N;

//定义方法部分

方法1;

方法2;

…..

方法N;

}

定义类名

Public class 类名{

}

类的属性

在类的主体当中定义变量来描述类所具有的静态特征(属性);,这些变量称为类的成员变量

编写类的方法

在类中定义方法来描述类所具有的行为,这些方法就称之为类的成员方法。

特指名词识别对象

负数名词,泛指名词识别类

Public String showCenter(){

方法体

}

访问修饰符 返回值 方法名(){

方法体

}

访问修饰符限制了访问该方法的范围,返回值类型是方法执行后返回结果的类型,这个类型可以使基本类型,或者是引用类型,也可以没有返回值,此时必须使用void来描述。

类的作用就是创建对象————>类的实例化过程

每个对象的属性值可能是不一样的,所以在创建对象后再给它的数据成员赋值

类名 对象名 = new 类名();

对象名.属性       //引用对象的属性

对象名. 方法()            //引用对象的方法

类与对象总结:

对象时用来描述客观事物的一个实体,由一组属性和方法构成

类定义了对象将会拥有的特征(属性)和行为(方法)

类和对象的关系式抽象和具体的关系是抽象和具体的关系。类是对象的类型,对象是类的实例。

对象的属性和方法被共同封装在一个类中,相辅相成,不可分割。

时间: 2024-08-06 15:21:18

老马,来壶烧酒的相关文章

【vue】跟着老马学习vue-数据双向绑定

学习了node.js教程,只能说是有了一定的了解,之前也了解了webpack和es6的核心内容,也看过vue2.0的官网教程,并结合视频看过项目,但是理解和运用仍然存在很多问题,接下来的一段时间,跟着老马学习vue 学习链接:http://aicoder.com/vue/preview/all.html#1 vue最大的特点就在于它的双向绑定,是一个前端的双向绑定类的框架. 一说到vue我们就应该立刻想到以下几部分:1.数据双向绑定:2.列表渲染.条件渲染:3.事件处理:4.生命周期:5.组件化

【温暖】文龙回AICODER给老马送锦旗了

又是一个愉快的周末,AICODER第一批老学员文龙小伙伴.已经工作两个月,而且就业薪资12000+,文龙从之前月薪不足4000,一下子翻了三倍多的工资. 几个月的实习,让文龙掌握了大前端全栈的技术,在公司里面还当起的前端的小讲师,把在AICODER学到的新东西带到了公司,受到很多同事的认可. 文龙学习过程中,非常努力,每天都勤勤恳恳的写代码,问老马问题.由于他自己的辛勤付出,最终也获得了很好的结果. 在屏幕面前的你,还犹豫什么,选择AICODER,成功在你! AICODER官网地址:https:

[转自老马的文章]用MODI OCR 21种语言

作者:马健邮箱:[email protected]发布:2007.12.08更新:2012.07.09按照<MODI中的OCR模块>一文相关内容进行修订2012.07.02按照新版Pdg2Pic的情况对内容进行补充2012.06.11标题从<在简体中文Office 2003下OCR繁体中文.日文.韩文>改为<用MODI OCR 21种语言> 目录1 安装MODI    1.1 Office 2003下安装MODI    1.2 Office 2007下安装MODI   

[转老马的文章]MODI中的OCR模块

作者:马健邮箱:[email protected]发布:2012.07.02更新:2012.07.09补充非简体中文版内容 自从基于MODI的DjVuToy.FreePic2Pdf.Pdg2Pic发布后,很多人就在问同一个问题:能不能在不装Office 2003/2007或SharePoint Designer 2007的情况下,让基于MODI的软件正常OCR?毕竟对于简体中文来说,就算只装SharePoint Designer 2007中的MODI,也要近650 MB,装Office 2007

老马Repository模式原文

A system with a complex domain model often benefits from a layer, such as the one provided by Data Mapper (165), that isolates domain objects from details of the database access code. In such systems it can be worthwhile to build another layer of abs

转载--老马说编程

计算机程序的思维逻辑 - 文章列表 函数调用的基本原理 -栈

《老马的职业“鬼”话》 马华兴著

第一章 给你的职业加点儿魔法 我们是"跑龙套的"还是主角 走在迷雾森林 转职:剑士?狂战士?弓箭手?巫师? 职业变化的不确定性 不行动的智多星 给你的职业加点儿"魔法" 第二章 风系:吹散迷茫 把自己丢了 梦想的那个"贼" 真兴趣和伪兴趣 能力:我该拿什么换金币 这份工作我们最CARE(在意)什么 第三章 土系:梦想之"场" 在职场壁垒中开一扇门 洞悉产业演进的规律 曙光期:如何从烈士到先驱 在夕阳产业如何咸鱼翻身 你会运用职

关于回溯与马

这道题目呢,舞台被设定在被熊孩子撕剩的半边中国象棋棋盘上. 有一匹老马,老到只能往右跳,从半张棋盘的一个角跳到对角线上的另一个点(如图a),要求输出所有可能的路线,用坐标表示. 这个题目就非常地适合用回溯算法来解释了,类似于走迷宫,不能越界,所以我们可以得到它所有可能前进的方向(如图b).这题目的坐标有些特别,横坐标表示的是行数(即图a中的黑色坐标),与我们平时看惯了的坐标轴不一样,所以解题时要稍微注意一下.如果不能到达终点,则返回一步,尝试另一个方向.题目很简单,先不多说别的,奉上代码如下:

马化腾为什么要怼朱啸虎,只因OFO套路太深

第一句,OFO套路太深! 第二句,朱啸虎钱多套路深! 马化腾为什么要怼朱啸虎? 老马老朱这个境界的人,一般都讲究和气生财,非一般闹心的事情,或违背原则良心的事情,大概也就一笑而过罢了! 但昨天的事,两人你来我往相互过招,你说OFO数据第一,我说摩拜微信支付比OFO高一倍多,你说性价比最优的方案才是好方案,我说品质才是共享单车的核心竞争力.文字太苍白,两人对话更见锋芒! 有人说两人的互怼是因为利益相关.马化腾投资的是摩拜,朱啸虎投资的是OFO,二者打架是为了让自己的钱更值钱.对于这一点,何玺并不完