Java 第一天(纯干货)(带你14天了解并掌握Java SE)

今日内容

  • Java概述、开发环境搭建
  • Eclipse的概述、配置及使用
  • 注释、关键字、常量、变量、数据类型、标识符

01. Java语言概述

  • Java语言是谁在哪个公司开发的?
  • Java语言平台分为?
总结:
    1.  詹姆斯高斯林,在Sun公司开发,现在被Oracle收购
    2. 
        JavaSE: 是Java语言的基础语法,可以实现一些桌面应用的开发(坦克大战)
        JavaME: 用于嵌入式设备的开发(Nokia手机小游戏)
                    已经退出历史舞台了
        JavaEE: 用于web方向网站的开发(京东,淘宝..)

                网站:基于前台页面,和后台逻辑交互配合开发出来的一套系统。
                网页:就是一套用于显示数据的页面,数据基本都是固定的。
  • 什么是jdk?
    jdk就是Java给我们开发人员提供的一套【工具】包,java.exe javac.exe javadoc.exe
  • 什么是jre?
    jre当中包含了我们所需要的【核心类库】,简单理解就是Java已经写好的代码,我们可以直接使用的。

        jre当中包含了JVM(java虚拟机).
  • 什么是jvm?
    JVM(虚拟机),是我们运行Java程序需要的一个【载体】【平台】

    换句话来说,如果电脑中没有安装JVM,是不能运行Java程序的.
  • 三者之间有什么关系?
总结: 包含关系
        JDK -> JRE -> JVM.
  • Java语言的强大之处
* Java语言具备跨平台性(一次编译,到处运行)

    问题:java是如何实现跨平台的?

            是因为在不同的操作系统都安装了对应版本的Java虚拟机.

    问题:JVM自身是否可以跨平台?

            不可以!
  • jdk的平台版本
    * jdk1.5    里程碑
    * jdk7 8    市面上最常见的两个版本,也是最稳定的两个版本
    * jdk11     18年最新的版本

02. Java开发环境搭建

  • A:JDK的下载

    • a:官网 http://www.oracle.com
    • b:演示下载流程
  • B:JDK的安装

    • a:傻瓜式安装
    • 双击安装程序,然后一路next即可(但是不建议)
    • b:安装的推荐方式
    • 安装路径不要有中文或者特殊符号如空格等。
    • 所有和开发相关的软件最好安装目录统一。
      • 举例:我的JDK安装路径
        • D:\develop\Java\jdk1.7.0_72
    • 当提示安装JRE时,可以选择不安装。
    • c:演示安装流程
    • 可以先在d盘建立一个文件夹develop
    • 然后演示安装过程
  • C:验证安装是否成功

    • a:通过DOS命令,切换到JDK安装的bin目录下。
    • D:\develop\Java\jdk1.7.0_72\bin
    • b:然后分别输入javac和java,如果正常显示一些内容,说明安装成功
  • D:为什么要配置path环境变量

    • 就是为了在任意盘符下都能访问到bin目录中的工具.
    • 两种配置方式

总结:

1: 无脑配置(不建议)

        直接复制绝对路径到path当中

            弊端:这种配置方式,在就业班学习tomcat服务器的时候,配合会出现冲突问题。

2: JAVA_HOME(建议)

        1. 打开电脑 -> 右键 -> 属性 -> 高级 -> 环境变量
        2. 在系统变量当中,新建一个JAVA_HOME,内部存放jdk的安装目录,不要进入到bin当中
        3. 找到path -> 编辑 ->  %JAVA_HOME%\bin;
  • 10分钟时间安装jdk并配置环境变量

03. Eclipse的概述

  • A: Eclipse的下载安装
    • a: 下载
      • http://www.eclipse.org
    • b: 安装
      • 只需要解压后就能使用
        • 纯绿色版
    • c: 卸载
      • 只需要将文件夹删除就可以了
    • d: 注意
      • 开发软件的安装目录中,尽量不要出现空格与中文
  • B: Eclipse的特点

    • a: 免费
    • b: 纯Java语言编写
    • c: 免安装
    • d: 扩展性强
  • IDE(集成开发工具)

    • eclipse(基础班)
    • myeclipse
    • IDEA(就业班)

04. Eclipse的基本使用(HelloWorld案例)

  • 基本使用(工作空间&新建工程&编译运行)
  • A: Eclipse的工作空间和新建工程
* a: 工作空间
    *  其实就是我们写的源代码所在的目录                     
* b: 创建工程(项目)
    * 右键/Package Explore 空白区/new /Project/Java Project/输入项目名称如day01/    
