Java基础 Day01

计算机语言

  1. 低级语言:更接近于计算机的语言
    • 机器语言: 只由0和1组成
    • 汇编语言: 包含一些助记符
  2. 高级语言-更接近于人的语言:
    • 面向过程的: C
    • 面向对象的: C++、Java、C#

Java简介

Java是一门高级编程语言,由sun公司在1995年推出的;

2009年sun公司被Oracle公司收购;

Java背后的故事:

sun公司,主做嵌入式程序;在1990年左右,市场上智能家电市场会火,James Gosling(高司令)组件了一个技术团队,开发一套通用的智能家电管理系统;初期计划使用C++开发,但是C++由很多缺陷,Gosling计划在C++之上做扩展,发现不合适;后来计划重新开发一个语言,Oak(橡胶树),第一次融入面向对象编程思想,吸收了c++的优点,摒弃了C++的缺点;使用了Oak语言开发通用的智能家电的管理系统;成立了子公司FirstPerson,主推该项目;参与了多次招标,都没有中标,sun公司解散了子公司,项目和Oak语言被搁置;

互联网开始了,初期的互联网访问静态的网页,市场上迫切需要在浏览器中实现动态效果;在浏览器端嵌入程序,轻量级,在网络中可以快速传输的程序;sun公司基于Oak语言开发浏览器端动态效果程序案例,非常受欢迎,计划推出Oak语言;因为Oak已经被注册,更为Java;

Java的logo:

冒着热气的咖啡杯

Java之父:

James Gosling(高司令)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGyneJTt-1622185994196)(1.jpg)]

Java应用场景

1、嵌入式

2、网站后台程序–java重要的阵地

3、移动端:安卓 java

4、大数据:Hadoop 原生语言java

使用Java语言开发的项目:

  • 淘宝网站----------------用Java语言开发的
  • 2)京东网站----------------用Java语言开发的
  • 3)饿了吗?-----------------用Java语言开发的
  • 4)摩拜单车----------------用Java语言开发的
  • 5)银行系统----------------用Java语言开发的
  • 6)ATM机系统---------------用Java语言开发的
  • 7)超市购物系统------------用Java语言开发的
  • 8)结算系统----------------用Java语言开发的

Java语言的特点

简单 易学:相比 c c++

安全: 一套安全机制

面向对象(OOP):最重要 编程思想 抽象

开源:开放源代码

跨平台:跨平台移植(Write once, Run Anywhere)

跨平台

在这里插入图片描述
平台:Windows Linux Unix MacOS 安卓 IOS

不跨平台:

手机 --下载QQ软件

网吧 --下载QQ软件 --数据线–手机上

QQ软件:Windows版本 安卓版本

QQ腾讯主要用c开发的

问题:

1、不方便用户使用

2、人员成本 时间成本大

概念:

使用Java开发的一套程序无需修改就可以在任意平台运行,这就是跨平台;

跨平台的原理:
在这里插入图片描述
JVM(Java虚拟机)是跨平台的核心,将Java程序翻译成当前操作系统可以理解的指令,当前操作系统根据程序执行得到结果;

1、不同平台上的JVM是同一个吗?

不是,不同平台对应自己版本的JVM

2、Java是跨平台的?对

JVM是跨平台的?不对

Java的三大平台及版本

在这里插入图片描述

Java环境的安装配置

1. JVM、JRE、JDK

JVM:Java虚拟机 是跨平台的核心

JRE(Java Runtime Enviroment):java运行时环境,JRE=JVM+核心类库

JDK:java开发工具包,JDK=JRE+开发工具

在这里插入图片描述在这里插入图片描述

2. JDK的版本
  • JDK1.0-JDK1.1-JDK1.2

    • J2SE: 标准版本 基础版本 Java基础语法
    • J2ME:移动端的版本
    • J2EE: 企业级版本
  • JDK1.3-JDK1.4-JDK1.5(JDK5)

    • 里程碑式的版本
    • 1.5新特性
      • JavaSE: 标准版本 基础版本 Java基础语法
      • JavaME:移动端的版本
      • JavaEE: 企业级版本
  • JDK6-JDK7

    • JDK7是oracle公司收购sun公司之后推出的第一个版本
  • JDK8

    • 市场上使用较多JDK8的版本
    • 授课时使用的版本
    • 新特性-Lambda表达式
  • JDK9-JDK10-JDK11…

    • 新版本市场使用不多
    • 新版本中可能还存在一些现在还没有发现的问题
3. JDK的安装

检查是否安装过JDK:java -version

如果没有则进行安装:

本课程中使用Java1.8版本,小版本号不限制

1、准备安装包

www.oracle.com 下载 jdk-8u45-windows-x64.exe

2、安装JDK

双击运行安装包

更改安装路径:

A. 默认安装在c盘,c是系统盘,不建议将自己的软件安装在c盘;

B. 软件资源不好管理

在除c盘之外的其他盘下新建一个soft目录,以后安装的所有软件都安装在此目录下;

注意:

1、路径中不要出现中文和特殊字符 空格

2、已经安装过一个公共jre,后边的jre可以安装也可以不安装;

3、安装完之后,在安装目录下的bin目录中就可以使用了,其他目录无法使用;

3、java环境变量配置

环境变量:

  • 什么是环境变量:
    • 当我们在命令行中输入一些命令时,事实上是在运行计算机中的某一个小程序,当你输入了一个程序名之后, 计算机会尝试在一些指定的路径中查找是否有该名字的程序,如有,则运行该程序,如都找不到,则报错:command not found
    • 我们可以通过配置环境变量的方式,通知计算机去哪些目录下查找目标程序。方式时配置一个叫做PATH的变量,它的值就是所有需要查找的路径

