day01_Java基础

课程目标

1. 【了解】Java语言发展史                          
2. 【理解】Java语言平台版本
3. 【理解】Java语言特点
4. 【理解】JRE与JDK
5. 【掌握】Java开发环境搭建
6. 【掌握】第一个Java程序
7. 【掌握】注释
8. 【理解】关键字/标识符

Java语言概述

Java语言发展史

Java之父:詹姆斯·高斯林(James Gosling)

1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

"小步快跑,快速迭代",每6个月更新一次版本。21版;

LTS:long term support,长期稳定支持版;

8 11 17

Java语言平台版本

JavaSE(Java Platform Standard Edition)标准版

是为开发普通桌面和商务应用程序提供的解决方案 该技术体系是其他,可以完成一些桌面应用程序的开发两者的基础

JavaME(Java Platform Micro Edition)小型版

是为开发电子消费产品和嵌入式设备提供的解决方案,已经被安卓 IOS

JavaEE(Java Platform Enterprise Edition)企业版

是为开发企业环境下的应用程序提供的一套解决方案

Java语言特点

简单性

面向对象

分布式

可移植性(跨平台)

多线程

动态性

**健壮性/鲁邦性 **

安全性

开源

Java跨平台

什么是平台

通过Java语言编写的应用程序在不同的系统平台上都可以运行

跨平台的原理

只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

图解

总结

因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的可移植性。也称为Java具有良好的跨平台性。

JDK、JRE、JVM

  • JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 执行工具(java.exe) 打包工具(jar.exe)等
  • JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
  • JVM(Java Virtual Machine Java虚拟机)
整个java实现跨平台的最核心的部分,保证程序的跨平台性,以及编译执行写好的java程序!

总结

使用JDK开发完成的java程序,交给JRE去运行。由jvm保证跨平台性。

JDK、JRE、JVM 之间的关系

总结

JDK 包含JRE JRE包含JVM ,开发中我们只需要安装JDK即可!

JDK的下载安装

下载JDK

通过官方网站获取JDK http://www.oracle.com

注意:针对不同的操作系统,需要下载对应版本的JDK

安装JDK

傻瓜式安装,下一步即可。但默认的安装路径是在C:\Program Files下,为方便统一管理建议修改安装路径,将与 开发相关的软件都安装到一个目录下,例如:E:\develop。 注意:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。

DOS命令

计算机功能键

tab

shift

alt

空格

enter

window

上下左右

26字母

数字键

删除键

ctrl






快捷键

全选 ctrl + A

复制 ctrl + c

粘贴 ctrl + v

剪切 ctrl + x

撤销 ctrl + z

保存ctrl + s

打开所有磁盘 window + e

最小化当前所有窗口 window +d

切换程序 alt + tab / window + tab

打开运行窗口 window + r



为什么学习DOS命令(disk operation System)

在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令。也为以后学习Linux等其他内容做一些准备!

如何打开DOS命令窗口

打开命令行窗口的方式:

  • win + r 打开运行窗口,输入cmd,回车。
  • 点击win窗口图标,输入cmd,选择命令提示符

常用的DOS命令

D:

盘符切换

dir

查当当前目录

md

创建目录(计算机中只有目录(文件夹)和文件)

rd

删除目录

echo > a.txt

创建文件

del

删除文件

cd

指定进行目录

cd..

退回上一级目录

cd\

退回当前盘符的根目录

cls

清屏

calc

打开计算器

notepad

打开记事本

control

打开控制面版

services.msc

打开服务

exit

退出dos

*环境搭建

配置开发环境

为什么配置环境变量

开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK 的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。

配置步骤

首先右键==【此电脑】---> 选择【属性】---> 点击左侧的【高级系统设置】== ---> 点击==【环境变量】---> 在下方的【系统变量】中点击【新建】==

新建变量名为==【JAVA_HOME】,变量值我们点击【浏览目录】,选择jdk的安装路径jdk1.8.0_121文件夹 然后点击【确定】==

找到path路径中写 %JAVA_HOME%\bin; ,放在最前面,不要忘了加英文的分号

测试开发环境

通过javac和java命令验证 注意 :如果提示 javac不是内部或者外部命令,原因是path配置错误, 重新按照上一步的步骤进行配置即可!

