云栖社区专家系列课——Java必修课第三讲

简介: Java必须课是零基础Java学习者的入门课程,涵盖了Java初学者应该掌握的所有核心知识,由最课程创始人、微软MVP陆敏枝主讲。本节课陆老师从概念和代码示例(计算器)两方面着重讲解了Java中变量、API文档、输入输出和运算符四方面基础知识。

Java必须课是零基础Java学习者的入门课程,涵盖了Java初学者应该掌握的所有核心知识,由最课程创始人、微软MVP陆敏枝主讲。本节课陆老师从概念和代码示例(计算器)两方面着重讲解了Java中变量、API文档、输入输出和运算符四方面基础知识。


课程基本信息

开课时间:每周四下午:1400-1530

主讲人:云栖社区专家,陆敏枝

直播视频链接:

http://cloud.video.taobao.com/play/u/3586076219/p/1/e/6/t/1/50174010455.mp4

欢迎下载或在线观看

本课程重点内容:

本次课程在上一讲的基础上,着重讲解Java中变量、API文档、输入输出和运算符四部分。

一、变量

变量部分主要讲解了变量的简述、变量的使用方法、变量类型。

1、变量简述:初学者可以这么理解变量:如果说类和方法是用来存放逻辑的容器,那么变量则是用来放数据的容器(不完全正确);实际上变量是内存中地址的引用(后续课程会讲解)。

2、变量使用:

1)变量可以是任意数据类型,包括IntBooleanStringchar等;

2)变量声明:可以同时声明单个或多个变量:int a =5 \ int d,e,r=5

3)变量初始化:变量在使用前需要初始化,变量的初始化有两种方式,一种是声明变量的同时就进行了初始化,如int a=5;另一种是声明变量时不初始化,在使用之前进行初始化,如int a;a=5

3、变量类型:

(1)局部变量:为方法内部的变量,在方法内部或者代码块中声明,只允许被当前方法所使用;

(2)参数变量:方法声明中的变量,方法用于传递信息的参数变量;

(3)类变量:方法外部的变量(类的内部),必须在类体中声明,并且用static关键字修饰,也称为静态变量,类内部的多个方法均可调用该变量;

(4)实例变量,在类体中声明但不使用static修饰,也称为非静态变量(在面向对象时,再具体学习)。

课后作业:定义所有基本类型的变量

二、输入输出简介

在本次课程中,我们通过加法计算器的实现方法,讲解了键盘获取用户输入的Scanner类、标准输入流System.in、标准输出流输System.out的概念和具体使用方法。

1)加法计算器代码:

public class MathTester{
public static void mian(String[] args){
System.out.printIn(“请输入第一个参数:”);
//借助JDK的帮助来获取用户的输入
java.util.Scanner scanner=new java.util.Scanner(System in);
int a = scanner.nextInt();\\获取键盘上的一个值,并赋值给变量a
System.out.printIn(“您输入的第一个值为:”+a);
 
System.out.printIn(“请输入第二个参数:”);
int b = scanner.nextInt();
System.out.printIn(“您输入的第二个值为:”+b);
 
int theResult=add(a,b);
System.out.printIn(“Result=”+theResult); #输出函数
}
public static int add(int a,int b){
int re=a+b;
return re;
}
}

Scanner:java.util.Scanner 表明有一个类叫Scanner,它在JDK的路径java.util下。Scanner是一个引用类型的类,,是jdk里默认提供给用户的一个类型。

java.util.Scanner scanner=new java.util.Scanner(System in);

int a = scanner.nextInt();\\获取键盘上的一个值,并赋值给变量a

当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象,并将该对象传递给了scanner局部变量;在new Scanner时,给它传递了一个构造参数System.in,这样scanner就知道自己要去控制台获取参数。如果要获取输入的内容,则只需要调用ScannernextInt()方法即可,其中scanner.nextInt()scanner的内置方法,用于获取键盘上输入的一个整数值,其他内置方法有:

·nextByte(); 读取一个byte类型的整数。

·nextShort(); 读取一个short类型的整数。

·nextInt(); 读取一个int类型的整数。

·nextLong(); 读取一个long类型的整数。

