目录
1.初识Java
1.1 Java简介
1.1.1 什么是程序
定义:1.方式(动作)[细节1-->细节2--->细节3]
2.过程(流程) [第一步-->第二步--->第三步]
1.1.2 Java的产生
(1) 1995年java 诞生
(2) Java之父 高斯林(Gosling)
(3)Java在企业开发中占有率比较高的JDK1.8
1.1.3 Java技术平台
(1)Java技术平台种类:1.平台标准版 2.平台企业版
(2)平台标准版主要包含的技术有Java核心语法等等
(3)平台企业版主要包含的技术仅仅是企业级应用技术等等
1.1.4 生活中的程序
生活中的程序的体现:生活中的很多运用到软件(系统)的场景去执行某个事件 一般需要符合某个特定的流程(1,2,3,4,5,6....)
1.1.5 计算机中的程序
(1)计算机中的程序的定义:1.一系列(一批) 2.有序(有顺序) 3.指令
(2)指令:指挥机器工作的
(3)计算机中的程序的编程语言可以有多种,Java只是其中一种
1.1.6 为什么学习Java
(1)高级编程语言
(2)很多领域大数据,AI,人工智能等等学科的基础学科
1.2 Java环境JDK安装
1.2.1 下载并安装JDK1.8安装包
内容:默认下一步直至C盘中[C:/Program files]下有两个文件目录
1.2.2 配置JDK1.8环境变量
win+q->环境变量->双击”系统变量中的Path”->新建->C:\ProgramFiles\Java\jdk1.8.0_202\bin
->选中-->上移-->3个确定(不要直接关闭窗口,每个窗口都得点击确认按钮)
1.2.3 测试JDK1.8是否安装成功
win+R-> cmd ->java -version / javac -version
出现对应的jdk版本信息就说明安装成功
1.3 Java工具安装
1.3.1 常用工具介绍
(1)Myeclipse 初学者必备
(2)Eclipse 企业版必备(目前市场占有率比较少)
(3)Idea 企业版必备(目前市场占有率比较多)
1.3.2 Idea2018工具安装
步骤:双击默认下一步->直至完成【安装路径改为非C盘】
1.4 Java项目创建
创建Java项目的步骤:项目(工程/project) ->包(package) ->类(class)->方法(())
1.4.1 创建项目(工程/project)
1.4.2 创建包
1.4.3 类
1.4.4 方法()
测试方法:(入口方法/main函数)
1.4.5 拓展
1.5 Java文档工具API
如菜鸟教材那样帮助我们写代码的,网上有很多,这里推荐一个
https://docs.oracle.com/javase/8/docs/api/
2. 变量、数据类型和运算符
2.1 Java运行原理
在进行本章节的学习前,让我们来看看一个java程序的运行是怎么样的一个过程吧
进行如下步骤
步骤1:在本地磁盘创建一个文本文件,命名为Demo.java(源文件)
步骤2:在源文件中编写Java代码
步骤3:在当前文件路径下通过cmd跳转到DOS窗口(控制台页面)
步骤4:通过javac命令( javac Demo.java)编译源文件,会生成字节码文件(二进制文件)
步骤5:通过Java命令(Java Demo)运行字节码文件
步骤6:在控制台上可输出对应语句
总结1:Java是跨平台语言,所以系统运行Java代码都是运行class字节码文件
总结2:Java是运行原理的流程:Java源文件-》javac命令进行编译工作并生成class文件-》
java命令运行class文件才能执行Java代码中的功能
2.2 变量
2.2.1 内存如何存放数据
存放特点
特点1:临时数据存放在内存条
特点2:永久数据存放在硬盘
拓展:栈,堆,方法区的关系是什么?
答:1.栈一般存放变量
2.堆一般存放对象
3.方法区一般存放静态成员
2.2.2 生活中的变量
“类比”开房间
房间 ——变量
房间号——变量名
房间类型——变量类型
入住的客人——变量值
2.2.3 计算机中的变量
步骤1(定义变量的行为)
变量类型 变量名;
步骤2(赋值的行为);
变量名=变量值;
步骤3输出变量
System.out.println(变量名);//控制台输出的是变量值
public class Demo03 {
public static void main(String[] args){
//步骤1:定义变量
int money; //int是变量的类型,类型是int类型的(数值类型)
//money是变量的名称
//步骤2:给变量赋值
money = 12;
// money是变量的名称
// =是赋值的行为
// 12是变量值
//步骤3:获取变量值输出到控制台上
System.out.println(money);
}
}
2.2.4 常量
- 定义:固定的值一般存放在常量中
- 常量与变量的区别:变量一般存放可变的值,而常量一般存放固定的值
- 常量的命名规范:
常量名一般纯大写
不同字符使用下划线分隔
只能赋值一次不能更改
public class Demo04 {
//1.常量名通常纯大写
int HEIGHT = 540;//身高
//2.不同字符使用下划线分隔
int HEIGHT_CHILD = 340;//孩童时期的身高
//3.只能赋值一次,不能更改
final int HEIGHT_ONE = 2497;//在类加载时初始化一次,后面不可更改
}
2.3 数据类型
2.3.1 Java基本数据类型
8种基本数据类型:
整型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
注:关于 float 型和 double 型的区别,以及 char 型和 String 型的不同:
1.
①.float是单精度浮点数,内存分配4个字节,占32位,有效小数位6-7位
double是双精度浮点数,内存分配8个字节,占64位,有效小数位15位
②.java中默认声明的小数是double类型的,如double d=4.0
如果声明: float x = 4.0则会报错,需要如下写法:float x = 4.0f或者float x = (float)4.0
其中4.0f后面的f只是为了区别double,并不代表任何数字上的意义
③.对编程人员而言,double 和 float 的区别是double精度高,但double消耗内存是float的两倍,
且double的运算速度较float稍慢。
2.
①.char表示字符,定义时用单引号,只能存储一个字符,如char c='x';
而String表示字符串,定义时用双引号,可以存储一个或多个字符,如String name="tom";
②.char是基本数据类型,而String 是一个类,具有面向对象的特征,可以调用方法,如name.length()获取字符串的长度。
String 是一种常见的引用数据类型,用来表示字符串。在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、密码、电子邮箱等。
2.3.2 Java引用类型
引用数据类型我们这里只重点介绍一下String类型(字符串类型)
String类型变量存放的是字符串
命名和赋值如下
public class Demo05 {
public static void main(String[] args){
String a;
a = "jojo乔斯达";
System.out.println(a);
}
}
2.3.3 变量命名规则
1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
2. 标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3. 标识符是严格区分大小写的。 所以涅,一定要分清楚 love 和 LOVE 是两个不同的标识符哦!
4. 标识符的命名最好能反映出其作用,做到见名知意。
5. 多个字母组合需符合驼峰规则(规范来说),例如moneyCount
2.4 运算符
2.4.1 赋值运算符
赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。
Java 支持的常用赋值运算符,如下表所示:
2.4.2 算术运算符
算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。
Java 中常用的算术运算符:
其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴
一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴!
2.4.3 关系运算符
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
Java 中常用的比较运算符如下表所示:
注意:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
知识扩展: java中equals和==的区别
1、值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
4、==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。
2.4.4 自动类型转换
Java所有的数值型变量可以相互转换,如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,则这种方式被称为自动类型转换。
当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换,否则就需要强制转换。
就如同有两瓶水,当把小瓶里的水倒入大瓶中时不会有任何问题。
Java支持自动类型转换的类型如下所示,左边的数值类型可以自动类型转换成箭头右边的数值类型。
1),byte->short->int->long->float->double
2),char->int->long->float->double
在实际应用中除开基本数据类型之间的转换,还有一个引用类型String(字符串类型),它和基本数据类型之间也是需要经常的相互转换:
2.4.5 强制类型转换
如果希望上面自动转换中,箭头右边的类型转换成左边的类型,则必须进行强制类型转换。
强制类型转换的语法格式:(targetType)value,强制类型转换的运算符是圆括号()。
当进行强制类型转换时,类似于把一个大瓶子里面的水倒入一个小瓶子,如果大瓶子里面的水不多还好,如果大瓶子里面的水很多,将会引起溢出,从而造成数据丢失。
这种类型也称为缩小转换。
注意:当试图强制把表数范围大的类型转换为表示范围小的类型时,必须格外小心,因为非常容易引起信息丢失。
2.5 Scanner
可以用来与用户进行交互
获取控制台由键盘输入的信息
import java.util.Scanner;
public class Demo08 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("输入你的名字:");
String name = scanner.next();
System.out.println();
System.out.println("你的名字是"+name);
}
}