栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

运算符概述、流程语句加循环学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

运算符概述、流程语句加循环学习

Java8的特性: lambda表达式:

可选类型声明:不需要声明参数类型,编译器可以同意识别参数值

可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号

可选的大括号:如果主题包含了一个语句,就不需要使用大括号

可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回一个数值。、

lambda注意事项:lambda表达式主要用来定义行内执行的方法类型接口。

lambda表达式免去了使用匿名方法的麻烦,并给予Java简单但强大的函数化的编程能力。

方法引用:

可以通过方法的名字来指向一个方法

方法引用可以使语言的构造更加紧凑简洁,减少冗余代码

方法引用四种方式:

构造器引用:语法:Class::new,或者跟一般的Class::new

静态方法引用:语法:Class::static_method

特定类的任意对象的方法引用:语法:Class::method

特定对象的方法引用:语法:instance::method

函数式接口:

有且仅有一个抽象方法,但可以有多个非抽象方法的接口

函数式的接口可以被隐式转化为lambda表达式

默认方法:

默认方法就是接口可以实现方法,而且不需要实现类去实现其他方法

只需要在方法名前面加一个default关键字即可实现默认方法

为了解决接口的修改与现有的实现不兼容的问题

Stream API

新抽象称为流Stream,可以以一种声明的方式处理数据。

Optional类

Optional类是一个null的容器对象,如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象

Optional类的引入可以很好的解决空指针异常

Nashorn,JavaScript引擎

Nashorn完全支持ECMAScript5.1规范以及一些扩展。基于JSP292的新语言特性。可以将JavaScript编译成Java字节码,提升性能2-10倍

Date Time API

旧版的问题很多:非线程安全,设计很差,时区处理麻烦,

Local(本地),Zoend(时区)

JDK与JRE的区别:

JRE面向Java程序的使用者,不是开发者。是运行Java程序所必须环境集合

包含Java虚拟机,Java平台核心类和支持文件,不包含开发工具

JDK:是Java开发工具包,提供Java的开发环境(提供了编译器javac等工具,用于Java文件编译class文件)

和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其得到运行)

JDK是整个Java核心,包含了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库(rt.jat)

java:是一门编程语言,用于解决问题,高效、清楚、实用;与计算机交流

CMD:在windows操作系统中,利用命令行操作计算机的方式

打开步骤:win+R ;输入cmd,回车

常见cmd命令

盘符名称+冒号:切换盘符

dir:查看当前目录下所有的内容

cd 文件名 :进入单级文件夹

cd… :回退单级文件夹

cd文件夹名1文件夹名2:进入多级文件夹cd/ : 回退到根目录

cls:清屏

exit:退出

Javac:将Java文件编译为.class文件,然后用java +文件名:运行文件

配置Path环境变量:可以在任意的目录下打开指定的软件

java三大分类

Java SE(用于桌面应用开发,目的:为后面学习JavaEE打基础)

Java ME(用于嵌入式设备和小型移动设备开发)

Java EE(企业机的服务器开发,在这个领域Java当之无愧)

JVM:虚拟机,是代码真正运行的地方

JRE:包含了JVM和核心类库

JDK:包含了JRE和开发工具 程序员:JDK 使用者:JRE

Java特点

用户量大,适用面广,与时俱进,自身特点(面向对象)

Java的主要特征:安全行,多线程,简单易用,开源,跨平台

注释:内容不会参与编辑和运行,仅仅是对代码的解释说明

不管单行注释还是多行注释,在书写的时候不要嵌套

代码在编译之后,class文件里面没有注释信息,会做一个注释擦除

关键字

被Java赋予了特定含义的英文单词

关键字的字母全部小写,常用的代码编辑器,针对关键字有特殊颜色标记,直观

关键字:assert,const,long,public,final,continue,goto,static,while,strictfp

abstract,default,int,extends,void,boolean,break,throws,volatile,transient,

native,double,import,short,interface,else,super,new,throw,instanceof,

case,enum,package,for,protected,if,try,switch,return,sychronized,

