Java韩顺平

慢慢更新

Java概述

什么是程序

程序是有序指令的集合

CMD编译执行Java文件

编译:javac 文件名.java
执行:java 文件名

文件夹地址栏 输入 CMD 弹出本文件夹命令行

Java版本

Java在1995年由SUN公司发布
gosling Java之父
目前Java属于Oracle

目前Java的两个长期支持版本:
Java 8
Java 11
Long-Term-Support (LTS)

标准版:Java SE(Standard Edition)
企业版:Java EE(Enterprise Edition)
小型版:Java ME(Micro Edition)

Java部分特性

  1. Java是面对对象(oo)
  2. Java是健壮的
  3. Java是可跨平台的 [一个编译好的 .class 文件可以在多个系统下运行]
  4. Java是解释型语言
  • 解释型和编译型语言区别:
    解释型语言:将代码翻译成机器语言
    编译型语言:将代码编译为一个独立文件, 可以直接运行

解释型:JavaScript、PHP、Java、Python
编译型:C、CPP

Java开发工具

  • 文本编辑器:
    VSC
    Sublime Text
    Vim
    Atom

  • IDE:
    JetBrains IDEA
    Eclipse
    MyEclipse

初学推荐使用文本编辑器 方便熟悉Java基本代码格式

JDK

  • JVM (Java Virtual Machine)
    一个虚拟的计算机 对于不同平台有不同的虚拟机
    Java虚拟机屏蔽了底层运行平台的差别 实现了"一次编译, 到处执行"

  • Java文件运行
    xx.java → 编译 javac → xx.class → 运行 java → 不同平台

  • JDK和JRE
    JDK(Java Development Kit) Java开发工具包
    JDK=JRE+Java开发工具[bin目录]

  • 安装JDK时 默认安装JRE
    JRE(Java Runtime Environment) Java运行环境
    JRE=JVM+Java的核心类库

  • 如果只需要运行开发好的Java程序 计算机中只需要安装JRE

  • JDK、JRE和JVM的关系
    JDK = JRE + 开发工具集
    JRE = JVM + Java SE标准类库

安装的JDK = JVM + Java SE标准类库 + 开发工具集

JDK 用于开发
JRE 用于运行

下载、安装JDK

  • 安装路径不要有中文或特殊符号
  • JRE可以选择性安装

配置环境变量

检查Java是否配置好

  1. Win + R 输入 cmd
  2. 在打开的命令行中输入 javac 查看是否报错

报错的原因:因为没有配置全局环境变量, 所以在输入指令时, 只会在DOS命令行默认文件夹中找javac编译器.
解决:
1.在java的bin文件夹中打开cmd输入javac
2.为了在任意文件夹中都能打开jdk, 所以我们需要配置Java的全局变量

配置环境变量的过程

  1. 我的电脑-属性-高级系统设置-环境设置
  2. 添加"JAVA_HOME" 环境变量, 指向JDK的安装目录"<目录地址>"
  3. 编辑 path环境变量, 添加"%JAVA_HOME%\bin"
  4. 再次打开DOS命令行, 输入javac, 检查是否配置成功

path路径中 使用 ";"(分号)隔开不同的项目

配置多个

  • 比如把JDK8新建为"JAVA_HOME8", JDK11新建为"JAVA_HOME11". 同时保留"JAVA_HOME"并让"JAVA_HOME"指向"%JAVA_HOME8%" 或是 "%JAVA_HOME11%". 在需要切换版本时, 只需要更改"%JAVA_HOME<版本号>%"指向的版本号了.

https://www.cnblogs.com/zhanglongxin233/p/13170094.html

用户变量与系统变量
用户变量:仅针对该用户
系统变量:整个电脑的所有用户都可以使用

Java快速入门

// 演示Java的开发步骤
// 1. public class Hello 表示 这个类叫 Hello, 作为一个public公有类被创建
// 2. Hello{} 表示一个类的开始和结束
// 3. public static void main(String[] args) 表示一个主方法, 即程序的入口
// 4. main() {} 表示方法的开始和结束
// 5. System.out.println("Hello, World."); 表示换行输出双引号中的文字Hello, World. 到屏幕上
// 6. ; (引号) 表示语句结束
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World.");
}
}
  • 此时, 仅使用文本编辑工具是无法运行代码的. 需要将 .java文件 转换为 .class文件
  • 在 .java文件 的地址栏直接输入 "javac Hello.java" 结果发现报错
  • 因为代码文件中的注释是中文, 默认的编码格式会导致报错
  • 将文本保存为GKB格式, 就可以编译了.
  • 编译好后, 输入"java Hello"即可

