系列文章目录
Java基础01:JAVA概述、基础语法
Java基础02:运算符、流程控制语句、Random随机数
Java基础03:IDEA、快捷键
Java基础04:数组、二维数组
Java基础05:方法
Java基础06:Debug、进制
Java基础07:面向对象基础
Java基础08:API、字符串String、StringBuilder
Java基础09:ArrayList集合
Java基础作业
文章目录
一、Java 语言背景介绍
Java语言
语言:人与人交流沟通的表达方式。
Java 之父:詹姆斯·高斯林(James Gosling)。高司令
Java 语言是美国 Sun 公司(Stanford University Network)在 1995 年推出的计算机语言。
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言。
Java语言的三个版本
JavaSE
Java SE : Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。
学习 Java SE 的目的 : 为今后要从事的 Java EE 开发,打基础。
桌面应用 :用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验。
JavaME
Java ME : Java 语言的(小型版),用于嵌入式消费类电子设备。JavaME已淘汰
JavaEE
Java EE : Java 语言的(企业版),用于 Web 方向的网站开发。
网站:通过跟后台服务器的交互,将查询到的真实数据再通过网页展示出来。
简单理解:网站 = 网页 + 后台服务器
二、Java 跨平台原理
1.平台与跨平台
平台:指的是操作系统。
⚫ Windows
⚫ Mac
⚫ Linux
平台与跨平台
跨平台:Java 程序可以在任意操作系统上运行。
总结:在需要运行 Java 应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机(JVM Java Virtual Machine)即可。
JVM 虚拟机本身不允许跨平台,允许跨平台的是 Java 程序
三、JDK、JRE、JVM
- 编写代码的过程中,需要使用 JRE 中 Java 已经写好的代码。
- 编译代码的过程中,需要使用 JDK 中的翻译工具。
- 运行代码的过程中,需要使用 JDK 中的运行工具。
- 代码需要运行在 JVM 当中
四、常用DOS命令
在路径栏输入 cmd 敲回车,可快速进入录所在 DOS 命令提示符窗口
五、环境变量的配置
如果不配置环境变量,则有弊端:
只能在bin目录下才能使用javac和java工具,今后的代码都放在bin目录下不便于管理。
六、基础语法
在输入法设置后,可以避免出现中文符号报错。
注释
注释是在程序指定位置添加的说明性信息,就是对代码的解释和说明。
⚫ 单行注释,格式:// 注释信息
⚫ 多行注释,格式:/* 注释信息 */
⚫ 文档注释,格式:/** 注释信息 */
关键字
关键字就是java中有特殊意义的词
关键字的特点;
①完全是小写的字母
②常见的开发软件中会有特殊颜色标识
main不是关键字,可以将其理解为,比关键字更为关键的一个单词,因为JVM在执行代码的时候,只会识别该单词
常量
常量:在程序的执行过程中,其值不会发生改变的量(数据)
public static void main(String[] args) {
System.out.println("Hello");
System.out.println("123");
System.out.println("true");
System.out.println(73);
System.out.println(3.14);
System.out.println(true);
System.out.println(false);
System.out.println('a');
System.out.println(null); //报错:空常量null不可以直接输出
System.out.println("null"); //不报错:只要被“双引号”包裹的,都是字符串常量
}
}
变量
常量:在程序的执行过程中,其值会发生改变的量(数据)
变量就是内存中的存储空间,空间中存储着经常发生改变的量(数据)
数据类型
计算机存储设备的最小信息单元叫位(bit),我们又称之为比特位,通常用小写的字母b表示。而计算机中最小的存储单元叫字节(byte),通常用大写字母B表示,字节是由连续的8个位组成。
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
…
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
引用数据类型:引用、记录了地址值的变量,所对应的数据类型,就是引用数据类型
例如:
int[] arr = new int[3];
String也是引用数据类型,因为String是一个类
变量的定义和使用
//定义格式:数据类型 变量=数据值;
int a=10;
double b=11.1;
char c='a';
boolean d=true;
a=20;//修改值
System.out.println(a);//打印值
注意事项:
/*1.变量名不允许重复定义*/
int a = 10;
// int a = 20; 错误代码
/*2.一条语句可以定义多个变量,但需要使用逗号进行分割*/
int b= 10, c = 20 , d = 30;
/*3.变量在使用之前一定要进行赋值*/
int e ;
System.out.println(e); //错误: 可能尚未初始化变量e
/*
4.定义float和long变量的注意事项:
定义float类型变量的使用: 需要在数值的后面加入F的标识,F可以大写也可以小写.
定义long类型变量的使用 : 需要在数值的后面加入L的标识,L可以大写也可以小写.
但是, 建议大写.
*/
float f = 12.3F;//(必须)
long g = 1000L;//(非必须)
float f = (float)12.3;//不报错,不加F,默认double,向下类型转换,需要加(float)强转
long g = 1000;//不报错
long g = 1000000000000;//报错,数超过默认的int范围又没有加L,则报错。
/*5.变量的作用域 : 只在它所在的大括号中有效*/
int a = 10;
System.out.println(a);
{
int b = 20;
// 当这个大括号中的代码执行完毕后, 内部所[定义]的变量就会丛内存中消失
}
System.out.println(b);//错误: 找不到符号b
键盘录入
//步骤1:导包,需要写在class的上面
import java.util.Scanner;
public class Demo1Scanner {
public static void main(String[] args) {
// 步骤2: 创建对象,只sc可以改变, 其他属于固定格式
Scanner sc = new Scanner(System.in);
// 步骤3: 使用变量接受数
int a = sc.nextInt();
System.out.println(a);
}
}
标识符
标识符:就是给类,方法,变量等起名字的符号 。
命名规则:(硬性要求)
①标识符可以包含英文大小写字母、下划线(_)和美元符($)、中文也可以
②不能以数字开头
③不能是关键字
命名规范:(约定俗成)
类名:
大驼峰 HelloWorld 所有单词首字母都大写
变量名和方法名:
小驼峰 helloWorld 除了第一个单词外,所有单词首字母都大写
类型转换
隐式转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
范例:double d = 10;
简单记:小的给大的,可以直接给
注意:
- 小的数据类型,和大的数据类型运算,小的会提升为大的之后,再进行运算
- byte short char 三种数据在运算的时候,不管是否有更高的数据类型,都会提升为int,然后再进行运算
- 常量优化机制:先把常量算数计算出来,只要结果不超过前边类型的范围,则编译通过,否则失败。
float pi=3.14;//会报错,3.14默认double大,不能隐式转换到float小
float pi=3.14F;//不报错
int i = 100L;//会报错,因为是long->int 大转小,不能进行自动类型转换
float f = 2.0;//会报错,因为是double->float 大转小,不能进行自动类型转换
long l = 123;//不会报错,因为是int->long,小的数据类型转换成大的类型
byte a = 10;
byte b = 20;
byte sum = a + b; //会报错,a+b变为int类型
byte a = 10+20;//不会报错,两个常量进行相加。
强制转行
⚫ 强制转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
⚫ 格式:1.目标数据类型 变量名 = (目标数据类型)值或者变量;2.最纯粹的格式其实就是在你想转换的数据前面加个**(目标类型)**就可以了
⚫ 范例:int k = (int)88.88; //最后k为88
注意:强制类型转换,有可能会发生精度损失
精度损失:简单理解,将容积为8升的容器中的水,倒入容积为4升的容器中,如果水超出了4升,就洒了。
byte a = 10;
byte b = 20;
byte sum1 = (byte)a + b; //会报错,a+b变为int类型,只有a强转了byte
byte sum2 = (byte)(a + b);//不报错