0基础第二周学习内容

Java语言特点:

简单性:(面向对象语言:后期使用类:类中有什么功能:不断地创建对象,指挥对象做事)

健壮性:Java的设计模式

分布式:硬件的支持--->服务器集群

    “大型项目”---成本非常高

 

开源:开发源代码

将最基本的Java所设计的常用核心类/接口---以及扩展类/扩展接口,提供给开发者使用

开发者需要研究

这些类或者接口中有什么功能(方法)

 

跨平台:跨操作系统 (需要Jvm: java虚拟机)

一个Java文件---编译一次,就可以在任何操作系统上运行(linux, Windows, Mac)

 

Java的平台版本

JavaSE:针对桌面应用程序开发

JavaME:针对嵌入式设备提供的解决方案

Android:基于Javase的

手机app端:混合开发,非纯Android开发

 

JavaEE:(后期的重点研究方向)

针对企业开发提供的一套解决方案

最基本的原生框架:servlet , jsp(java server page)

 

关键字: 被Java语言赋予特点含义的单词

关键字的字母都是小写!

1)Java中最基本的单元“类”

书写格式:class 类名{ }

2)public:公共的,公开的:权限很大

权限修饰符

public :现在目前使用这个

private:私有的

默认修饰符

protected:受保护的

3)static:静态修饰符

面向对象讲解:被静态修饰的----“共享,共用”

跟类的加载机制有关系

4)void:格式是和Java中方法的定义相关  (本周讲“方法”的时候讲)

5)数据类型:

基本数据类型:都是关键字

6)流程控制语句中:选择结构,循环结构等存在关键字;

 

标识符:在Java语言中,给类/接口/变量,给方法取名字的字符序列!

起名字的时候,字符序列的组成规则:

1)26个英文字母(大小写均可)

2)可以是数字字符

3)可以是$符号

4)可以是下划线_

注意:

1)标识符可以是数字,但不能以数字开头

2)标识符不能是Java中关键字

3)Java严格区分大小写(Java语言是一种”强类型“:语法结构非常严谨)

 

给类和接口起名字一致;

如果是单个单词:单词首字母大写,其余小写

举例:jdk提供的这些类:class Socket{ }

class Demo{ }

 

如果是多个单词:遵循”大驼峰命名法“

每个单词首字母都大写,其余小写

 

给变量和方法起名字符序列一致:

如果是单个单词:单词全部小写

举例:int num = 10 ;

如果是多个单词:遵循”小驼峰命名法“

第一个单词全部小写,从第二个单词首字母大写,其余小写

int applePrice = 5 ;

 

给常量命名:(Java源码:一般都是多个单词)

如果是单个单词:字母全部大写

如果是多个单词:每个单词字母全部大写,中间使用下划线隔开

 

Java常用类:Integer: int类型的包装类类型

MIN_VALUE:最大值

MAX_VALUE:最小值

 

JavaSE高级部分:多线程  Thread

优先级的常用字段:

字段摘要:

MAX_PRIORITY

线程可以具有的最高优先级。

MIN_PRIORTY:最低优先级

MORM_PRIORITY:默认优先级

 

常量:程序执行过程中,其值固定不变的值!

分类:1)字面值常量;

字符串常量:双引号包含    

字符常量:单引号包含   ’a‘  ‘A’  ’0‘

字符常量不参与运算:它就是固定的字符

参与运算:ASCII码表中代表一个数值

‘a’=97  ‘A’=65  ‘0’=48

整数常量:进制也属于常量

小数常量:

boolean常量:true / false

空常量:null  应用在“引用数据类型”的默认值

 

  2)自定义常量:跟关键字final有关

 

变量:在程序的执行过程中,其值发生改变的量!

变量的三要数:

1)数据类型---“一种类型”

2)变量名称---“符合标识符规则”

3)初始化值---“根据数据类型,给变量取值”

 

数据类型:

基本数据类型:

整数型: byte: 字节类型   1个字节   范围-128~127

short:短整型   2个字节

int:    整数默认类型    4个字节

long:  长整型   8个字节      (定义系统时间---换算毫秒值)

long 类型输出,在末位加l;

浮点型:  float:单精度   4个字节

double: 双精度   8个字节       场景:商品价格

(针对小数的精确计算:Java提供的类:Bigdecimal)

 

布尔型:   不会进行类型转换,仅仅表示逻辑判断,结果为true或false

boolean:

字符型:   char:占两个字节

  gbk(中文编码表)

gb2312(gbk升级版)

big-5大五码(繁写字码)

utf-8:一个中文对应三个字节

iso-8859-1:拉丁文名码表(考虑都是英文) JS:日本系统码表

 

引用数据类型:

数组(基本类型,引用类型),类(具体类,抽象类),接口

int [ ]  arr

String [ ] args

 

定义变量的注意事项:

1)目前来说:我们定义的“局部变量”

在方法定义在或者方法什么上的变量