可以利用上下的方向键, 来回切换在DOS命令行中输入的指令

如果在运行Hello.class时, 输入"java Hello.class"编译器反而会认为想要运行的是Hello.class这个名字的类, 然而我们的java类名为Hello, 并不是Hello.class.

Java运行机制

.java 文件 → .class文件 → 输出结果
源文件 字节码文件
javac编译 → java 运行 → 输出

什么是运行

  1. 有了可执行的 java程序 (.class字节码文件)
  2. 通过运行工具 java.exe 对 字节码文件 进行执行, 本质就是 .class 装载到 jvm机 执行
  • 如果程序出错, 就不会生成 .class 文件, 该文件为 字节码文件
  • 如果修改了 java程序 则需要生成新的 .class文件, 才能执行生效

Java 开发注意事项和细节说明

  1. Java源文件以 .java 为 扩展名 源文件的组成部分是 类(class)
  2. Java应用程序的执行入口是main()方法. 它有固定的书写格式:
public static void main(String[] args) {}
  1. Java语言 严格区分大小写
  2. Java方法 由一条条语句构成 每条语句由 ";" 结束
  3. 大括号都是成对出现的, 缺一不可. (要习惯先写 {} 再写代码)
  4. 一个源文件中最多只能有一个public类. 其他类的个数不限
  5. 每一个类编译后都对应一个.class文件
  6. 一个源文件包含一个 public类, 则文件名必须按照该类的类名命名
  7. 一个源文件中最多只能有一个public类. 其他类的个数不限, 也可以将 mian方法 写在 public类 中, 然后指定运行 非public类 这样 入口方法就是 非public 的 main方法

学习方法

  1. 学习要求:

    1. 工作需要
    2. 跳槽, 对方的要求
    3. 技术追求
  2. 查看是否能用传统技术解决问题:

    1. 能解决, 但是不完美
    2. 解决不了

在使用新技术时, 首先查看能带来什么新的优势

  1. 需要掌握的新技术和知识

  2. 先学习新技术或知识点的基本语句和基本语法. 不要考虑细节. 先能实现, 面试再背八股和细节

  3. 快速入门案例(基本程序, crud) 这时候能用了, 具体细节和深入再循序渐进学习

  4. 开始考虑研究技术的注意事项/使用细节/使用规范/如何优化

Java转义字符

常用转义字符:

  • \t : 制表符, 对齐
  • \n : 换行符
  • \ : 一个\
  • " : 一个"
  • \r : 一个回车
public class ChangeChar {
public static void main(String[] args) {
System.out.println("北\t上\t广\t深\t"); // 制表符
System.out.println("\n"); // 换行
System.out.println("\\\n"); // 输出\
System.out.println("\"\n"); // 输出"
System.out.println("C:\\Windows\\System32\\cmd.exe"); // 输出文件地址
System.out.println("\r"); // 输出一个回车.
}
}

一个""(字符串)的文字必须在同一行, 如果一个字符串不在同一行, 则会报错.

\r 如果输入的字符没有另起一行, 则回车后的字符会覆盖本行原来的字符;
\r\n 则能保留本行的文字, 并且另起一行输出新文字

课堂练习

public class Exercise {
public static void main(String[] args) {
System.out.println("书名\t作者\t价格\t销量\n三国\t罗贯中\t120\t10");
}
}

初学易犯错误

  1. DOS命令行找不到文件
    • 源文件名不存在或者写错, 或打开的路径错误

错误: 找不到文件: Exercse.java
用法: javac <选项> <源文件>
使用 --help 可列出可能的选项

  1. 主类名与文件名不一致
    • 声明的public的主类应与文件名一致

Exercise.java:1: 错误: 类 Exercise1 是公共的, 应在名为 Exercise1.java 的文件中声明
public class Exercise1 {
^
1 个错误

  1. 缺少分号
    • 编译失败, 注意报错. 根据报错信息改错

Exercise.java:3: 错误: 需要';'
System.out.println("书名\t作者\t价格\t销量\n三国\t罗贯中\t120\t10")
^
1 个错误

  1. 总结:Java要求按照语法规则编写代码. 如果违反代码规则, java编译器就会报错. 所以要学着去阅读报错信息
    1. 1和l的误判
    2. 0和o的误判
    3. 英文字符和中文字符的混淆 ("非法字符")
    4. void→viod, main→mian 单词拼写错误 ("找不到符号")
    5. 逻辑错误(语法编译正常, 但是代码无法按照预想的结果执行)
    6. 环境错误(JDK版本不同;操作系统不同;系统权限)

注释

用于解释说明程序的文字. 注释提高了代码的可读性;
注释是一个程序员必须具有的良好习惯