此电脑(我的电脑)-》右键-》属性-》左侧有高级系统设置-》右下角环境变量

用户变量:只对当前用户生效

初期学习建议使用用户变量

系统变量:对所有用户生效

Path:

可以在Path变量中指定jdk bin目录下的内容,这样在任意一个目录下都可以访问到bin目录下的内容

JAVA_HOME:

自定义

新建一个变量,变量名:JAVA_HOME;变量值:JDK的安装目录(具体到bin目录的上一级目录即可)

在Path变量中来引入JAVA_HOME变量:

%变量名%\bin

%JAVA_HOME%\bin

测试环境变量配置是否成功:

在cmd窗口中,执行java -version命令;

Windows系统的命令窗口

打开命令窗口
  • 方式:

    • 搜索框:cmd 回车
    • 快捷键:Win+r,在对话框中输入cmd
    • 文件夹路径处输入cmd
  • 区别:

    • 方式1和方式2打开cmd,默认的路径
    • 方式3打开,路径为打开cmd的路径
命令提示符
  • 在输入命令的前边位置有一个路径的提示信息

  • 默认:

    • C:\Users\Administrator>
    • C:\Users\当前系统的用户名
    • 如果通过方式3打开,则命令提示符和打开的路径一致的
  • 命令提示符中的路径表示当前执行命令的位置

常用的Windows命令
  • 切换盘符

    • 命令:盘符:
    • 例如:切换到d盘 d:
    • 盘符大小写均可
  • 切换路径

    • 命令 :cd(change directory)
    • cd 路径
    • 例如:D:\01-JDK\jdk8>cd D:\01-JDK\jdk6
  • 查看当前路径下所有的目录和文件

    • 命令:dir
  • 路径

    • 绝对路径:
      • Windows:以盘符开头的路径
      • 例如:D:\01-JDK\jdk8>cd D:\01-JDK\jdk6
      • 例如:北京市海淀区南三环西路甲18号几门几单元
      • 优势:完整、准确
      • 劣势:长
    • 相对路径:
      • 相对当前路径而言
      • 例如:去一下702
      • 例如:D:\01-JDK>cd jdk6
      • 优势:短、简单
      • 劣势:以当前位置为前提,当前位置改变,则相对路径失效
    • … 表示父目录或上一级目录
      • 例如:D:\01-JDK>cd …/soft

入门案例

运行程序输出”Hello World”

  1. 在code目录下,新建一个文本文档

  2. 修改文件名为Demo,文件后缀修改为.java

  3. 使用记事本将Demo.java文件打开

  4. 在文件中定义一个类 class

    1. class 类名{}
    2. 类名可以自定义
    3. {}:表示范围,要求必须是一对
  5. 在类中定义一个main方法-主方法 主函数

    1. 如果类中没有main方法,则编译时不会报错但是运行会报错;
    2. main程序的入口,main方法的写法是固定,记住就可以了;
    3. public static void main(String args[]){}
  6. 在main方法中写输出语句

    1. System.out.println(“Hello World!”);

注意:在Java中一行代码结束需要以分号结尾;

在这里插入图片描述

程序的编译和运行

编译:将人写的Java程序翻译成当前操作系统可以理解的指令

命令:javac

格式:javac 文件名称(.java)

如果报错:

  1. 不是内部或外部命令 -> 说明本地配置的java环境变量失败,或者配置的路径是JRE的路径
  2. 提示文件中某个位置的字符不对-> 说明代码写错了,需要根据提示修改代码,再重新编译

注意:

1、要在code目录的地方来打开cmd窗口

2、编译之后产生了一个class文件(字节码文件)

运行:

基于生成的class文件来运行程序

命令:java

格式:java 类名(不加后缀)

总结:

Demo.java–编译(javac)–>Demo.class–运行(java)–>结果

在这里插入图片描述

不同平台上通过javac命令编译的.class文件是相同的,实现跨平台是通过不同平台上安装的JVM执行引擎来实现的。

练习:

写Demo2.java,输出”I Love JAVA!”

注意的问题:

1、java文件如果修改了要重新编译运行才能生效

2、Java文件名和类名必须一致吗?-可以不一致

如果不一致,则编译生成的字节码文件名是和类名保持一致的;

运行时也应该指定为类名

3、如果定义类时加public修饰,则类名和文件名必须一致

4、一个.java文件中能否定义多class?

可以定义多个类,但是一个.java文件中只能有一个被public修饰的类

5、java严格区分大小写

  • 注意单词拼写正确,要求所有符号英文半角符
总结:
  1. Java概述
  2. Java特点-> 跨平台原理
  3. 安装JDK,JVM,JRE,JDK关系
  4. 第一个Java程序
    1. 代码的构成
      1. class
      2. main
      3. 具体的代码
    2. 编译到运行的过程
    3. 代码的细节和需要注意的问题

有基础可以做一下练习题

递归相关问题

  1. 汉诺塔谜题

    汉诺塔是一个数学谜题。有3根柱子(或木桩、塔)和一些可以在柱子之间来回移动的不同大小的圆盘。开始时,所有的圆盘按照从小到大的次序自上而下叠放在一根柱子上,形成一个圆锥结构。现在要求把整叠圆盘移动到另一个柱子上,移动时要遵循下面的规则:

    • 每次只能移动一个圆盘
    • 每次移动,只能移动柱子最上面的一个圆盘到另一根柱子(这根柱子上有可能已有圆盘)。
    • 任何时候不能出现大圆盘在小圆盘上方的情况

    请用代码实现解迷过程。

  2. 任意给定一个数组,请用递归方法判定数组中的元素是否是有序的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值