初识Java

1. Java的概述

1.1 程序的概述

生活中的程序:

  • 事情进行的步骤、次序
  • 生活中的大白话:流程、手续、套路

计算机中的程序:

  • 计算机在执行任务时,对它所处理的对象以及处理规则的一种描述。是通过程序设计语言来实现的。
  • 普及知识:软件是一个更大的概念,它是包含着程序概念的。

查老师有话说:千万记住,开发程序绝对不能脱离现实!在遇到程序问题,多思考生活中的一些程序思路。

大多数计算机程序都是为了解决现实生活程序不足而产生的。

程序与生活有关,多思考生活中的业务逻辑。

1.2 编程语言概述

指令:完成某件事的每一个步骤。

生活中,指令的下达需要交给专门的人来做;计算机中,指令的下达需要交给计算机来做。

生活中下达命令,对应的人能听懂你在说。计算机是识别二进制(机器语言)的。

  • 汇编语言,利用二进制写了一个程序,专门做简单的“翻译工作”。
  • C语言出现之后,整个程序开发(指令编写)变成了高级语言,实际上高级语言想要使用,需要一个更高级的“翻译官”(编译器)。

主流的编程语言:

  • C语言、C++、C#、Python、Java … …

一般程序员都需要掌握至少5-6种语言,语言的思想都是相通的,要解决的问题也是一样的,所以如果已经掌握了一门语言再去学习会简单。

大多数人都是以一到两门语言为主,其他语言为辅。

1.3 Java语言概述

  • 1990年诞生,Java前身Oak。

    • 詹姆斯·高斯林博士领导开发的一个语言
    • 当时博士在Sun公司工作,该公司的当时认定机顶盒市场非常有价值,打算进军该领域,Green Project工作计划。
    • 最初博士打算用现有的语言来进行开发工作,但是开发过程中,发现现有的语言C和C++,在语法和使用方面非常的~~~。于是乎,为了更好的进行工作,领导开发了一个新语言。
  • 但由于该计划“破产”,计划终止,Oak被雪藏了。

  • 1995年,Java诞生。

    • 探索寻找一种能够在浏览器中进行编程开发的语言。Oak ->Java

    • J2SE -> Java SE

    • J2EE -> Java EE

    • J2ME -> Java ME

  • J2SE (Java 2 Platform,Standard Edition):Java标准版本

    • (同样作为核心部分)用于桌面程序开发领域
    • Windows系统内使用的程序一般都是C++开发的,有其先天优势
  • J2EE (Java 2 Platform,Enterprise Edition):Java企业版

    • (基于SE扩展的部分)用于服务器开发领域
    • Java的生态可以说是最完备的
  • J2ME(Java 2 Platform,Micro Edition):Java微终端版本

    • (基于SE扩展的部分)用于移动端类的领域
    • 安卓的出现,直接将该领域市场和IOS二分天下
    • 安卓底层大量的API都是基于Java写的
    • 2017年,Google 将 Kotlin 语言定义官方开发语言。

2. 掌握Java开发环境的搭建

2.1 JDK和JRE的概述

JDK 的全称是 Java Development Kit,即 Java 开发工具包,是 Sun 公司提供的一套用于开发 Java 应用程序的开发包,它提供了编译、运行 Java 程序所需的各种工具和资源,包括 Java 编译器、Java 运行时环境(JRE),以及常用的 Java类库 等。

JRE,全称 Java Runtime Environment ,Java 运行时环境。它是运行 Java 程序的必须条件。如果只是运行Java 程序,可以只安装 JRE,无需安装 JDK

2.2 JDK的选择

1.选择厂家

  • Oracle JDK
  • Open JDK(Sun公司搞出来的开源版本,比正式版少一些商业特性)
    • 亚马逊
    • IBM
    • RedHat
    • 华为
    • 阿里巴巴
    • Tencent

2.选择版本

  • JDK 6
  • JDK 7
  • JDK 8

你发任你发,我用Java 8.

技术选择应该选择稳定、成熟,而不是任由自己的喜好,或者一味追求最新的。

2.3 下载和安装

Oracle JDK 8。

开发第一个Java程序 20/12/31

1.DOS系统

1.1 什么是DOS系统?

DOS系统,全程Disk Operating SYstem,磁盘操作系统,它是一种较为传统的操作系统。

没有携带可视化界面,无法使用鼠标。在DOS系统中,需要使用DOS命令来执行任务/工作(复制文件、删除。。。)

现今的Windwos操作系统,内置了一个简易的DOS系统,为了方便开发者来使用。

WINDOWS键 +R键 ->弹出运行窗口

注意,进入DOS系统最好采用管理员身份进入,以防止一些命令无法使用,或者权限不足。