避免C:\WINDOWS\system32出现所有名字以java开头的文件,有,删之; 注意 :jdk不要安装在带中文的路径下,最好也是不包含空格字符的英文路径;

HelloWorld案例

Java程序开发运行流程

开发Java程序,需要三个步骤:

编写源代码

编译源代码 :javac 相当于一个翻译,可以把java文件,翻译成jvm识别的.class文件;

运行源代码 :java.exe,解释了一下.class文件的内容

javac编译: 编译是你java源文件中语法(检查你的语法是否正确)

java运行: 运行是的你编译之后的字节码文件

编写HelloWorld程序

新建文本文档文件,修改名称为HelloWorld.java

用记事本打开HelloWorld.java文件,输写程序内容

class HelloWorld {
	public static void main(String[] args) {
		System.out.println("HelloWorld");
	}
}

HelloWorld案例的编译和运行

编译:javac 文件名.java
范例:javac HelloWorld.java
////////////////////////////////////////////////////////////////////
执行:java 类名
范例:java HelloWorld

HelloWorld常见问题

大小写问题。Java语言对大小写敏感(区分大小写)
非法字符问题。Java中的符号都是英文格式的
在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件
编译命令后的java文件名需要带文件后缀.java
运行命令后的class文件名(类名)不带文件后缀.class

Notepad++软件的安装和使用

为什么要使用Notepad++软件

Notepad++功能比windows中的自带记事本功能强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++有行号,能够快速定位问题位置,还有语法高亮度显示、代码折叠等功能。而且它是免费的。

Notepad++软件安装

安装:傻瓜式安装,一直下一步即可。建议也安装到统一的开发软件目录下,比如E:\develop。
具体安装步骤请参见《Nodepad++软件安装及配置说明》文档。

Notepad++软件配置

安装完毕之后,为了使用方便,做一个简单的配置:修改默认语言和编码。
具体配置的说明请参见《Nodepad++软件安装及配置说明》文档。

Java基础语法

注释

什么是注释

注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要

注释的分类

单行注释

单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字

// 这是单行注释文字
多行注释

多行注释的格式是使用/* 和 */将一段较长的注释括起来

/*
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
// 注意:多行注释不能嵌套使用。
文档注释(面象对象时讲解)

文档注释以/**开始,以*/结束

/**
   这是文档注释的内容
*/

关键字

什么是关键字

关键字是指被java语言赋予了特殊含义的单词

关键字的特点

关键字的字母全部小写。

常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的public、class、static等。

常量

什么是常量

在程序运行过程中,其值不可以发生改变的量。

Java中常量的分类

字符串常量

用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、"abc"、"中国"等

整数常量

整数,例如:-10、0、88等

小数常量

小数,例如:-5.5、1.0、88.88等

字符常量

用单引号括起来的一个字符,例如:'a'、'5'、'B'、'中'等

布尔常量

布尔值,表示真假,只有两个值true和false

空常量

一个特殊的值,空值,值为null

常量演示

除空常量外,其他常量均可使用输出语句直接输出

/*
	常量的分类:
		字符串常量  "123" "abc"
		整数常量: 100 1 -1 -100
		小数常量: 1.1 1.2 -1.1 -1.2 
		字符常量: 'a' '1' '你'
			字符'' 有且仅有一个字符
		布尔常量: true  false
		空常量: null
*/
public class Demo01{
	public static void main(String[] args){ 
		// 字符串常量  "123" "abc"
		System.out.println("abc");
		
		// 整数常量
		System.out.println(100);
		System.out.println(-100);
		
		//小数常量
		System.out.println(1.1);
		System.out.println(-1.1);
		
		// 字符常量
		System.out.println('a');
		System.out.println('你');
		// System.out.println('');
		System.out.println(' ');
		
		// 布尔常量: true  false
		System.out.println(true);
		System.out.println(false);
		
		// null是不能直接打印,有特殊应用的,在后面的数组  集合 对象中使用
		// System.out.println(null);
		
		
	}
}

数据类型

计算机存储单元

我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。
而计算机中最基本的存储单元叫“字节(byte)”,

通常用大写字母”B”表示,字节是由连续的8个位组成。

存储单位换算

除了字节外还有一些常用的存储单位,其换算单位如下