·nextFloat(); 读取一个float类型的整数。

·nextDouble(); 读取一个double类型的整数。

·next(); 读取一个字符串,该字符在一个空白符之前结束。

·nextLine(); 读取一行文本(即以按下enter键为结束标志)。

2)输入输出流

Java中,使用System.out表示标准输出设备,使用System.in表示标准输入设备。默认情况下,输出设备是现实器,输入设备是键盘:

·System.in:标准输入流,用于接受控制台输入;

·System.out:标准输出流,用户输出控制台信息。

为完成控制台输出,只需要使用println方法就可以在控制台上现实基本值或字符串。Java并不直接支持控制台输入,可以使用Scanner类创建它的对象,用以读取来自System.in的输入。

三、API文档

当初学者初次接入某个公共类时,如Scanner,不清楚其用法及其内置函数时,该怎么办呢?此时,API文档就发挥其作用。

API,全称为application programming interface的缩写,中文称为应用程序编程接口。初学者可以将其理解为前人已经编写好,供调用的类和方法。例如,在输入中使用的Scanner类,打开API文档后,可以通过关键字Scanner直接搜索到这个类的介绍页面,当然也可以通过包名一层层找下去,直到找到这个类,如下图。

161d55223ed2de84766e529badc4ee837f73b1f2 

Java API文档提供了很多官方的介绍和类、方法、变量的解释。一般很系统,涉及所有的方面,如果开发人员对正在使用的类不熟悉,想查看类里面的变量或者方法,就可以打开JavaAPI文档进行阅读和查看,初学者可以借助示例代码加强对API的讲解。

课堂练习:

通过在API中查询Date类的使用方法,查询并输出当前日期:

import java.util.Date // java.util.Date date = new  java.util.Date()
public class APITester{
public static void mian(String[] args){
Date date=new Date();
System.out.printIn(date.toString());
}
}

其中import java.util.Date 语句是在程序中使用时简写Date类;如不引用,则上述代码line 4应为: java.util.Date date = new  java.util.Date();

四、运算符

Java中包括四种运算符:

①算数运算符(9):‘+’(加),‘-’(减),‘*’,‘/’,‘%’,‘++ ’,‘--’,‘+’(正),‘-’(负)

②关系运算符(6):== =  > >= < <=

③逻辑运算符(6):&& || ^ & |

④位运算符(7):&| ~ ^ >> << >>>

1、算数运算符:其操作数必须是数值类型,又分为一元运算符和二元运算符,一元运算符,只有一个操作数;二元运算符有两个操作数,运算符在两个操作数之间.

①一元运算符:正‘+’,负‘-’,自加‘++’,自减‘--’,本次课程着重讲解了a++++a的区别:

++a\--a:用于数值变量之前,在赋值操作中,先对被“++”或“--”操作变量值先加1或者先减一,然后在进行其他的操作(先自加\减,再赋值);

a++\a--:用于数值变量之后,在赋值操作中,先用被“++”或“--”的操作变量值进行其他操作,然后再对其值加1或减1(先赋值,再自加\减)。

一元运算符代码示例:

public class OperatorTester{
public static void mian(String[] args){
Int a=5;
Int b=2;
b=+a;
System.out.printIn(“a=”+a + “\t b=”+b);//\t是一个占位符,表示这里要空一个制表单位
Int c;
c=-a
System.out.printIn(“a=”+a + “\t c=” + c);//\t是一个占位符,表示这里要空一个制表单位
Int d;
d=++a; //先a=a+1,再d=a
System.out.printIn(“a=”+a + “\t d=”+d);
Int e;
e=a++;//先e=a,再a=a+1
System.out.printIn(“a=”+a + “\t e=”+e);
Int f;
f=--a;//先a=a-1,再f=a
System.out.printIn(“a=”+a + “\t f=”+f);
Int g;
g=a--;//先g=a,再a=a-1
System.out.printIn(“a=”+a + “\t g=”+g);
}
}

输出结果是:a=5    b=5

a=5    c=-5

a=6    d=6

a=7    e=6

a=6    f=6

a=5    g=6