catch,extends,private,byte,float,class,finally,this,char,implements

class关键字表示定义一个类,后面跟随类名;类名后面跟随一对大括号,表示类的范围

public关键字:当public写在class前面的时候,表示强制让文件名跟类名一定要保持一致

没有一致,代码会报错

建议:习惯养成:一个Java文件中,只写一个Java类,

这个是public关键字的第一个作用,第二个作用我们会在面向对象的时候学习

整数类型:不带小数点的数字,

小数类型:带小数点的数字

字符串类型:用双引号括起来的内容

字符类型:用单括号括起来,且内容只能有一个

布尔类型:布尔值,表示真假

空类型:一个特殊的值,空值

变量

在程序的执行过程中,其值有可能发生改变的量(数据)

当某个数据经常发生改变时,我们可以用变量存储,当数据变化时,只用修改变量里面记录的值即可

数据类型 变量名=数据值(数据类型:为空间中存储的数据,加入类型限制)

变量名:为空间起的名字;数据值:存在空间里面的数值;分号:表示语句的结束

变量的使用方式:输出打印,参与计算,修改记录的值

变量注意事项:只能存一个值,变量名不允许重复定义,一条语句可以定义多个变量

变量在使用前一定要赋值,变量的作用域范围

建议:虽然变量的定义和赋值可以分开写,但不建议;

建议在以后写代码的时候,定义变量直接给值

第一次课要求

Java跨平台原理,能说出JDK,JRE,JVM的作用和关系

能运用JDK的下载与安装,配置JDK的环境变量,编写helloworld案例

使用注释,关键字,常量;使用变量编程,使用标识符

Scanner:这个类用于接受键盘输入的数据

运算符:对字面量或者变量进行操作的符号

表达式:用运算符把字面量或者变量连接起来,符合Java语法的式子成为表达式

算术运算符:加+、减-、乘*、除/、取模%

加法:数字进行运算是,数据类型不一致不能运算。

类型转化的分类

隐式转化:数据类型不一致,取值范围小的数值会转化成取值大的数值。(自动类型提升)

两种提升规则:取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算;byte,short,char三种类型的数据在运算的时候,都会直接提升为int,然后再进行运算。

强制转化:把取值范围大的数值转化为取值范围小的数值;

格式:目标数据类型 变量名=(目标数据类型)被强转的数据;

字符串相加:加号+出现在字符串的操作时,作为连接符。将前后拼接,并产生一个新的字符串;连续执行+操作时,从左到右逐个执行;

字符的+操作:ASCII码表:0:48,A:65,a:97

找某个字符的ASCII码:加0 char e=‘a’; int f=e+0;

自增自减运算符:++:变量的值加一;–:变量的值减一;可以放在变量的前面和后面;

运算符 赋值运算符:

赋值:= 加后赋值:+= 减后赋值:-= 除后赋值:/=

乘后赋值:*= 取余后赋值:%= (扩展的赋值运算符隐含了强制类型转换)

==与equals的区别:

· “==”是运算符,如果是基本数据类型,则比较****存储的值*;如果是引用数据类型,则比较*所指向对象的地址值****。

· equals是Object的方法,比较的是****所指向的对象的地址值*,一般情况下,重写之后比较的是*对象的值****。

==运算符和 equals() 方法,==运算符是比较两个引用变量是否指向同一个实例,

equals() 方法是比较两个对象的内容是否相等,通常字符串的比较只是关心内容是否相等

关系运算符:

==:相等 !=:不相等 >:大于 >=:大于等于 <:小于 <=:小于等于

注意事项:关系运算符的结果都是boolean类型,要么是true,要么是false

逻辑运算符:

& :逻辑与(并且),两边为真为真 |:逻辑或(或者)两边为假才是假

^:逻辑异或(相同为false,不同为true) !:取反

&&短路与 ||短路或

两者的区别:& 、|无论左边是否成立,右边都会执行

&&:如果左边为false,则不在判断右边的结果