WIN10一般进入都是非管理员身份,这时候windows键打开开始菜单,然后输入cmd,再右键->以管理员身份打开,即可。

1.2 DOS系统常见命令

进入到DOS系统后,界面上显示的包含有:

  • 版权声明
  • 类似于C:\Windows\system32>的一个位置
    • 代表的是你进入了DOS系统的哪个位置
  • 一个光标在闪烁
    • 等待你输入DOS命令
1.2.1 切换目录

执行命令,符号之类的采用英文,输入完之后敲击回车即可。

  • 切换磁盘
    • 盘符名: 类似D:
  • 在同一个磁盘切换目录
    • cd 要切换到的目录地址
      • 例如:我要切换到C盘的windows下的system32目录下
      • cd c:\windows\system32 (绝对路径)
      • 例如,我现在处于C盘的Windows目录下,我想进入windows下的Setup目录下
      • cd Setup (相对路径)
    • cd .. 返回上一级目录
      • ..是每一个目录下都隐藏着的目录,它代表上一级目录
    • cd \
      • \代表一个磁盘的根目录

利用Tab键可以有效的解决输错问题,它能够自动补全

实现原理:依赖在某个目录下按名进行模糊查询实现的。

1.2.2 查看当前目录下的所有内容

dir(directory,目录)

  • dir标注为目录,后面的是文件或目录名,前面的时间是最后修改时间
1.2.3 清屏命令

cls清理命令行的历史记录

1.2.3 运行程序

在cmd中运行程序:

  • 1.直接输入程序的名字
  • 2.找到改程序的位置,然后在当前目录下输入程序名字
    • 你也可以先通过windows系统找到改程序位置,然后在地址栏输入cmd,回车后可以直接打开DOS系统并切换到了当前目录下。
  • 3.直接输入改程序的所在路径,例如:d:\develop\java\jdk1.8.0_202\java.exe

2.配置JAVA_HOME

2.1 环境变量是什么?

环境变量(environment variables)一般是在操作系统中用来指定操作系统运行环境的一些参数。

一般环境变量中的变量信息是操作系统中各个程序可以公用的。

2.2 path环境变量

path环境变量的作用:

  • 当我们在Windows或DOS中运行一个程序,而没有告诉他这个程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还会到path环境变量中寻找。

**编辑环境变量的方式:**开始菜单中搜索环境变量,在搜索到的结果中,选择编辑系统环境变量 -> 系统属性的高级选项卡中 -> 电机下方的环境变量 按钮,即可进入环境变量列表界面。根据你的需求选择某个环境变量进行编辑即可。

2.3 配置JAVA_HOME

在系统变量中,我们可以找到Path环境变量,双击可以进入编辑状态。

在Path环境变量的目录列表中,可以新建一个新的程序地址,例如:我的Java.exe在D:\Develop\Java\jdk1.8.0_202\bin目录下,那就把这个目录存储在Path路径中。

但是仅仅如此做,后期我们安装了一些需要使用Java的程序时,它们在Java安装位置时是找不到,可能导致它们无法运行。

我们可以在环境变量中配置一个 JAVA_HOME,然后存储java安装地址。

我们发现,Path环境变量中刚配置的java.exe程序地址,和JAVA_HOME变量值仅差一个bin目录的区别,为了提升该变量的复用性,我们可以在Path环境变量中引用JAVA_HOME变量。

当未来,Java安装目录更换了之后,我不需要又更改Path内的地址,又更改JAVA_HOME

现在只需要改JAVA_HOME值即可。

配置好之后,重新打开DOS系统,原有的窗口全部关掉。

3.开发第一个程序

程序员、程序猿、程序媛

Hello World!~~~

我们通过Java语言的语法给计算机下达一系列的指令。

3.1 使用记事本开发的步骤

1.创建一个文本文档,命名为 HelloWorld.

2.使用Sublime Text或者notepad ++打开该文档

3.编写Java语言的语法指令

public class HelloWorld{
   
	public static void main(String[] args){
   
		System.out.println("Hello World!~~");
	}
}

Ctrl+Shift+K

4.更改文本文档的扩展名为.java(.java是java代码的扩展名)

5.运行该程序

  • 1.编译(将Java代码翻译为计算机能够识别的语言)
    • javac.exe (java compiler, java编译器)
    • javac HelloWorld.java
    • 编译后,会产生于个HelloWorld.class文件
  • 2.运行(运行翻译好的语言内容)
    • java.exe
    • java HelloWorld

3.2 基本结构语法的认识

一般Java类名/源文件名应该遵循大驼峰命名法/帕斯卡命名法。

首字母要大写,如果有多个单词,每个单词的首字母都要大写。

