编程语言的发展: 机器语言- 汇编语言 - 高级语言
编译处理过程: 编辑器(记事本)->编译器(JDK工具包/字节码)->解释器(JRE/JVM)
Java程序的开发流程
编辑器:编写代码的工具
编译器:翻译代码的工具
翻译器:java中执行代码的工具
Java版本
JavaEE标准本 JavaSE企业版 javaME
环境搭建
JDK14下载 Oracle JDK Open JDK
JDK的特性
搭建解压版环境
1.解压 2.测试 3.配置环境变量 4.测试
JDK测试
- 目录一定是在java.exe javac.exe所在目录 打开cmd窗口
- 命令正确无误地输入 java -version 或者 javac -version
JDK环境变量配置
情况: 只能在某个指定的目录去使用 java javac
期望: 在任何目录下都能够使用 java javac
path: 指定命令目录查找
文件后缀名
编辑器EditPlus… Sublime Text… Notepad …
转义字符: \转换字符的标志
变量
创建变量(大小(类型),名称,数据) 类型 变量名=数据
常量(final)修饰不能二次赋值和改变final int PI=3
数据类型转换
变量和数据都是有类型的
自动类型转换: 从小->大(数据不会丢失)
强制类型转换: 从大->小(数据可能会丢失)
数据
(1)是承载信息的符号,不能发生改变 例:年龄:18岁名字:吴磊
变量
(2) 就是内存中用来临时存储数据的空间,能发生改变
存(把数据放入变量中,如果变量存在有数据,新的数据将覆从大->小(数据有可能会丢失)
数据和变量
盖原来的数据); 取(将变量中的数据取(拷贝)出来
创建变量名,(类型大小.名称,数据)
(3)变量定义格式:
A:数据类型 变量名=初始化值;
B:数据类型 变量名 使用变量\操作变量
C:必须要存在变量才能进行操作,先声明空间,一定要加上类型表示声明空间
注意:定义变量相当于在申请空间,必须指定大小类型,指定唯一的名称
常量 final
在程序运行中,申请的空间中内容不能发生改变,变量不能被第二次赋值的空间叫常量
声明\定义 : 赋值只有一次,类型,名称(所有字母都大写)
使用关键字final修饰变量, 则该变量变为最终变量,值将不能被改变
输出语句
System.out.println()//输出语句 换行
System.out.print()//输出语句 没有换行
原样输出\数值\变量中的内容
- : 若遇到纯数字做加法运算;若原样输出后可做简单拼接
Java基本数据类型(简单类型) and 引用数据类型(复杂类型)
基本类型 分为三大类8小种:(byte,short,int,long,float,double,char,boolean)
数值型(数字) 整型 例:(123,456) 浮点型 例:(123.1,456.6)
字符型(单个文本) 例: (‘2’,‘5’,‘爱’,‘而’,‘不’,‘见’)
布尔型(逻辑型) boolean (ture , false)
单位
位 bit b 一种状态(0|1)
字节 byte 8b B
千字节 KB KB 1024 2^10
兆字节 MB 1024KB 10241024
吉字节 GB 10241024 102410241024B
一个英文占用椅子字节 一个中文占2-3个字节(由编码格式决定)
数据类型
类型(代码的名称),所占空间,数据表示范围
整数:
byte(字节型) 整数 1字节 8位 [-128,127]
三目运算符
条件表达式 ? 结果表达式1 : 结果表达式2 ;
键盘录入工具 Scanner
让用户可以在程序运行过程中 向程序输入数据,程序可以接受到用户输入信息
Scanner类 这个工具是别人提供的 (工具可以多次使用)
步骤:
- 指定工具所在位置 导入import java.util.Scanner (在非注释/类的第一行)
- 获取工具 Scanner tool=new Scanner(System.in);
- 使用工具 int age=tool.nextInt(); String name=tool.next();
- 操作数据 System.out.println(age);
随机生成工具:Random
Random类 工具名字 他在java.util.Random
- 导包 2.获取工具 3.使用工具 4.后期处理数据
Java编程基础面向对象深入
大纲:面向对象 - 类与对象
- 内存分析
- 面向对象经典案例
- 构造器
- This关键字
- 成员方法的使用与应用
- Static关键字
面向对象和面向过程
面向对象思想:关注该实现 ,然后一步一步实现 语言:Java C++
面向过程思想:关注该找谁来实现,这个谁就是对象,对象如何实现不关注,只关注对象本身语言:C
成员变量与局部变量的区别:
1.声明位置不同: 类中方法外 方法中
2.作用范围: 当前类的方法 当前方法
注:不同方法中即便有同名的局部变量,无关系,互不影响,建议相同 - 内存存放位置:栈内存中 堆内存中
- 成员变量有默认值;局部变量无默认值
public class StaticDemo {//实例作用域(成员变量堆内存中)
// 实例变量声明
public void Method() {//局部变量作用域 (在栈内存中)
// 局部变量声明(必须声明并赋值)
}
}
类与类之间的关系
类之间大体分为6种:
3.1继承类
继承指的是 一个类 (称为子类 子接口) 继承另外一个类(父类,父接口)的功能,并可增加它自己的新功能; 关键字extend .
3.2 实现关系
实现指的是一个class类实现interface接口(可以多个接口)的功能,实现是类与接口之间最常见的关系. 关键字 implement
3.3 依赖关系 为类B作为类A的在某个方法使用
3.4 关联关系 略 3.5 聚合关系 略 3.6 组合关系 略
内存分析
Java中对象和数组是通过引用对其操作的
引用可以看做一个受限的指针 引用只能进行赋值运算
引用是一个变量或一个对象别名(引用的本质就是对象),指针指一个内存地址.java中的对象存储的是个地址
内存划分:
栈:
存放:局部变量
先进后出自下而上存储
方法执行额鞍鼻自动释放空间
堆:
存放在new出来的对象
需要垃圾回收器回收
无序 根据对象的地址区分
方法区:
存放: 类的信息(代码) static变量 字符串常量等