1.Java简介
1.1 Java的跨平台特性
Java比较特殊,大致归类为解释型语言,该语言不属于传统的解释型语言也不属于传统的编译型语言。
该语言将源代码通过编译器成编译成字节码文件(中间文件/class文件),字节码文件不能被系统直接执行,但是可以被安装在该平台上的Java虚拟机(VM)进行解释执行。换言之,Java源码被编译成字节码文件,该字节码文件被各大平台上的Java虚拟机解释执行,实现了跨平台特性,但是跨平台的前提是平台上必须安装相匹配的Java虚拟机。
1.2 Java体系的划分
JavaSE - J2SE - 标准版本(引申出了企业版本和微型版本)
JavaEE - J2EE - 企业版本(针对后端开发的技术)
JavaME - J2ME - 微型版本(针对前端开发的技术-已过时,现在都用Android、鸿蒙)
2. 开发基础和环境搭建
2.1开发基础
2.1.1.什么是JavaEE?
接收来自前端的请求,并通过响应返回给前端数据
2.1.2.常用的开发语言
2.2 开发环境搭建
2.2.1. JDK和JRE
目的:写Java代码
JDK( javaSE Development Kit ):工具(Java开发工具包)
JRE( Java Runtime Enviroment ): 环境(Java运行时环境)
2.2.2. 安装JDK
注意:
- 如果你仅仅运行java程序,只用安装JRE即可,但是你要编写Java程序,就必须安装JDK和JRE
- 安装路径建议用默认路径
- 安装后不会像QQ有开启软件的图标
2.2.3. 配置环境变量
目的地:我的电脑右键属性 – > 高级系统设置 --> 高级卡页 --> 环境变量
变量名 变量值 JAVA_HOME C:\Program Files\Java\jdk1.8.0_144 Path %JAVA_HOME%\bin 注意:变量名没有就新建,有就拼接
补充:Path的作用
在path中配置了某个文件夹,代表在其他任何文件夹里都可以打开配置的文件夹中的文件(如C:\Program\Files\Java\jdk1.8.0_144\bin目录下的javac.exe 和 java.exe)
2.2.4.测试环境配置
打开CMD输入
javac -version
java -version
2.3编写第一个Java程序
2.3.1. cmd常用命令
命令 描述 cd\ 退回到根目录 cd 文件夹名 进入指定文件夹 d: 进入到d盘 dir 遍历该文件夹下所有的文件 cls 清空cmd窗口的内容
2.3.2. 用记事本编写Java源程序
示例:
//公有类名叫做Hello
public class Hello{
//主方法
public static void main(String[] args){
//输出语句
System.out.println("Hello World!");
}
}
/*
内容解析:
public-公有的 class-类 Hello-类名
static-静态的 void-无返回值的 main-方法名
String-字符串
String[]-字符串数组
*/
2.3.3. 代码细节
- public修饰的类名必须和文件名一致
- Java是一门大小写敏感的语言
- 括号、双引号都是成双成对的
- 方法里的代码都是从上往下执行 - 顺序执行
- 方法中的代码又叫做执行语句,执行语句用英文状态分号(;)结束
2.3.4. java源程序运行
先编译:javac Hello.java
再运行:java Hello
3. Java编码规范
3.1. 书写格式
使用tab键让代码更有层次感,可读性增高(在专业的编译软件上有自动对齐功能)
3.2. 代码注释
含义:解释编写好的代码
注释 描述 //注释内容 单行注释 /* 注释内容 */ 多行注释 /** 注释内容 */ 文档注释 注意:注释不参与编译过程,即不影响编译,且在编译后的.class文件中会被直接丢弃。(反编译后[.class->.java],注释会全部消失)
3.3. IDE
含义:编码环境,编写代码的软件
记事本 --> notepad++/EditPlus --> eclipse --> IDEA
3.4. 编码问题
当出现非英文符号时,如汉字…,需要保证源文件和执行环境编码一致,否则会出现乱码或报错。
根本原因:两者编码和解码不是使用的同一编码格式
解决方案:两个端口设置一样的编码格式
(设置cmd窗口编码:javac -encoding UTF-8 Hello.java)
3.5. 标识符
含义:给类、方法、变量、接口取名字时使用到的字符序列
组成部分:英文大小写字母 or 数字 or $ or _ or 中文
命名规范:
不能以数字开头
- 区分大小写字母
- 不能使用除了$和_以外的特殊符号
4. 不要使用中文(企业级的命名规范不允许使用中文)
5. 不能使用Java的关键字
public class 标识符{
public static void 标识符(String[] args){
}
}
3.6. 关键字
含义:java提前给我们定义的具有特殊意义的单词
例如:int、char、void、private、if、else…等(很多)
4. Java的变量
4.1. 变量
含义:在程序执行过程中,可改变的量
语法:数据类型 变量名 [= 值];
注意:
中括号里的内容可写可不写,不违反变量的语法规则
2. =为赋值号,将赋值号右边的值赋值给左边的变量。 3. 变量类似容器,但是变量只能存单个值(要想存多个值,可以考虑使用数组和集合)
4.2. 变量的注意事项
- 在同一个作用域中,变量名不能重复
- 变量必须初始化后,才能使用
4.3. java数据类型
4.3.1. 基本数据类型
数值型
{整数类型
【字节型:byte(1字节)】 取值范围为-128~127
【短整型:short(2字节)】 取值范围为-32768~32767
【整型:int(4字节)】 取值范围为(-2147483648~2147483647)
【长整型:long(8字节)】 取值范围为(-9223372036854774808~9223372036854774807)
浮点类型:
【单精度浮点型:float(4字节)】 3.402823e+38 ~ 1.401298e-45
【双精度浮点型:double(8字节)】 1.797693e+308~ 4.9000000e-324
}
注:计算机中的最小单位为字节,一个字节有八位 0000 0000
字符类型:char(2字节)
char c='A';
赋值使用单引号,单字符。
布尔类型:boolean(4字节)
boolean bool=true;
bool=false;
true:对的,真的。
false:错的,假的。
4.3.2. 引用数据类型
数组、类、接口、枚举
4.4. 基本数据类型转换
注意:数值类型的转换
数值类型的取值范围:byte<short<int<long<float<double
byte:-128~127
int: -21亿…~21亿
char: 0~65535
boolean :底层使用int型1和0表示。
自动转型(取值范围小的转向取值范围大的)
byte b=1; short s=b; int i=s; long l=i; float f=l; double b=f;
强转转型(取值范围大的转向取值范围小的)
double b=1.0; float f=(double)b; ... byte b=(short)s;
注:自动转型和强制转型也可以一步到位。
特殊点
char c='a'; int i=c; System.out.println(i);
得出i的结果为97(为a的ascll码为97)。
4.5. 拓展
常量:在程序执行过程中不可变的量。
分类:
1.数字字面量(代码中出现的实质数字) 数字为整数默认类型为:int
数字为小数默认类型为:double
2.字面值常量(如固定字符串)
3.final(最终的)修饰的变量
final int i = 100;示例:
byte b1=1;//1为int数值,但是1在byte类型的取值范围内,所以直接赋值 byte b2=128;//报错,128为int数值,但是128未在byte类型范围内,所以需要强转。 byte b2=(byte)128;//强转成功,但储存在b2中的数值变为-128
分析:int类型128 :0000 0000 0000 0000 0000 0000 1000 0000
byte类型值取后一个字节 :1000 0000
首位的符号位为1代表负数,为范围内最小的负数-128
float f=1.1;//报错,无法将一个double类型数值赋值给float float f=1.1F;//正确,直接将1.1认为成float类型数据 float f=(float)1.1;//正确,强制转型