* c: 创建包
    * 打开上面建立的day02项目/右键/new/package/
        在弹出的对话框的name中输入包名,如:"com.itheima.tests"/finish
* d: 创建类
    * 创建一个java类:右击包名/new/class/在对话框的name中输入类名/finish
  • B: 编译与执行
* a: 编译
    * 自动编译,当java代码保存的时候,自动 编译class文件
* b: 运行
    * 方式1:点击菜单工具栏中的 绿色带有三角形的 run按钮 运行
    * 方式2:点击菜单栏中Run, 点击Run 运行  快捷键是 ctrl+F11
    * 方式3:选中要运行的java文件,或者在编写代码的空白区域,右键选择 Run As --> 运行java程序
  • 5分钟时间练习, 创建一个Java类并运行

05. Eclipse工作空间的基本配置

  • A:行号的显示和隐藏

    • 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
    • 隐藏:把上面的动作再做一次。
  • B:字体大小及颜色

    • a:Java代码区域的字体大小和颜色: window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java -- Java Edit Text Font
    • b:控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
    • c:其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font ** 只需要配置此处即可 **
  • C:窗体给弄乱了,怎么办?

    • window -- Perspective -- Reset Perspective
    • window -- Perspective -- save Perspective
  • D:控制台找不到了,怎么办?

    • Window--Show View—Console
  • 5分钟时间完成Eclipse的基本配置

06. Eclipse中项目的删除和导入

  • A:删除项目
    • 选中项目 – 右键 – 删除
      • 从项目区域中删除 从硬盘上删除 --> 选项勾上
  • B:导入项目

    • 在项目区域右键找到import
    • 找到General,展开,并找到
    • Existing Projects into Workspace
    • 点击next,然后选择你要导入的项目
    • 注意:这里选择的是项目名称

    • 熟练完成JDK的卸载和安装

    • 熟练配置Path环境变量
    • 能够在eclipse上,熟练的创建工程、包、类
    • 能够在eclipse上完成HelloWorld案例的编写,并可以看得懂,加入注释说明。

07. 注释的概述和分类

  • 什么是注释?
  • 注释分为哪些?
  • 分别如何编写?
  • 注释的注意事项?
总结:

    1: 注释就是对代码的一种解释,方便我们程序员更好的去阅读代码
    2: 
        A. 单行注释
        B. 多行注释
        C. 文档注释 (TODO:后续课程讲解)
    3:
        单行注释 : //
        多行注释: /* */
        文档注释: /** */
    4:

        注释当中,只有是单行注释允许嵌套

HelloWorld详解: (必掌握!!!!!)

    // 这是通过class定义了一个类,类名叫HelloWorld  
    public class HelloWrold {
        // 这是程序的入口点
        public static void main(String[] args) {
            // 这是打印了一句话
            System.out.println("HelloWorld");
        }
    }

08. 关键字的概述和特点

  • 什么是关键字?
  • 关键字有什么特点?
总结:
    1: 被java赋予特殊含义的单词 
    2: 所有字母全部小写, 高级编辑器当中, 有颜色的高亮显示.
  • 内容辅助键
>* 辅助键
    * alt + /
        * 生成main方法
        * syso输出语句

>* 快捷键
    * 单行注释
        * Ctrl + /   --> 取消的话, 重复操作即可
    * 多行注释  
        * Ctrl + Shift + / -> 取消的操作, Ctrl + Shift + \
    * 格式化快捷键    
        * Ctrl + Shift + F

09. 常量的概述和分类

  • 什么是常量?
  • 常量的分类?
总结:
    1: 在程序的执行过程中,其值不可以发生改变的数据
    2: 
        整数常量:所有整数
        小数常量:所有小数

        布尔常量:true  false
        字符串常量:被双引号括起来的内容
        字符常量:被单引号括起来的内容,内部只能存储一个字

        -------------------------------------
        空常量:    今天暂不讲解,数组部分讲解 null

10. 变量的概述和定义格式

  • 什么是变量?
  • 变量的作用是什么?
总结:
    1: 在程序的执行过程中,其值在【某个范围内】可以发生改变的数据

    2: 就是在程序中创建了一块内存空间(小盒子),用来记录不断发生改变的常量
  • 变量的定义格式
数据类型 变量名 = 初始化值;

byte abc = 10;

11. 数据类型概述和分类

  • 为什么要有数据类型?
  • (基本)数据类型的分类为?
