一周小结

2016-11-27  本文已影响0人  斐顾

                                                  一周小结

Java基础语法

1.介绍

a)这部分课程的目标是掌握Java的基础语法

b)我们以开发BMI计算器为主要例子贯穿相关学习

1.安装Eclipse

a) Eclipse依赖于JDK/JRE,我们可以在window/preferences里面配置JDK/JRE,我们可以在window/preferences里面配置JDK/JRE

b) workspace可以存放很多项目和代码

2.使用Eclipse创建Hello程序

a)学习Eclipse的基本用法

b)Eclipse可以自己根据包创建文件夹

c)Eclipse可以自动编译,直接运行

d)Eclipse可以帮我们生成代码

3.Java注释

a)注释帮助程序员更好的看懂代码,不影响编译和执行

b)两种注释写法

i./**/可以写多行注释

ii.//只能写一行

c)注释有类注释,方法注释和方法内部注释

d)注释必要的时候添加;最好的注释就是清晰的代码(不用注释)

e)JDK自带的类包含很多注释,我们学习JDK的类的一种方式就是读它的注释

f)我们要学会自己看注释,自己点进去看代码

4.再次认识Java程序 – 类

a)Java程序是由类组成的

i.Java程序是由类组成的

ii.系统帮我们提供了很多类:我们要了解系统的类

iii.我们的同事可能会写很多类

iv.我们可以去网上下载类

v.我们自己会写很多类

vi.类与类之间相互调用(使用)来完成任务

5.再次认识Java程序 – 方法和语句

a) 类里面包含多个方法

i.类由方法组成

ii.方法包括方法声明,和方法体两部分

iii.方法声明包括返回值,名字,输入参数(包在小括号内),多个输入参数用逗号隔开,输入参数必须指定类型(用空格隔开);

b)语句

i.方法的代码是由一条条语句组成的

ii.语句必须以分号结尾

6.关键词

关键词是Java预留的具有特殊含义的词,比如class

关键词在eclipse中会有特殊颜色显示

java编译器通过关键词和语法解析java程序

关键词:class public void return int package

7.标识符

a)标识符的必须遵守的规则

肯定不能用关键词

标识符第一个字母必须是字母,下划线_,或者$

后面的字符可以是任何字符或者数字

标识符大小写敏感,name和Name

b)java的命名规范 - 驼峰命名法

i.多个单词直接连接在一起,中间不用下划线或者横杠等

ii.类名每个单词首字母大写

iii.变量名和方法名第一个单词首字母小写,其他单词大写

c)尽量让名字直观易懂

BodyMassIndexCalculator

9.变量

a)变量是存放数据的地方

b)变量都有具体的数据类型,不同类型的变量不能赋值

c)变量要先定义,再使用

d)变量通过=(赋值运算符)来赋值,可以直接赋值,也可以以后在赋值

e)变量的值可以改变

f)定义BMI必须的变量

10.变量的种类:属性变量和局部变量

a)属性变量,类除了有方法,还有属性

i.理解System.out.println(“”)

b)局部变量

i.只在方法中使用,是临时的数据存放的地方

11.常量

a)变量加上final关键词就可以了

使用常量来定义欢迎语句

12.数据类型

a)基本数据类型 – 8种

b)自定义数据类型class, interface, enum



13.数字数据类型

a)几种不同的数字数据类型

//内存最小的单位是bit,1个bit只能存储一个0或者1.

//8个bit为1个byte字节

b)使用正确的数据类型改进bmi的变量值

14.数据类型转换

a)自动类型转换:

i.数字之间,从低精度到高精度可以自动转换;

ii.从高精度到低精度不能自动转换,因为会丢失精度

b)强制类型转换

c)类型转换可能会出错

B bb = (B)a;

15.字符串和字符

a)字符串使用双引号括起来(一定要用英文双引号)

b)变量名是不用双引号的,如果没加双引号,那必须是关键词或者变量

16.运算符

a)数字运算符

+ - * / %

b)比较运算符

== > < >= <=

c)逻辑运算符

&&  ||  &  |

d)其他运算符

e)计算bmi的值

17.取余运算符%

98 % 10 = 8    13 % 5 = 3

方法调用:方法名();

18.比较运算符

布尔值数据类型

a)只有true或者false两种

b)逻辑运算的结果是布尔型的的值

19.逻辑运算符

a)&&: 两个都是ture才是ture

b)||: 有一个true就是true

c)&: 按位与

d)|: 按位或

20.程序的三种执行方式

a)顺序执行

b)分支执行

i.if else    ii.switc

c)循环执行

i.for    ii.while

21.分支语句if else if else

22.使用if判断来实现bmi程序

23.变量的作用域

全局变量:整个类都可以使用。