1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB

Java中的数据类型

最easy的面试题,应届生。

技巧:一分为二:基本数据类型和引用数据类型。

基本数据类型:4类8个;整型 浮点型 字符型 布尔型

整型:4个,从小到大记忆,byte short int long

浮点型:2个 float double

字符型:char

布尔型:boolean

为什么有数据类型

Java是一个强类型语言,对每一种数据都规定了范围.

数据类型的分类
基本数据类型
注意

e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。

在java中整数默认是int类型,浮点数默认是double类型

//定义变量 格式一  数据类型  变量名  = 值
        //定义变量的读法,从右向左读
        //字节变量
        byte b = 10;
        System.out.println(b);

        short s = 100;
        System.out.println(s);

        int i = 1000;
        System.out.println(i);

        // int j = 100000000000000;
        long j = 100000000000000L;


        //如果是小数,默认double
        //float单精度    一共7位,保证有效数据 6~7
        //double双精度   一共16位,  15-16
        double f = 3.14;
        float fl = 3.14F;
        System.out.println(f);
        System.out.println(fl);

        char ch = 'a';
        System.out.println(ch);

        boolean boo = true;
        System.out.println(boo);

变量

什么是变量

在程序运行过程中,其值可以在一定范围内发生改变的量,从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。

变量定义的格式

格式一
数据类型 变量名 = 初始化值; // 声明变量并赋值
int age = 18;
System.out.println(age);
格式二
// 先声明,后赋值(使用前赋值即可)
数据类型 变量名;
变量名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);
格式三

在同一行定义多个同一种数据类型的变量,中间使用逗号隔开

数据类型 变量名 = 值,变量名 = 值, ....;
int a = 10, b = 20; // 定义int类型的变量a和b,中间使用逗号隔开
System.out.println(a);
System.out.println(b);

int c,d; // 声明int类型的变量c和d,中间使用逗号隔开
c = 30;
d = 40;
System.out.println(c);
System.out.println(d);

变量注意事项

1. 在同一对花括号中,变量名不能重复。
2. 变量在使用之前,必须初始化(赋值)。
3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。

标识符

什么是标识符

标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。

标识符的组成规则

由字母、数字、下划线“_”、美元符号“$”组成,

第一个字符不能是数字。 不能使用java中的关键字作为标识符。 标识符对大小写敏感(区分大小写)。

标识符不能和关键字一样。

标识符的命名规范(江湖规矩)

类名

一个单词: 首字母大写 Hello 多个单词: 每一个单词的首字母都要大写 HelloWorld (大驼峰)

变量名和方法

一个单词: 全部小写 value get()

多个单词: 从第二个单词的首字母开始,每一个单词都要大写 maxValue getValue() (小驼峰)

一个单词: 全部小写 cn com

多个单词: 全部小写中间用.分割 com.itfxp

公司的域名倒着写

www.baidu.com-->com.baidu.xxx

自定义常量

一个单词: 全部大写 MAX VALUE

多个单词: 全部大写 中间用 _ 隔开 MAX_VALUE

/*
 *  包名一般来说三级名(三层文件夹), 一般全部小写
 *  例如: cn.yanqi.com   com.baidu.cn
 *  注意事项: 工程  -- 包 -- 类  -- 成员
 *  
 *  标识符(就是起名字) 类名,方法名,变量名,接口名。。。
 * 
 *  组成规则:
 *       1、英文字母大小写
 *       2、数字
 *       3、$ _
 *
 *      例如:类名 Student Student01 Student_01 Student$_03
 *
 *     注意事项:
 *          1、不能以数字开头
 *          2、不能是java中的关键字
 *          3、java语言严格区分大小写
 *
 *     今后起名字:见名知意
 *
 *     如果你起【类名】:如果一个单词,首字母大写
 *                  如果两个单词,每个单词的首字母大写, 大驼峰写法
 *     如果你起【变量名】: 如果一个单词全部小写
 *                         如果两个单词,第一单词首字母小写,从第二个单词首字母大写,  小驼峰写法
 *
 *     如果你起【方法名】:同变量名一样
 *
 *     下面哪些标识符有合法,不合法?
 *     HelloWorld  DataClass _987   $abc5_8  class  DataClass#  98.7  hello world
 */