1、Day01_java语言基础课程
1.什么是java语言
Java 语言
语言:人与人交流沟通的表达方式。
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言。
Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言。
Java之父:詹姆斯高斯林(James Gosling)。
所谓编程语言就是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
Java 语言的三个版本
·Java SE
·Java ME
·Java EE
Java SE
Java SE:Java语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。(基础班学的就是这个Java SE)
桌面应用:用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验。
学习JavaSE的目的:为今后要从事的JavaEE开发,打基础。
Java ME
Java ME:Java 语言的(小型版),用于嵌入式消费类电子设备
注:课程当中不会学到,因为市面上不再招聘java ME的招聘人员,现在开发出来的Java ME程序已经被安卓和ios取代了。
Java EE
JavaEE:Java语言的(企业版),用于Web方向的网站开发。
网页:通过浏览器将数据展示在用户面前,跟后台服务器没有交互
网站:通过跟后台服务器的交互,将查询到的真实数据再通过网页展示出来。
简单理解:网站=网页+后台服务器
网页:
网站:
2.Java语言的跨平台
平台与跨平台
平台:指的是操作系统。
·Windows
·Mac
·Linux
跨平台:Java程序可以在任意操作系统上运行。
总结:在不同的操作系统中,都安装一个与操作系统对应的Java虚拟机(VM Java Virtual Machine)即可。
分析:JVM本身是否可以跨平台?
答:JVM虚拟机本身不允许跨平台,允许跨平台的是Java程序
3.二进制
人们生活采用十进制数,而计算机中全部采用二进制数表示,
计算机只包含0、1两个数,逢二进一(十进制是逢十进一),1+1=10。每一个0或者每一个1,叫做一个bit(比特)。
①使用电脑计算器计算
点击桌面开始一输入jsq打开计算器一选择程序员
HEX:16进制
DEC:10进制
OCT:8进制
BIN:二进制
4.字节
字节是我们常见的计算机中最小存储单元。计算机存储任何的数据,都是以字节的形式存储。
位(bit):一个数字0或者一个数字1,代表一位
学节(Byte):每逢8位是一个字节,这是数据存储的最小单位。
1 Byte=8 bit
1 KB=1024 Byte
1 MB=1024 KB
1 GB=1024 MB
1 TB=1024 GB
1 PB=1024 TB
1 EB=1024 PB
1 ZB=1024 EB
5.DOS命令提示符Cmd
为什么要学习DOS命令提示符?
目的:为了能够使用JDK,bin目录中的(javac.exe)编译和(java.exe)运行工具。
结论:JDK提供的编译和运行工具,并不是双击运行去使用的。
正确使用方式:在DOS中通过指令去运行。
如何打开DOS命令提示符?
按下Win+R,在运行输入框中,输入cmd,敲回车。
问题原因:javac.exe存放于D盘的JDK安装目录,而当前却在C盘中进行访问,没有找到。
DOS常用命令:
启动cmd: Win+R 输入cmd回车
切换盘符盘 : 盘符名称:
进入文件夹:cd 文件夹名称
补全文件名或切换文件名:TAB
进入多级文件夹: cd 文件夹1\文件夹2\ 文件夹3
返回上一级 :cd …
直接回根路径 :cd/
查看当前内容: dir
清屏:cls
退出: exit
切换输入过的命令: ↑或者↓
注:运行程序时后续名.exe可以不用输入
6.path环境变量的配置
为什么要配置Path 环境变量?
如果不配置path环境变量,
弊端:只能在bin目录下才能使用java和java工具,今后的代码都放在bin目录下不便于管理
作用:能够在任意目录(文件夹路径)下,都能访问到bin目录中的javac和java工具
7.代码编写、编译与运行
Java 程序开发的三个步骤:
编写代码、编译代码、运行代码。
JRE、JDK、JVM的作用
1.编写代码的过程中,需要使用JRE中Java已经写好的代码。
2.编译代码的过程中,需要使用JDK中的翻译工具。
3.运行代码的过程中,需要使用JDK中的运行工具。
4.代码需要运行在JVM当中。
①代码编写
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Helllo,World!");
}
}
编写代码时:
TAB键:比空格键更大的空格
注:保存时,文件后缀名一定是.java
文件名要对应代码第一句的Hello World,单词首字母都要大写!
②javac编译、java运行:
目的是把之前编写好Hello World.java文件编译(javac)成字节码文件Hello World.class。然后把class文件(java)运行。
首先要在cmd当中把目录改为java文件所在的目录。
用javac编译,然后目录下会多出后缀名为.class的字节码文件
最后打上java HelloWorld运行(不用输入后缀名.class),成功输出结果Hello,World!
注意:如果更改了java里的内容 需要再度编译再运行才能显示修改后的内容。因为再编译能把原来的class覆盖掉,再运行就是修改后的内容了。如此类推
HelloWorld案例的代码详解
public:起到一个限制的作用,限制创建的类名称和文件名是一定要保持一致的。(如果不对应运行时会出错)
class:创建或者说定义一个类。类其实是个称呼而已。我们可以说是一个java程序(类)
Helloworld:类的名称(自己定,但要和文件的名字相一致。)
main方法:也称为主方法。相当于运行时的一个入口点(如果只有class没有main,相当于只有一栋大楼没有入口)
HelloWorld案例常见问题
Bug介绍
Bug是一个英文单词,中文意思是指【昆虫、小虫、损坏、缺陷等意思】
现在一般是指在程序中,出现的缺陷或问题,简称程序漏洞。
Bug的解决
①具备识别BUG的能力多看
②具备分析BUG的能力多思考,多查阅资料
③具备解决BUG的能力多尝试,多总结
8.Notepad++安装与使用
Notepad++一定要设置-首选项-新建-选择java和ansi
蓝色为已保存,红色为未保存。
9.单行注释和多行注释
注释概念
·注释是在程序指定位置添加的说明性信息
·简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码
注释分类
·单行注释
格式:// 注释信息
·多行注释
格式:/* 注释信息 /
·文档注释
格式:/ 注释信息/
文档注释自前用不上,暂不讲解。
// 单行注释:(注:单行注释不一定要占用整行,可以在代码后面添加单行注释)
/* */ 多行注释:无论里面占用多少行,只要在这范围内都算多行注释。另外就算没有换行,也照样是多行注释(区块注释)
注释的注意事项
注释内容不会参与编译和运行
//第一行的第三个单词必须和所在的文件名称完全一样,大小写也要一样。
/*public class后面代表定义一个类的名称。
类是Java当中所有源代码的基本组织单位。
HelloWorld就是类。后面跟着{}里内容就是类的源代码。*/
public class HelloWorld {
/*第二行的内容是万年不变的固定写法。
代表main方法。这一行代表程序执行的起点*/
public static void main (String[] args){
//第三行代表打印输出语句(其实就是屏幕显示)
//需要显示什么东西,就在小括号里写上什么内容
System.out.println("Helllo,World!");
}
}
10.关键字的概念与特征
关键字是当中有特殊含义的、被保留的、不能随意使用的字符。
关键字的特点:
1.完全小写的字母。
2.在增强版的记事本当中(例如Notepad++)有特殊颜色。
例如:public class
public static void
main String args这些就不是关键字
11.标识符
标识符概述
标识符:就是给类,方法,变量等起名字的符号。(一切自己起的名字都叫标识符。)
HelloWorld案例中,出现的标识符有类名字HelloWorld。
标识符定义规则
·由数字、字母、下划线(_)和美元符($)组成
·不能以数字开头
·不能是关键字
·区分大小写
以下红色字体不符合定义规则:
命名规范:软性建议
。类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
。变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
。方法名规范:同变量名。
12.常量
常量概念
常量:在程序的执行过程中,其值不会发生改变的量(数据)
①字符串常量:凡是用双引号引起来的部分,叫做字符串常量。
例如:例如:“abc”、“Hello”、“123”
②整数(整形)常量:所有整数。
例如:180、200、0、-250
③浮点数常量:所有小数。
例如:2.5、-3.14、0.0
④字符常量:凡是用单引号引起来的有且只有的单个字符,(不能留空,也不能两个字符以上)就做字符常量。
例如:‘A’、‘b’、’9’、’中’
⑤布尔常量:只有两种取值。true、false(布尔常量单独打印没有意义,为了后面要学习的运算符,打基础)
例如:System.out.println(5 > 10); //输出值为false
⑥空常量:null。代表没有任何数据。(空常量不能进行打印输出!)
public class Demo01Const{} const就是常量的意思。
public class Demo0lConst{
public static void main(String[]args){
//字符串常量
System.out.println("ABC");
system.out.println(" ");//字符串两个双引号中间的内容可以为空
System.out.println("XYZ");
//整数常量
System.out.println(30);
System.out.println(-500);
//浮点数常量(小数)
System.out.println(3.14);
System.out.println(-2.5);
//字符常量
System.out.println('A');
System.out.println('6');
//System.out.println(' ');
//两个单引号中间必须有且仅有一个字符,没有不行。
//System.out.print1n('AB');
//两个单引号中间必须有且仅有一个字符,有两个不行。
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量。空常量不能直接用来打印输息。
//System.out.println(null);
}
}
13.变量的概念与定义格式
怎样定义变量
创建一个变量并且使用的格式:
数据类型 变量名称://创建了一个变量
变量名称 = 数据值;//赋值,将右边的数据值,赋值交给左边的变量
一步到位的格式:
数据类型 变量名称 = 数据值;//在创建一个变量的同时,立刻放入指定的数据值
数据类型:
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
①基本数据类型
整数型 byte < short < int < Long
浮点型 float double
字符型 char
布尔型 boolean
②引用数据类型
字符串、数组、类、接口、Lambda
注意事项:
1.字符串不是基本类型,而是引用类型。
2.浮点型可能只是一个近似值,并非精确的值。
3.数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。
4.浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀。
14.变量的基本使用
public class Demo02Variable {
public static void main(String[] args) {
//创建一个变量
//格式:数据类型 变量名称;
int num1;
//向变量当中存入一个数据
//格式:变量名称=数据值;
num1 = 10;
//当打印输出变量名称的时候,显示出来的是变量的内容
System.out.println(num1);//10
//改变变量当中本来的数字,变成新的数字
num1 = 20;
System.out.println(num1);//20
//使用一步到位的格式来定义变量
//格式:数据类型变量名称=数据值;
int num2 = 25;
System.out.println(num2);//25
num2 = 35;
System.out.println(num2);//35
System.out.println("===============");
}
}
public class Demo02Variable{
public static void main(String[]args){
byte num3 = 30;//注意:右侧数值的范围不能超过左侧数据类型的取值范围
System.out.println(num3);//30
//byte num4 =400;//右侧超出了byte数据范围,错误!
short num5 = 50;
System.out.println(num5);//50
long num6 = 3000000000L;
//当一定要使用long类型时,一定要在赋值后面加上大写L
System.out.println(num6);//3000000000
float num7 = 2.5F;
//当一定要使用float类型时,一定要在赋值后面加上大写F
System.out.println(num7);//2.5
double num8 = 1.2;
System.out.println(num8);//1.2
char ziful = 'A';
System.out.println(zifu1);//A
ziful = '中';
System.out.println(zifu1);//中
boolean var1 = true;
System.out.println(var1);//true
var1 = false;
System.out.println(var1);//false
//将一个变量的数据内容,赋值交给另一个变量
//右侧的变量名称var1已经存在,里面装的是false布尔值
//将右侧变量里面的false值,向左交给var2变量进行存储
boolean var2 = var1;
System.out.println(var2);//false
}
}
15.变量使用的注意问题
变量的注意事项
1、变量名不允许重复定义,但可以在已有变量进行使用。
2、一条语句可以定义多个变量,但需要使用逗号进行分割。但是一般情况不推荐这么写。(一条语句:java当中使用分号作为一条语句的结束。)
3、变量在使用之前一定要进行赋值
4、对于float和long类型来说,字母后缀F和L不要丢掉。
5、如果使用byte或者short类型的变量,那么右侧的数据值不能超过
左侧类型的范围。
6.没有进行赋值的变量,不能直接使用;一定要赋值之后,才能使用。
7、变量的作用域范围
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
public class Demo1{
//1.变量名不允许重复定义
public static void main(String[]args){
int a=10;
//int a=20;//错误代码,不允许重复定义
a = 20;//正确代码,属于已有变量的使用
System.out.println(a);
}
}
public class Demo2 {
//2.一条语句可以定义多个变量,但需要使用逗号进行分割一条语句:java当中使用分号作为一条语句的结束.
public static void main(String[] args) {
//一条语句可以定义多个变量,但需要使用逗号进行分割
//int a=10,int b=20,int c=30;//错误语句,不能一条语句多次定义
int a = 10, b = 20, c = 30;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
public class Demo3 {
/*
3.变量在使用之前一定要进行赋值
*/
public static void main(String[] args) {
//int a;//错误语句 没有赋值
int a = 10;
System.out.println(a);
}
}
public class Demo4 {
//4.定义float和long变量的注意事项
//定义float类型变量的时候:需要在数值后面加入F的标识,可以大写也可以小写.
//定义long类型变量的时候:需要在数值后面加入工的标识,L可以大写也可以小写但是,建议大写
public static void main(string[] args) {
//定义float类型变量的时候:需要在数值后面加入F的标识,F可以大写也可以小写。
float a = 12.3F;
//定义long类型变量的时候:需要在数值后面加入的标识,工可以大写也可以小写
long b = 1000L;
System.out.println(a);
System.out.println(b);
}
}
public class Demo5 {
//5.变量的作用城范围
//变量的作用域:只在它所在的大括号中有效
public static void main(String[] args) {
int a = 10;
System.out.println(a);
int b = 20;
}
//当这个大括中的代码执行完毕后,内部所[定义]的变量就会从内存中消失
System.out.println(b);
}
}
public class Demo03VariableNotice{
public static void main(String[]args){
int num1 = 10;//创建了一个新的变量,名叫num1
//int num1 =20;//又创建了另一个新的变量,名字也叫num1,错误!
//下面是正确的,你可以赋值,但不可以再定义同一个变量或更改为另一个数据类型
num1 = 50;
int num2 = 20;
int num3;
num3 = 30;
int num4;//定义了一个变量,但是没有进行赋值
//system.out.println(num4);//直接使用打印输出就是错误的!
//system.out.print1n(num5);//在创建变量之前,不能使用这个变量
int num5 = 500;
System.out.println(num5);//500
int num6 = 60;
System.out.println(num6);//60
}
//int num6=60;
System.out.println(num6);
//已经超出了大括号的范围,超出了作用域,变量不能再使用了
//同时创建了三个全部是int类型的变量
int a, b, c;
//各自分别赋值
a = 10;
b = 20;
c = 30;
System.out.println(a);//10
System.out.println(b);//20
System.out.println(c);//30
//同时创建三个int变量,并且同时各自赋值
int x = 100, y = 200, z = 300;
System.out.println(x);//100
System.out.println(y);//200
System.out.println(z);//300
}
}
16.键盘录入
键盘录入介绍
为什么要有键盘录入?
目的:为了让我们操作的数据,变得更加灵活
举例:int a=10;
这里a虽然是个变量,但记录的值,却是手动写死的。
能不能让a变量记录的值,灵活起来,用户输入什么,a变量就记录什么。
键盘录入实现
import java.util.Scanner;
public class Demo1scanner {
/*
步骤1:导包,需要写在class的上面
import java.util.Scanner;
步骤2:创建对象
Scanner sc=new Scanner(System.in);
只有sc可以改变,其他属于固定格式
步骤3:使用变量接收数据
int i=sc.nextInt();
只有i变量可以改变,其他属于固定格式
*/
public static void main(String[] args) {
//步骤2:创建对象
Scanner sc = new Scanner(System.in);
//步骤3:使用[变量]接收数据
int a = sc.nextInt();
System.out.println(a);
}
}