//类声明(声明一个类),因为Java中以类为基本单元
//class关键词后修饰的内容,称为类名,应遵循大驼峰命名法
public class HelloWorld{
   
	//方法声明(声明一个方法),因为Java中执行功能时需要以方法为单位
    //main方法,语法固定,它是Java程序的程序入口(以它为起点)
    //static:静态的	void:空、无效的	main:主要的
    public static void main(String[] args){
   
        //功能指令
        //利用系统输出,打印后换行
		System.out.println("Hello World!~~");
	}
}

这些转义符号必须放在字符串中,双引号中。

转义符号 作用
\n 换行
\t 一个制表位(会动调整一定的空间)

注释:

  • // 单行注释
  • /* 多行注释 */
  • /** Java Doc (文档)注释 */

注释不会影响代码性能,编译过程中,注释就已经被移除了。

程序在CMD中运行时,需要注意中文乱码问题。CMD支持GBK编码格式

所以我们可以用记事本,另存为ANSI格式编码。

3.3 虚拟机和跨平台原理

write once,run anywhere

为什么以前其他语言,C语言等没有实现跨平台呢?

原因是:编写程序要经过编写源代码、编译源代码、运行程序三个大阶段,其中编译好的源程序是对应于某个平台的专属版本,所以不同平台就需要准备很多份。

但是Java编写的程序编译之后,并非是直接运行在某个平台上,而是运行在JVM(Java虚拟机)上,同样也是由于JVM的原因,跨平台、垃圾回收等功能就可以使用了。

所以你只要准备好适配于不同平台的JVM就可以保证JVM到处运行了。

Java如何实现的跨平台?[面试题]

Java不同于其他语言,直接将源代码编译为对应平台的机器码(二进制文件)。它是将源代码编译为字节码文件,然后将字节码文件运行组在JVM(JVM包含在JRE中)上,由JVM在执行过程中,转换为对应平台的机器码。

所以只要在对应平台上安装好Java环境,Java程序就可以运行了,这就是Java实现跨平台的原理。

4.反编译

编译: 将源文件(.java)转换成字节码文件(.class)的过程称为编译。

反编译: 将字节码文件(.class)转换回源文件(.java)的过程称为反编译。(常用有Jad、FrontEnd、jd-gui)

5. Eclipse使用

5.1 IDE概述

IDE(Integrated Development Environment,集成开发环境),集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。

在Java开发领域有什么常用IDE:

  • Eclipse:Eclipse基金会的开源产品,在Java领域里可以算得上应用最广的产品

  • MyEclipse:基于Eclipse演化出的一个商品产品,更适合Java EE开发

  • Intellij IDEA:JetBrains公司开发的IDE中的一种,非常适合现代化开发

  • VS Code:微软开发的编辑器,安装相应的插件可以实现IDE的效果

  • … …

5.2 Eclipse

  • workspace工作空间
    • 是用来存放Eclipse中开发的项目的
    • 每个工作空间相互独立,配置等方面不受影响
  • project 项目/工程
    • 在Eclipse的工作空间中,编写Java程序是以项目/工程为组织单元的
    • 例如,要开发一个微信,那么就可以创建一个项目wechat,在该项目中编写大量的代码源文件。

使用Eclipse开发第一个Java程序步骤:

  • 新建Java工程/项目

    • File菜单 -> New -> Java Project
    • 在导航区域空白处右键 -> New ->Java Project
    • JRE System Library :JRE的系统库,Java中定义了很多API(功能接口),直接可以使用
    • src: source,编写Java源代码
  • package 包名要小写

6.变量和常量

6.1 程序从安装到运行的原理

6.1.1 计算机核心硬件介绍

  1. CPU
    • 中央处理器,计算机的核心
    • 用来处理/计算数据
  2. RAM(内存)
    • 用来临时存储数据
    • 程序在运行的时候,就是内存中进行数据处理
    • 速度快,空间小,价格高
  3. ROM(硬盘/磁盘)
    • 用来持久性存储数据
    • 程序在安装完成后,或者在运行结束后应该将数据持久化到ROM
    • 速度慢(IO),空间大,价格低

6.1.2 程序安装的原理

将程序文件存储到ROM

我们在平时为了使用 QQ 程序,首先要做的就是下载一个对应的安装程序,然后通过安装程序来引导我们或自动将 QQ 的一系列程序文件解压并存储到 硬盘 的指定位置。

6.1.3 程序运行的原理

CPU将ROM上的QQ的程序数据复制到RAM中,QQ在RAM中会占据一块属于它的内存空间

每个程序在运行过程中都会在内存中"占据"一块属于自己的空间,而这块空间的大小及内存的总大小也是决定程序是否可以自如的"施展手脚"。

所以一般我们想要同时运行更多程序而不卡时,都优先考虑到买大内存的计算机。

