java01 一、jdk以及java基础语法
1. Java概述
1.1 java语言发展史
语言:人与人交流沟通的表达方式
计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
Java语言是美国Sun公司在1995年推出的计算机语言
2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com
当前,我们课程使用的JDK版本:11.0
1.2 Java语言跨平台原理(理解)
平台是指操作系统(windows、Linux、Mac)。
Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节码文件解释执行。所以在不同的操作系统下,只需安装不同的Java虚拟机即可实现java程序的跨平台。
1.3 JRE和JDK(记忆)
JVM(Java Virtual Machine),Java虚拟机
JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具。
开发工具包含编译工具javac.exe和运行工具java.exe。
总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。
1.4 JDK的下载和安装(应用)
1.4.1 jdk下载
官方网站下载http://www.oracle.com
注意:针对不同的操作系统,需要下载对应版本的JDK。
1.4.2 安装
傻瓜式安装,下一步即可。
但默认的安装路径是在C:\Program Files下,为方便统一管理建议修改安装路径,将与开发相关的软件都安装到一个目录下,例如:E:\develop。注意:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。
2.程序的开发配置
2.1 常用Dos命令
打开dos窗口:按下Win+R,输入cmd,回车
2.2 Path环境变量的配置
2.2.1 为什么配置环境变量
开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。
2.2.2 配置环境变量步骤
系统变量
新建JAVA_HOME,配置jdk的安装目录E:\develop\java\jdk-11。
找到path变量编辑,追加%JAVA_HOME%\bin
2.2.3 如何验证
关闭配置之前的dos,重打开dos,才生效。
使用命令java或者javac验证
说明:不配置环境变量在dos窗口使用java命令需要带上jdk的安装目录才能使用,例如E:\develop\java\jdk-11\javac
2.3 HelloWorld案例
编译:javac 文件名.java
运行:java 类名
2.4 Notepad的安装
设置-首选项-新建(编码选ANSI、默认语言选java)
3.java基础语法
3.1 数据类型
计算机中最小的存储单位是位bit(b),而基本的存储单位字节Byte(B)
1B=8bit 1Kb=1024B
3.2 Java中的数据类型
Java是一个强类型语言,Java中的数据必须明确数据类型。在Java中的数据类型包括基本数据类型和引用数据类型两种。
基本数据类型{数值型:整数(byte 1个字节、short 2、int 4、long 8)、
浮点数(float 4、double 8)
字符(char 2)}
{非数值型:布尔 1}
引用数据类型:String、类class、接口interface、数组[].
说明:
(1)、在栈中可以直接分配内存的数据是基本数据类型。
引用数据类型:是数据的引用在栈中,但是他的对象在堆中。
(2)、在java中整数默认是int类型,浮点数默认是double类型
定义float a=12.34F,必须加F或f,否则默认是double
定义long b=123L,必须加L或l。否则默认是int
3.3赋值运算符
3.3.1 类型转换
算数表达式中包含多个基本数据类型时,整个表达式的类型会自动提升。
提升规则:
Byte-short-int-long-float-double
Char-int
Short a=1;a=a+20;报错
应该是a=(short)(a+20)
a+=20;对
扩展的赋值运算符,底层隐含了强制类型转换。{*= /= += -= %=}
3.4 自增自减运算符
++ -- 变量加减1
(1)单独使用,++放变量的前后边,结果一样
int i=1; i++; ++i;
(2)、参与操作时,++放变量前面,先拿变量++,再拿变量参与操作;
放后面,先拿变量参与操作,再拿变量做++.
int j=++i; j--2 i—2
int j=i++; j—1 i—2
3.5逻辑运算符
3.5.1 基本的逻辑运算符
&逻辑与 |逻辑或 !逻辑非
3.5.2 短路逻辑运算符
&&短路与 ||短路或
&&左边为假,右边不执行
||左边为真,右边不执行
4. 标识符(记忆、理解)
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则:由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。不能使用java中的关键字作为标识符。标识符对大小写敏感(区分大小写)。
Java中标识符的命名约定:
小驼峰式命名:变量名、方法名。首字母小写,从第二个单词开始每个单词的首字母大写。
大驼峰式命名:类名。每个单词的首字母都大写。
5.条件控制语句
continue用在循环中,跳过某次循环内容,继续下一次。
break用在循环中,终止循环内容的执行,结束当前的整个循环
for(int i=1;i<4;i++){
if(i==2){
continue; ---1,3
break;----1
}
system.out.println(i);
}
5.1 Random产生随机数(掌握)
概述:Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能API后续课程详细讲解,现在可以简单理解为Java已经写好的代码使用步骤:1. 导入包import java.util.Random;2. 创建对象Random r = new Random();3. 产生随机数int num = r.nextInt(10);解释: 获取的数据范围是[0,9]中的一个随机数
5.2递归
递归求阶乘
…… main(){ int result=jc(3)}
public static int jc(int n){
if(n==1){return 1;}
else{ return n*jc(n-1);}
}
6.内存分配【理解】
6.1内存概述
内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。
6.2java中的内存分配
(1)栈内存:基本类型的变量和对象的引用变量。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
(2)堆内存:存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。
6.3 数组
6.3.1 数组的初始化
(1)动态初始化
初始化时,只定义数组的长度
格式:数据类型[] 变量名=new 数据类型[长度]
(2)静态初始化
格式:数据类型[] 变量名=new 数据类型 [] {数据1,数据2}
简化:数据类型[] 变量名= {数据1,数据2}
注意:数组在初始化时,会有默认值
{ 整数:0 浮点数:0.0 布尔: false 字符:空字符 引用类型:null}
6.4 方法概述
6.4.1方法格式
public static 返回值类型 方法名(参数) {
方法体; return 数据 ;}
6.4.2方法重载
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
(1)多个方法在同一个类中
(2)多个方法具有相同的方法名
(3)多个方法的参数不相同,类型不同或者数量不同
注意:重载仅对应方法的定义,与方法的调用无关,与返回值无关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构