一周小结

                                                  一周小结

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.排序算法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • 《ilua》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 1...
    叶染柒丶阅读 10,538评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,587评论 18 399
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,073评论 0 7
  • 构造函数模式 构造函数中的实例属性在各个实例化对象间是独立的 function Box(name, age) { ...
    浅唱南山忆阅读 617评论 0 0
  • 随着年龄的增长,我们的伤痛和失望会越来越多,会因此觉得孤独。总有那么一些难挨的日子,我们突然会想找人一起承担。总有...
    Grace静静阅读 187评论 0 0