那 QQ 这个程序是怎么保存用户的 QQ 号码 和 QQ 密码 的呢?

  1. 在内存中为 QQ 号码和 QQ 密码各自分配一块空间
    • 在 QQ 程序结束之前,这两块空间是由 QQ 程序负责管理的,其他任何程序都不允许使用
    • 在 QQ 自己使用完成之前,这两块空间始终都只负责保存 QQ 号码QQ 密码
  2. 另外为了能够方便找到该内存空间,分别使用一个 别名 标记 QQ 号码QQ 密码 在内存中的位置
  • 有一些数据为了能够在程序内存中方便实用,会将它们定义为变量
  • 变量就是某些数据在对应程序内存中的一块空间表示

6.2 变量

6.2.1 概述

变量是能表示可变状态,并且具有存储空间的抽象概念。

6.2.2 变量组成

  • 1.数据类型

    • 按照数值和非数值划分:
      • 数值
        • 整数:byte、short、int、long
        • 浮点数:float、double
      • 非数值
        • 布尔型:boolean
        • 字符型:char(单引号 引起来的 只能单符号)
        • 一种特殊的类型,字符串类型 String(任何用双引号引起来的)

    Java中将int和double分别作为整数和小数的默认类型,意味着你在Java中写了一个10,Java会将它存储为int类型

  • 2.变量名

    变量名可以说是未来使用变量的关键,所以它也有一定的命名规范

    • 变量名不能使用关键字,保留字

      • 关键字:public、class … …,它们是Java中赋予了特殊含义的单词
      • 保留字:goto、var … …,Java还没用,但是未来很有可能用的
    • 变量名可以由字母、数字、下划线、美元符号组成,但数字不能开头

    • 变量名应该见名知意(为了能够区分对应变量存储数据的含义)

    • 变量名应该遵循驼峰命名法(为了区分多个单词)

      • 小驼峰:首字母小写,如果有多个单词,后面的每个单词首字母大写(变量)
      • 大驼峰(帕斯卡命名法):每一个单词的首字母都大写(应用于类名)
    • 变量名可以遵循下划线连接法(蛇形命名法)

      单词都小写,多个单词之间使用下划线连接,例如:user_password

    • 不要将拼音和英文混合

6.2.3 变量的使用

常见的使用方式,有两种:

  1. 先声明变量,再赋值

    //数据类型 变量名;
    String name;
    //赋值
    name = "小明";
    
  2. 生命变量的同时,赋值

    //数据类型 变量名 = 变量值;
    String name = "小红";
    

    其实还有别的定义方式,例如:String name1,name2,name3 = “小明”;

在定义完变量之后,可以用于输出、计算等行为。

6.3 常量

在Java中,其值不能改变的变量被称为常量。常量被final修饰,被final修饰则无法二次修改值。

常量的命名规范:

  • 所有单词的字母都大写,如果有多个单词,用下划线连接
    • 例如:PI、USER_PASSWORD … …

6.4 程序交互

Scanner 使用

Sanner是Java中提供的一个扫描器,它可以帮助我们扫描控制台输入的内容,并将其转换为你想要的类型值。

  1. 导入Scanner

    在你想使用Scanner的类中,添加一行导入代码,加在类声明和package之间

    package demo;
    
    import java.util.Scanner;
    
    public class Demo{
         
    
    }
    
  2. 创建Scanner对象

    Scanner scan = new Scanner(System.in);
    
  3. 使用它的API(功能)

    int age = scan.nextInt();			//整数
    double money = scan.nextDouble();	//小数
    String name scan.next();			//字符串
    

    可以添加一些输出语句来辅助。

    System.out.print("输入年龄:");
    int age = scan.nextInt();			//整数
    
    System.out.print("输入余额:");
    double money = scan.nextDouble();	//小数
    
    System.out.print("输入姓名:");
    String name scan.next();			//字符串
    

注释的双斜线与注释内容之间,有且只有一个空格。

7 常用的运算符

7.1 类型转换

在Java中存在自动数据类型转换和强制数据类型转换。

  • 自动数据类型转换:(取值范围小)精度低的类型可以自动转换为精度高的类型

    • double num = 10;
  • 强制数据类型转换:(取值范围大)精度大的类型无法直接转换为精度低的类型

    • int num = (int)10.5;

类型转换也不是万能的,Java前期可以转换的的就是byte、short、int、long、float、double、char这些。

字符的秘密~~

ASCII码表,a是97、A是65 … … 以此类推

7.2 赋值运算符

=在各种编程语言中,除了极个别的语言,不再表示相等,而是表示赋值。

//读法:将数字10赋值给变量num
//将等号右侧的赋值给等号左侧的
int num = 10;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值