②二元运算符:‘+’,‘-’,‘*’,‘/’,‘%’,在二元运算符中,乘、除、取余优先级高于加、减法。当二元运算符操作的两个数据类型不一样时,结果值随精度大的那一个。

在本次课程,还涉及到变量强制转型,不同精度数运算等知识点。

二元运算符代码示例:

public class OperatorTester{
public static void m2(){
int a=3;
int b=2;
System.out.printIn(“加法,3+2” +( a + b));
System.out.printIn(“减法,3+2” +( a - b));
System.out.printIn(“乘法,3+2” + a * b);
System.out.printIn(“除法,3+2” + a / b);
System.out.printIn(“求余,3+2” + a % b);
//高精度数和低精度数运算时,结果值为高精度类型存储
float c= 5.17f
System.out.printIn(“单精度 加整数,5.17+3=” +(c+a));//输出为8.17
System.out.printIn(“单精度 除整数,5.17/3=” +(c/a));
}

上一讲回顾

上一讲课我们主要讲解了Java JDK的下载、安装以及JDKJREJVM的概念;讲解了编写Java程序的基础知识点,其中着重讲解了关键字、标识符以及数据类型,并编写了第一个Java程序——Hello World


课程介绍

本套课程是零基础Java学习者的入门课程,涵盖了Java初学者应该掌握的所有核心知识,并由最课程创始人、微软MVP陆敏枝主讲。课程内容包括了基本语法、运算符、流程控制、面向对象、Java APIIO流、多线程、反射与代理。旨在通过本次课程,在对Java这门编程语言有初步的了解的基础上为后续学习高级课程打下坚实的基础。

相关文章
|
4月前
|
设计模式 运维 并行计算
GitHub上的677页Java性能优化笔记火了!竟是阿里调优专家肝出的
Java是目前应用最为广泛的软件开发平台之一。随着Java及Java社区的不断壮大,Java早已不再是一门简单的计算机语言了,它更是一个平台、一种文化、一个社区。
|
Java
《阿里特邀专家关键:Java无锁集合代码分析》电子版地址
阿里特邀专家关键:Java无锁集合代码分析
63 0
《阿里特邀专家关键:Java无锁集合代码分析》电子版地址
|
Java Docker 容器
《阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库》电子版地址
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库
207 0
《阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库》电子版地址
|
Java Spring
《云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧》电子版地址
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧
98 0
《云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧》电子版地址
|
人工智能 架构师 前端开发
清华大牛带领20位大厂专家耗时三年整理出这份2000页Java进阶指南
自我介绍: 马士兵教育: 由马士兵老师携手BATJ名师为大家提供java架构师培训,人工智能培训,大数据培训,软件测试培训,Web前端培训,区块链培训等课程,课程均由一线互联网公司技术大牛精心研发,全程项目式教学!
|
机器学习/深度学习 分布式计算 Cloud Native
Java 程序员可以学习的技术方向,精通任何一个都可以成为专家
Hello 大家好,相信大家跟阿粉一样,在成为卓越的Java 程序员的路上从未停止过学习,作为一个 Java 程序员还有很多我们需要学习的东西,特别是在这样一个技术快速发展的时期可能昨天还在流行的技术,转眼就已经落后了。那么在 2021 年已经接近尾声的时候有哪些技术我们可以继续不断的学习呢?
Java 程序员可以学习的技术方向,精通任何一个都可以成为专家
|
Java
华为技术专家深度解析Java线程状态(下)
华为技术专家深度解析Java线程状态
91 0
华为技术专家深度解析Java线程状态(下)
|
Java 调度
华为技术专家深度解析Java线程状态(上)
华为技术专家深度解析Java线程状态
94 0
华为技术专家深度解析Java线程状态(上)
|
NoSQL 安全 网络协议
阿里华为技术专家教你如何实现一个Java连接池?(下)
阿里华为技术专家教你如何实现一个Java连接池?
82 0
阿里华为技术专家教你如何实现一个Java连接池?(下)
|
安全 网络协议 NoSQL
阿里华为技术专家教你如何实现一个Java连接池?(上)
阿里华为技术专家教你如何实现一个Java连接池?
218 0
阿里华为技术专家教你如何实现一个Java连接池?(上)