week 1

     本周正式我开始了java的学习历程,首先初步了解了java1996年至今的发展历史,随后对java的体系与特点有了大概了解。在三种体系中,如今应用最多的是javaEE,即以企业为环境为开发应用的解决方案,由于java本身对中大型企业项目的契合度高,所以EE的火爆在情理之中。关于java的特点,主要有二。第一,java自身携带垃圾回收期GC,这意味着使用java的工程师不用手动释放无用的内存,仅进行编程作业即可;第二,java可以通过不同的jvm实现在不同操作系统中的运行。

本周的第一天,主要针对java语言的一些基础部分进行了学习。首先,关于代码语句,可分为两部分:

1.结构定义语句(对代码进行结构划分,常见如“{}”,这类语句作用为表明范围。)

2.功能执行语句(具体为写在“main”里的部分,这类代码主要用于执行不同的功能,必须以英文分号结束。)

然后比较重要的点便是理解二进制,计算机中的数据均是以二进制数字进行保存,正如一句经典的话所说“这个世界上只有10种人,懂二进制的和不懂的。”

接下来便是关于数据类型,这些数据类型本质为不同的变量,用于记录不同大小的数据,详细的分类可见下图

java中的数据类型分类

首先要明确一个叫“字节”的概念,它是用于计算存储容量的计量单位,来处理二进制的数字串,也是构成信息的计量单位。这些数据类型各自所用的字节大小也不一样,一般把这些数据类型所占用的字节称为内存消耗,内存消耗大的数据进行运算时所需时间较多,例如浮点类型中在不严格要求精度的情况下多用“float”,便是因为“float”内存消耗较“double”小。整数类型中使用“int”最为普遍,该类型定义的变量为整数。字符型“char”用于存储字符,多用于输入文字等文本内容。而布尔型则是对判断的真假进行存储,仅包含true与false两种情况。

关于各类型之间还存在有许多问题,例如进行类型转换,小类型转为大类型一般不会存在问题,但在反过来的情况中,便可能存在溢出的问题。而关于类型的定义,便可能存在几个常见问题:

1.在定义“float”类型时,由于浮点字符默认定义为“double”,所以定义“float”字符时需在浮点字符后加一个“f”。

2.在定义“long”类型变量时需在字符后加“l”

关于各运算符的使用在此不过多赘述,大都与日常生活中的用法相似,接下来对编程规范做一个大致说明。编程规范的存在是为了使程序员之间进行交流时更加方便,若是大家编程时各具特色便会极大降低工作效率。在此介绍几个最为基础的,后续会更新补充:

1.代码中命名均不能以下划线或美元符号开始或结束。

2.严禁命名时拼音与英文混合,而且拼音命名的情况也应尽量避免。

3.类名命名时使用UpperCamelCase式风格。

4.方法名、参数名、成员变量、局部变量、使用lowerCamelCase式风格。

5.常量命名全大写。

第二天主要学习了流量控制方面的内容,具体可分为分支与循环两部分,而其中分支又可分为“if”和“switch”语句,循环则可分为“for”、“while”、“do/while”三种。

首先,有个重要的工具便是“Scanner”类,该类用于接收用户输入的数据

使用Scanner进行定义变量

在接收到用户的数据后,便可使用内部的语句等进行判断、循环等操作。

“if”语句常用的句式为if(条件语句){执行的操作}else{执行的操作}

该语句执行的操作可以理解为依次进行条件的判断,然后在符合条件的语句中执行该语句下的命令,如下图

if语句使用情景举例

该代码便是设定了根据用户输入购物金额与会员积分后对用户购物金额进行不同程度打折然后输出的场景。

“switch”语句的常用表达式为Switch(表达式){case取值1:语句块1;break;......case取值n:语句块n;break;default;}相较于“if”语句,“switch”应用的情景相对更为具体,如果说“if”是判断一个范围,则“switch”便是抓取具体的数值然后进行操作。

“switch”语句场景举例

上述情景是用于根据用户输入年份和月份判断该月的天数,设计思路可以是先将平常年份的除2月外的月份进行设定,在这一部分便使用了大量“switch”语句。

“for”循环的主要思路可以看做for(定义循环变量;判断循环条件;更新循环变量){}。

“for”循环情景举例

上述例子是利用了2个“if”语句然后根据“print”与“println”打印时不换行与换行的特性打印图案。

“while”与“do/while”语句存在着差别,由于“do/while”语句使用较少所以暂时不做具体的学习,有待日后进行补充。而“while”与“if”的区别则在与“if”不需要在执行完一个语句后对条件进行再次判断,而是直接运行下面的程序,而“while”在运行完一个语句后则要判断是否返回执行语句。

第三天主要的学习内容为数组。数组即指相同数据类型的多个数据的容器,其常用声明方式有以下三种:

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

2、数组类型[]数组名称 = {数组内容1,数组内容2,...,数组内容n}

3,、数组类型[]数组名称 = new 数据类型[]{数组内容1,数组内容2,...,数组内容n}

关于数组有2个重要的知识点,首先是冒泡排序,这一排序方法是指比较相邻元素,若是前者大于后者,便交换两者的位置,这样每次计算一轮便会将数组中最大的元素放置在最右,在进行“数组元素个数-1”次后便完成了排序

冒泡排序算法举例

上图便为经典的使用冒泡排序对一个元素数量为6的数组进行排序。

二分查找也叫折半查找,顾名思义便是将排序后的数组多次对半分为两组,然后依次在包含所查元素的数组中进行查找。

二分查找举例

在上面的例子中,可以看到二分查找是利用最大与最小范围进行计算,从而最终准确寻找到所查数据的位置,当然,前提还是需要是在已经排序后的数组中才能使用。

第一周的学习内容大概如此,主要分为语言基础部分、分支与循环和数组三部分。

你可能感兴趣的:(week 1)