总结:
    1:  Java是强类型语言,对于每一种数据都明确了具体的类型,并分配了不同大小的内存空间.
    2:  
        整数类型:(使用最多的是int)
            byte        1个字节        -128~127
            short       2个字节        
            int         4个字节        
            long        8个字节
        (浮点)小数类型:
            float(单精度)      4个字节
            double(双精度)     8个字节
        布尔类型:
            boolean     1个字节    true false
                            回答:理论上来说,八分之一个字节就能表示他的大小,但是计算机当中最小的存储单位是字节,所以它应该占1个字节。
        字符类型:
            char        2个字节    0~65535

            // a = 97
            // A = 65
            // 0 = 48
            char c1 = ‘a’;
            char c2 = 65;
            char c3 = 48;

注意:
    所有整数默认都是int类型       
    所有小数默认都是double          
    定义float类型变量应该加F的标识
    定义Long类型变量应该加L的标识,建议使用大写.

12. 标识符的组成和注意事项

  • 什么是标识符?
  • 标识符的组成规则为?
  • 标识符的注意事项?
总结:
    1: 就是自己给类,方法,变量...起的名字
            大白话:自己起的名字
    2:
        26个英文字母,大小写
        数字0-9
        _ $ 

    3:
        A. 关键字不能最为标识符
        B. 数字不能开头
        C. 中间不能以空格隔开

13. 变量的定义和使用

  • 案例演示: 定义8种类型的变量并打印
  • 创建类, 创建包的快捷键
* byte,short,int,long,float,double

    * 问题:为什么float占4个字节,long占8个字节,float却比long要大呢?

        * 因为整数和小数,底层的二进制存储结构不同.

            System.out.println(Float.MAX_VALUE - Long.MAX_VALUE);

* char,boolean

14. 变量定义的注意事项

总结:
     1. 变量名不允许重复
     2. 变量[使用之前]必须完成初始化
     3. 一条语句可以定义n个变量,但是中间需要通过逗号隔开

15. 类型转换之隐式转换

  • 什么是数据类型的隐式转换?
总结:
    1: 将小的数据,给大的数据类型赋值,可以直接赋值。

    2. 当小的数据类型和大的数类型做运算的时候,会先将小的,提升为大的之后,再做运算。

举例:
    1:  

        int i = 10; // 4个字节
        System.out.println(i);


        double d = i; // 8个字节
        System.out.println(d);

    2:
        byte a = 100;
        int b = 100;
        int c = a + b;

16. 类型转换之强制转换

  • 什么是数据类型的强制转换?
总结:
    1: 将大的数据类型,给小的数据类型赋值,不能直接赋值,需要强转符号。
举例:
    1:

        int i = 100;
        byte b = (byte)i;
        System.out.println(b);

格式:
    (要强转的类型)将要转换的值;

注意:
    如果强转的值, 超过了数据类型的取值范围, 那么结果可能会跟我们期望的结果不同(损失精度)

    byte b = (byte)130;     -->  127
                            -->  -126

    为什么?? 以下内容
    ----------------------------------------------------------

    二进制,八进制,十进制,十六进制    


    二进制到十进制的转换:
        图解.
        注意: 如果想要书写2进制数据的话, 需要以0b开头  --> 0b100  --> 4
        8421码

    二进制中的原码,反码,补码:
        * 原码
            * 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
            * 通过一个字节,也就是8个二进制位表示+7和-7
            * 0(符号位)  0000111               
            * 1(符号位)    0000111
        * 反码
            * 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
            * 1(符号位)    0000111
            * 1         1111000
        * 补码
            * 正数的补码与其原码相同;负数的补码是在其反码的末位加1。 
            * 11111001


        130的补码:

        ‭00000000 00000000 00000000 10000010

        强转后:

        补码: 100000010
        反码: 100000001
        原码: 11111110

            计算:  1      1       1       1       1       1       1       0
                            64      32      16      8       4       2       1
  • 面试题
    byte b1=3,b2=4,b;

    ----------------------
    b=b1+b2;

    1. 因为所有整数默认都是int类型,b1和b2两个byte类型在做运算之前,会先各自提升为int类型,然后再做运算
         两个变量都提升为int类型了,两个int相加,结果还是int,将int数据赋值给byte,不能直接赋值,应该加入强转。

    2. 因为b1和b2是两个变量,变量内部所记录的值是不可控的,有可能相加之后的结果就超出了byte的取值范围      
    ----------------------

    ----------------------      
    b=3+4;
    因为3和4是两个常量,Java有常量优化机制,在编译的时候就会将3和4进行相加,然后看相加的结果是否在byte的取值范围。
    ----------------------


    哪句是编译失败的呢?为什么呢?

猜你喜欢

转载自blog.csdn.net/weixin_42261489/article/details/88074572