||:如果左边为true,则右边不再判断

三元运算符:

定义一个变量记录量个数值 格式:关系表达式?表达式1:表达式2

int max=(a>b?a:b) 三元运算符:要么使用变量接受,要么直接打印输出

流程语句

顺序结构,判断分支结构,循环1结构

if语句:

执行流程:自上而下

细节:当if语句结构语句体只有一行代码时,可以省略{}不写,但为了阅读性更强,建议加上。

if(关系表达式){}else{} if(关系表达式1){}else if(表达式2){} else{}

Switch语句

1先计算表达式的值 2依次和case后面的值进行比较,如果有对应的值,就返回数据,break结束

break后,跳出循环

case:后面接要跟表达式进行比较的值 break:表示中断

如果匹配一个范围:推荐使用if else if结构;如果匹配针对条件,用switch

while循环

初始化语句;while(条件判断语句){循环体语句;条件控制语句}

控制循环的变量,对while循环来说不属于其循环语句中,while结束后还可以使用

for循环:知道循环次数和范围;while循环:只有条件,不知道循环次数;

do-while循环:无论条件是否成立,都要执行一次循环体代码,就可以使用。

do-while循环

初始化语句;do{循环体语句;条件控制语句}while(条件判断语句);

先执行,再判断

循环高级 无限循环:

循环一直不会停下来

跳转控制语句:

在循环过程中,跳到其他语句上执行;

continue:跳过本次循环,继续执行下次循环

break:结束本次循环,不再执行下面操作。

Random

random再方法生成时,不包含范围的值;

数组

数组时一种容器,可以用来储存同种数据类型的多个值

数组容器再储存数据的时候,需要结合隐式转化考虑

定义数组:数据类型[] 数据名;数据类型 数据名[]

初始化:在内存中,为数组容器开辟空间,并将数据存入容器中的过程

索引:下标,角标;特点:从0开始,逐个+1;连续不间断

数组遍历:将数组的内容取出来的过程

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

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

区别:动态初始化:手动指定数组长度,由系统给出默认初始值
     静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度使用场景:动态初始化:只明确元素个数,不明确具体数值
       静态初始化:需求中已经明确了要操作的具体数据,直接静态初始化即可

数组常见问题:当访问了数组不存在的索引时,会数组越界异常

空指针异常:只是进行了一个null,没有进行new创建

Java内存(扩展)

寄存器:给CPU使用,和开发无关

本地方法栈:JVM在使用操作系统功能的时候使用,和我们开发无关

方法区:储存可以运行的class文件

堆内存:存储对象或者数组,new来创建的,都储存在堆内存中

方法栈:方法运行时使用的内存,比如main方法(压栈)

程序运行结束后,main方法就会弹栈消失

两个数组指向同一个空间:将一个数组的地址赋值给另一个数组

方法

方法是程序中最小的执行单元

方法的使用场景:可以打包使用,用的时候调用;不调用,方法里面的代码就不会执行

方法的作用:提高代码的重复性;提高代码的可维护性

方法的定义和调用

前提:把一些代码打包起来,用到的时候就调用

格式:方法名();

注意:方法必须先定义,都调用,否则报错

带参数方法的定义和调用

单个参数定义:public static void 方法名(参数){}

多个参数定义:public static void 方法名(参数1,参数2,…){}

注意:方法调用时,参数的数量与类型必须与方法定义中小括号里面的遍历一一对应,否则程序报错

形参:形式参数,方法定义中的参数

实参:实际参数,方法调用中的参数

方法的返回值

方法的返回值就是方法运行的最终结果

public static 返回类型 方法名(参数){方法体;return 返回值};、

直接调用:方法名(实参)|没有意义,没得输出

赋值调用:数据类型 变量名=方法名(实参)

输出调用:sout(方法名(实参));

方法重载

概述:在一个类中,定义了多个同名的方法,但每个方法具有不同的参数类型或者参数个数,这些同名的方法,就构成了重载关系。

方法名相同,参数不同的方法,与返回值无关。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号