局部变量:只有在自己所属于{}里面才可以使用。

全局变量和局部变量如果名字相同,优先使用局部变量。

局部变量不能命名冲突。除非两个局部变量在完全相互独立的{}内。

24.分支语句 switch case

a)语法

b)要加break,否则从头到尾会一直执行,直到遇到break为止

c)最后可以加default,不进行条件判断,可以直接走进去

d)只支持以下几种类型:int byte short char String Enum

e)在分支比较多的时候,优先使用switch

25.基础数据类型(int, byte等)所对应的对象

8种基本数据类型(primitive)

26.使用Scanner接收用户输入

import 是从别的包引入类。下面的两种不用import

java.lang

new 是创建对象/类的实例

Scanner sc = new Scanner(System.in);

27.循环语句 for

28.循环语句do while

29.完善bmi程序:使用while循环支持多次计算

30.使用DecimalFormat格式化bmi小数点到2位小数

字符串String

1.字符串的拼接

2种方法:使用+或者使用concat方法

一般情况下,2种方法都可以使用,没大区别

但如果要拼接成千上万个字符串,应该考虑StringBuffer或者StringBuild类,后面会学习这两个类

2.字符串的方法String

学会使用Eclipse查看源代码

学会使用outline查看所有的方法

length()    charAt()   等等。。

3.字符串查找和替换

chartAt()      replace(“are”, “is”)

复杂情况下应该使用正则表达式Regex

4.StringBuffer和StringBuilder

使用+号拼接字符串,每次拼接都会创建一个新的字符串,占用内容多,效率低

StringBuffer和StringBuilder在拼接过程中使用同一个对象,所以效率高。(append方法)。

StringBuffer是线程安全的,会防止多个线程同时访问String,它添加了额外的防护,所以比StringBuilder慢。

concat方法底层实现是StringBuilder.

数组

1.数组的概念,声明和创建

有20个朋友,需要安排住的地方。定了20个房间。yourHotel

yourHotel[1], yourHotel[2]…. yourHotel[20]

数组是存储固定长度,相同类型的元素集合的数据结构

数组的下标从0开始计算

3种方式:

int[] myIntArray = new int[3];

int[] myIntArray = {1,2,3};

int[] myIntArray = new int[]{1,2,3};

2.数组的访问和遍历

a)访问nums[3]

b)注意数组下标越界

java.lang.ArrayIndexOutOfBoundsException

c)获得数组长度使用length – 这是一个属性

3.for循环的第二种方式

只能应用在数组,List等集合数据结构上

4.Arrays和sort

Arrays.sort

5.二维数组

算法

1.算法概念

a)算法简单说就是解决问题的思路和步骤,对程序员至关重要

b)算法是独立于编程语言的

c)常用算法:各种排序算法等

d)简单例子:在数组里面查找某个元素是否存在?

有一个数组,里面保存了很多名字,我们查找一下tom是否存在?

2.数组 - 如何寻找一个数组中最大的或最小的值

i.先定义一个变量max,让它很小,比如-10000

ii.遍历这个数组,一个个比较过去,如果有一个比max大,就让max=这个数字

iii.最后max就是最大的

3.如何反转reverse一个数组?

int nums = {1,3,5,7,2,6}

方法1:再创建一个一样大的数组newNums。

newNums[length-i-1] = nums[i];

方法2:循环到数组长度的一半

int n = nums[i]

nums[i] = nums[length – i-1]

nums[length-i-1] = n

4.其他数组相关操作算法

a)如何合并两个数组?

b)如何在数组中删除1个元素?

{1,4,6,2,4,6,8}

c)如何在数组中添加一个元素?

{1,4,6,2,4,6,8}

{1,4,6,2,7,4,6,8}

d)如何判断两个数组是否相同?

先判断数组长度是否相同,如果相同再比较数组的每个元素是否相同

5.递归算法概念 – recursion

递归 Recursion – 简单说就是自己调用自己

递是传递给自己,自己调用自己

归是退出条件,在某些条件符合的时候,停止调用自己。如果没有退出条件会出现死循环,程序上会出现 java.lang.StackOverflowError

6.递归算法例子 –

什时候用递归:问题是重复的过程,可以被分解成更小的问题。

a)讲阶乘

b)关键是理清楚退出条件和传递方法

7.递归算法例子3 -讲斐波那契序列

1、1、2、3、5、8、13、21、34

在数学上,斐波纳契数列以如下被以递归的方法定义:

退出条件:F(1)=1,F(2)=1,

通用公式:F(n)=F(n-1)+F(n-2)(n > 2,n∈N*)

讲青蛙跳台阶问题

8.排序算法

上一篇下一篇

猜你喜欢

热点阅读