2)

a)先定义,在使用前取赋值

如果没有报错,系统“可能尚未初始化变量”

b)  直接给变量初始化

3)Java是强类型语言,不能重复定义变量

4)定义变量:推荐格式:一行定义一个变量

也可以一行定义多个变量

 

Java中的隐式类型转换:默认类型替身;

byte,short,char三者之间不转换,一旦参与运算,先提升为Intl类型’

基本数据类型,除了boolean不参与运算!

其它变量在运型运算的时候,需要保持数据类型一致!

 

Java中的强制类型转换:

目标类型  变量名 = (目标类型)(初始化值)

强制类型:不仅适用于基本类型,也适用于引用类型

没有特别要求不适用,因为造成数据的精度损失!

 

 

运算符:

赋值运算符:=

 

扩展的赋值运算符: +=, /  -=,  /  *=,  /  /=, %=

 

算术运算符:+, -, *, /, %

 

拓展的算术运算符:++,  --

场景:统计 /  循环语句中使用

举例:水仙花:100~999之间

++ / --   单独使用:在前在后结果一样

++ / --   参与运算:在前先自加或自减后再参与运算

在后先参与运算后再自加或自减

 

 

比较(关系)运算符:<,  >,  >=,  <=,  ==,  !=

 

逻辑运算符:   & :逻辑单与:全true为true,有false为false

| : 逻辑单或: 全false为false,有true为true

^ :  逻辑异或:相同false,不同为true    应用:性别

! :   逻辑非:  取相反结果        应用:登录,非用户名提示输入错误或未注册

应用场景:

当某种条件不满足:

String的equals()方法:判断两个字符串内容是否相同

== :基本数据类型进行比较(数据值)

!“admin” .equals (“eric”): Java提供的方法

 

扩展的逻辑运算符

&&:逻辑双与:

与逻辑单与&的区别:

共同点:当多个条件,有false则false,并且关系;

不同点:逻辑单与&,无论符号左边是否成立,右边都执行;

    逻辑双与&&,具有短路效果,符号左边不成立,右边不执行;

  逻辑性更强

| | : 逻辑双或:

与逻辑单或|的区别:

共同点:当多个条件,有true则true,或关系;

不同点:逻辑单或| ,无论符号左边是否成立,右边都执行;

    逻辑双或||,具有短路效果,符号左边成立,右边不执行;

  逻辑性更强

 

 

位运算符:针对具体的数据值进行运算

位与& : 有0则0;

位或 |  :   有1则1;

位异或^:  相同为0,不同则为1;

反码~   :0变1,1变0,不分符号位;

<<左移

>>右移  

>>>无符号位移

 

 

三目(三元)运算符:

表达式:(表达式) ?值1 (true) :值2 (false)

执行流程:

1)首先判断表达式是否成立

2)如果成立,执行成立的结构

3)如果不成立,就执行false的结果

 

与if的区别:三元运算符是针对变量值进行操作,

  if  else  :范围比三元运算符大,能使用if  else语句但不一定能用三元;

  但能用三元运算符的,一定能使用if else语句;

 

 

键盘录入数据

1)导包

2)创建文本扫描器对象

3)提示并录入数据

4)接收并使用数据(根据具体需求)

     注意:录入的数据类型与接受的数据类型要一致;

其中关于int与String的先后顺序,先String后int无问题

但先int后String会出现问题,原因“空格”算一个字符;

解决方式两种:1)int在前时,在String录入前再次建立一个扫描器;

2)     用String b = sc.next(); 来接收数据

 

流程控制语句

三大类:

顺序结构语句:(最基本的语句)

代码从上而下依次加载(源顺序)

选择结构语句

if语句(三种模式:开发中:第二种格式)

第一种格式:针对单个条件进行判断

if(表达式){

语句

}

执行流程:首先判断表达式是否成立

如果成立,则执行语句;

如果不成立,不会执行!

注意事项:if后面不能有分号;

里面是单条语句,可以省略{ },但不建议省略;

 

第二种格式:针对两个条件进行判断:if else

  if(表达式){

语句1

  }else{

语句2

  }

执行流程:首先判断表达式是否成立;

如果成立,执行语句1;

如果不成立,执行语句2;

 

第三种格式:针对多个条件进行判断:if else

  if(表达式){

语句1

  }else if{

语句2

  }else{

语句3

  }

执行流程:首先判断表达式是否成立;

如果成立,执行语句1;

如果不成立,执行语句2;

再不成立,执行语句3…….

 

 

switch语句

格式:switch(表达式){

  case 值1:

语句1;

break;

  case 值2:

语句2;

break;

  case 值3:

语句3

break;

}

 

 

执行流程:

首先表达式接收一个值

然后和case语句值1比较,如果成立,执行语句1,break结束switch;

如果与值1不匹配,则判断和值2是否匹配,匹配成功,执行语句2,break结束;