  1. 单行注释
  2. 多行注释
  3. 文档注释
    1. 注释内容可以被JDK提供的工具 javadoc 所解析, 生成一套以网页文件形式体现的该程序的说明文档
    2. 命令:javadoc -d d<文件路径> -javadoc标签
    3. 具体所有命令可以查看 javadoc标签
/**
* @author turbospace
* @version 0.01
*/
public class Comment {
public static void main(String[] args) {
//单行注释
// System.out.println("单行注释");
/*
多行注释
*/
}
}
```cmd
cmd> javadoc -d d: Program -author -version Comment.java

注意:

  • 被注释的文字会被JVM忽略
  • 多行注释不允许嵌套多行注释

Comment.java:10: 错误: 非法的表达式开始

代码规范

  1. 类、方法的注释, 要用 JavaDoc 的方式写
  2. 非JavaDoc 的注释, 往往是给代码维护时写的, 为了告诉别人代码的逻辑和思路
  3. 使用 tab 实现缩进, 默认整体向右边移动使用 shift+tab (不同的IDE快捷键不同, 所以更换IDE还是有一定使用成本的)
  4. 运算符 和 = 两边习惯性各加一个空格
  5. 源文件使用 UTF-8 编码
  6. 行宽不要超过 80 字符
  7. 代码编写 次行风格 和 行尾风格
public class EndOfLine {
public static void main(String[] args){
}
}
public class NextLine
{
public static void main(String[] args)
{
}
}

DOS命令

Dos:Disk Operating System 磁盘操作系统.

相对路径 与 绝对路径

  • 相对路径:以当前文件所在的目录为参照,链接到目标文件资源(或文件夹)的路径
    • 例 ../Program/JavaVsc
  • 绝对路径:目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径
    • 例 D:/Program/JavaVsc

常用dos命令:

  1. 查看当前目录 dir

  2. 切换盘符 cd /D 盘符:

  3. 上级目录 cd ..

  4. 根目录 **cd \ **

  5. 创建目录 md

  6. 删除目录 rd

  7. 打开目录 cd

  8. 复制 copy

  9. 删除文件 del

  10. 输入内容到文件 echo

  11. 剪切 move

  12. 查看所有子集目录 tree <路径>

  13. 清屏 cls

  14. 退出 exit

文件夹 = 目录

作业

  1. 编写 Hello, World 程序
  2. 将个人基本信息打印到命令台上输出, 各条信息分别占一行
  3. JDK, JRE, JVM 的关系
  4. 环境变量 path 的配置及其作用
  5. Java 编写的步骤
  6. Java 编写的 7 个规范
  7. 初学Java的易犯错误
/**
* @Author turbospace
*/
public class Homework{
public static void main(String[] args) {
// 1.编写 Hello, World 程序
System.out.println("Hello, World.");
//2.将个人基本信息打印到命令台上输出, 各条信息分别占一行
System.out.println("姓名\t性别\t住址\n胡图图\t男\t翻斗大街翻斗花园二号楼1001室");
/* 3.JDK, JRE, JVM 的关系
JDK:JRE + Java 开发工具
JRE:JVM + 核心类库
JVM:Java虚拟机
*/
/* 4.环境变量 path 的配置及其作用
此电脑→右键属性→高级系统设置→环境变量→用户变量/系统变量
JAVA_HOME:指向Java的根目录
path:%JAVA_HOME%\bin
% 表示引用. 属于相对引用
相对引用的优势:当JDK目录地址变动时, 无需更改path中引用的地址, 直接更改JAVA_HOME中的地址即可
用户变量:仅当前用户可以使用
系统变量:此计算机下的所有用户都可以使用
path 配置环境变量, 是为了便于在任何目录下都能使用 JDK 编译和运行程序
*/
/* 5.Java 编写的步骤
1.编写java的源代码
2.javac 编译, 得到对应的 .class 字节码文件
3.java运行, 本质就是将 .class 文件 加载到 JVM 中运行
*/
/* 6.Java 编写的 7 个规范
1. 类、方法的注释, 使用 javadoc 的方式
2. 非 javadoc 的注释 是对代码的说明 (即给程序之后的维护使用) 说明代码的业务逻辑和思路
3. 使用 tab 规范代码格式
4. 运算符 和 = 两边要习惯性两边加上空格
5. 源文件使用 UTF-8 编码
6. 行宽字符不要超过 80 字符
7. 代码编程的风格 次行风格 和 行尾风格
*/
/* 7.初学Java的易犯错误
1. 编译或运行 找不到文件. 找对文件名
2. 主类名和文件夹名称不一致
3. 语句缺少 ;
4. 拼写错误:常见关键词拼错 字母混淆
*/
}
}

变量

为什么需要变量

  • 变量是程序的基本组成单位

不论是使用哪种高级程序语言编写程序, 变量都是其程序的基本组成单位

class Test {
public static void main(String[] args) {
int a = 1; //定义一个名为 a 的 int 类型的变量, 并值初始化为1
int b = 3; //定义一个名为 b 的 int 类型的变量, 并值初始化为3
b = 89; //将 值89 赋给 变量b
System.out.println(a);
System.out.println(b);
}
}

变量有三个基本要素:类型、名称、值
定义变量→在内存中分配空间, 变量名指向这个内存空间

变量的介绍

  • 概念:变量相当于内存汇总一个数据存储空间的表示
  • 使用基本步骤
    1. 声明变量
    2. 赋值
    3. 使用

变量的使用注意事项

  1. 变量表示内存中的一个存储区域 [不同的变量, 类型不同, 占用的空间大小不同]
  2. 该区域有自己的 名称<变量名> 和 类型<数据类型>
  3. 变量必须先声明, 后使用
  4. 该区域的数据可以在同一类型范围内不断变化
  5. 变量在同一个作用域内不能重名
  6. 变量 = 变量名 + 值 + 数据类型

加号使用

  1. 左右两侧 数值型 → 加法运算
  2. 左右两侧 一方数值型 一方字符串型 → 拼接运算

数据类型

每一种数据都定义了明确的数据类型, 在内存中分配了不同大小的内存空间

  • 基本数据类型

    • 数值型
      • 整数类型:(byte[1], short[2], int[4], long[8])
      • 浮点类型:(float[4], double[8])
    • 字符型(char), 存放单个字符
    • 布尔型(boolean). true, false
  • 引用数据类型

    • 类(class)
    • 接口(interface)
    • 数组( [] )

说明

  1. Java数据类型分为:基本数据类型、引用数据类型
  2. 基本数据类型(8种):byte, short, int, double, float, double | char, boolean
  3. 引用类型(3种):class, interface, array

整数类型

Java的整数类型用于存放整数值

类型 占用空间 范围
byte 1B -128~127
short 2B -32768~32767
int 4B -2147483648~2147483647
long 8B -263~263-1

1字节 = 2^8 = 256
11111111~01111111
负数可以8位均为1为 -128(11111111)
正数不能8位均为1为 127(01111111)
因为最左侧1和0为符号位
最高位 0表示正, 1表示负

整型使用细节

  1. Java各整数类型有固定的范围和字段长度, 不受具体OS的影响, 以保证Java程序的可移植性
  2. Java的整型常量 默认 为 int型, 声明 long型 则常量后需要加 "l" 或 "L"
  3. Java的整型常量声明为int型, 除非不足以表示才使用long
  4. bit, 计算机中最小的存储单位. byte, 计算机中基本存储单元 1 Byte = 8 bit

浮点类型

Java的浮点类型可以表示一个小数

分类:

类型 占用空间 范围
float 4B -3.403E38 ~ 3.403E38
double 8B -1.798E308 ~ 1.798E308

说明

  1. 关于浮点数在机器中存放的简单说明:浮点数 = 符号位 + 指数位 + 尾数位
  2. 尾数部分可能丢失, 造成精度损失(小数都是近似值)

浮点使用细节

  1. 与整型类似, Java浮点类型也有固定的范围和字段长度. 不受OS的影响
  2. Java的浮点数常量默认 double型, 声明 float型 则需在常量后加 "f" 或 "F"
  3. 浮点型常量有两种表示形式
    1. 十进制形式:1, 1.2F,
    2. 科学计数法形式:5.12e2[5.12*10的2次方], 5.12e-2[5.12/10的2次方]
  4. 通常应使用 double型, 因为 double 比 float 更精准
  5. 注意浮点数使用陷阱
    1. 计算后的浮点数是 一个近似的结果, 不能直接比较
    2. 但是可以通过和 理想值求差值 当差值小于一定范围时(一般是极小的范围) 则可以认为两数相等
    3. 但是 直接赋值的浮点数 是可以直接判断
posted @   鲲特牌  阅读(296)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示