如果与值2不匹配,继续判断和值3是否匹配,匹配成功,执行语句3  …….

 

注意事项:

1)case语句的后面只能是一个常量;

2)break语句(结束,中断):不要轻易省略掉,会造成case穿透现象,若没有终止, 会一直执行后续程序;

3)Switch语句的结束条件: a) break语句结束; b) 执行到末位;

4)default语句可以在switch语句中的任何位置,不影响执行流程;

当前case后面的都匹配,执行default语句

如果default语句在语句中的话,break语句不能省略;

如果default语句在switch末位的话,break语句是可以省略;

 

循环结构语句

for(使用居多):普通for循环

循环格式:

for(1初始化语句;2条件语句;4步长语句(控制体语句)){

3循环体语句;

}

流程:

1)初始化语句给当前循环中的变量赋值:执行一次;

2)接下来执行条件语句,判断条件语句是否成立;

3)  如果条件语句结果成立:true,执行3)循环体语句

4)执行控制体语句++/--;

5)继续去判断条件语句是否成立;

6)成立则继续执行循环体语句…..

7)当条件语句不成立,for循环结束;

 

for循环嵌套:

for(初始化语句,条件表达式1;控制体语句1){

for(初始化语句2;条件表达式;控制体语句2){

}

}

内层循环作为外层的循环体语句!

流程:

初始化

 

while(其次while)

初始化语句;

while(条件表达式){

循环体语句;

控制体语句;

}

 

执行流程:

初始化语句:给变量赋值

当前条件表达式成立,执行循环体语句;

继续控制体语句,再次执行条件表达式;

。。。。。。。

当条件表达式不成立时,结束循环;

 

 

 

do-while循环语句格式

初始化语句;

do{

循环体语句;

控制体语句;

}while(条件表达式);

 

 

应用场景:开发中很少用,源码中会有;

与for , while 的区别,就算条件表达式不成立,循环体语句至少会执行一次;

 

 

for循环和while循环的最大区别:

1)应用场景区别:是否明确循环次数,明确用for,不明确用while;

2)格式---(内存角度) for优于while

for循环结束之后,不能够访问到for循环中的变量;

循环结束后,变量(内存中变量,临时变量)就回收了

while循环:由于存在初始化语句是在while在外面定义的;

所以当while结束后,能够访问到while循环中的变量

 

死循环:就是循环语句没有结束条件!条件表打式----恒成立

推荐使用while;

 

跳转控制的语句

三种

break; 中断,结束的语句,不能单独使用,只能在switch语句和循环中使用;

循环语句(looper)或者switch语句中使用

 

continue :

结束当前循环,进入下一个循环;

不能单独使用,只能在循环中使用;

 

return: 也属于跳转控制语句;结束方法的;

需要结合有具体返回值类型的使用;很少单独使用;

 

Java中的方法

1)有返回值类型的方法的定义与使用

 

什么是方法(函数):将某一个业务逻辑使用{ }包起来,然后起名字---->符合“方法定义规则”

Java语言中:如何定义一个方法:

有具体返回值类型的方法定义

格式:固定写法:

public static 返回值类型  方法名称(形式参数类型1  变量名1,  形式参数类型

2;  变量名2……..)

需要通过业务逻辑

return  结果数据

 

有返回值类型的方法定义解释说明:

public: 公共的,公开的 ,  权限修饰符

static: 静态的

返回值类型:数据类型

方法名称:符合“标识符”的规则,小驼峰

形式参数列表:

形式参数类型1   变量名1 ,形式参数类型   变量名2……

形式参数类型:数据类型

变量名:符合“标识符”规则,小驼峰

方法体中{ }---->携带一个关键字return,结束当前这个方法并且有一个结果;

 

注意事项:

有返回值类型的方法的调用

单独调用:没有意义:在功能模块中,有返回值类型业的方法:业务,返回结果!

在调用者位置输出---main方法中调用这个方法;

输出调佣:可以用:不建议,相同获取的结果数据在进行操作,无法操作!

赋值调用:主推荐

 

定义方法的注意事项:

1)方法与方法是平级关系,只能调用,不能嵌套;

2)定义方法需要明确:a.明确返回值类型;b.明确参数类型及参数个数;

3)  方法的形式参数必须携带数据类型,否则报错(Java是强类型语言);

4)返回结果类型需要和最终的接受结果类型一致;

保证方法中的类型一致;

保证:接受的结果类型与返回的数类型一致

 

2)没有返回值类型的方法的定义与使用

固定格式:

public static 返回值类型  方法名 (形式参数1  变量名1,形式类型2  变量2){

业务

获取结果

}

解释说明:public static  固定写法

void : 关键字

Java中规定:针对没有具体返回值的结果的时候,但是方法中必须“返回值类型”

void 代替“返回值类型”,满足格式要求;

 

两个明确:

明确返回值类型:如果没有结果:void代替;

明确参数类型及参数个数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值