Day01_02_初识Java

1. 计算机基本概念

1.1计算机组成

计算机由计算机硬件计算机软件组成

  • 计算机硬件:你的眼睛能看的见, 你的手能摸得着的东西
    • 中央处理器(CPU)
      • 由运算器和控制器组成
    • 存储器
      • 内存: 内存条(代数, 睿频)
      • 外存: 硬盘(SSD: 固态硬盘, HSD: 混合盘, HDD: 机械硬盘), U盘
    • 输入设备
      • 键盘, 鼠标
    • 输出设备
      • 显示器
  • 计算机软件:能在计算机上运行的程序
    • 系统软件
      • Windows操作系统, Mac操作系统, Linux操作系统
    • 应用软件
      • 概述: 我们程序员用编程代码开发的软件
      • 例如: Typora, 微信, QQ

1.2 语言简介

  • 什么是语言(Language)?
    • 指的就是人与人之间进行沟通,交互的载体,方式
  • 什么是计算机语言(Computer Language)?
    • 指的就是人与计算机进行交互的方式
  • 计算机语言分类

1.机器语言

简单理解:由二进制0,1这样的指令组成
例如:10010表示 加法

2.汇编语言

简单理解: 用一些简单的字母表示二进制序列(0, 1)
例如: add表示 加法.
优点: 文件小, 执行速度快, 可以直接操作计算机的硬件
弊端: 可读性和可移植性相对较差, 对程序员来讲, 门槛较高.

3.高级语言

简单理解: 由一些纯英文字母(包含大小写) 和 一些特殊符号组成.
例如: +表示 加法.
优点: 语法相对简单, 可读性, 兼容性较强, 对程序员来讲, 门槛较低.
弊端: 种类繁多, 每种语言都有自己的语法, 每学一门语言, 都要学习新的语法.

  • 高级语言分类
    • 第一代高级语言:

      例如: C语言, 以面向过程为编程思想, 唯一一门可以直接操作计算机硬件的高级语言

    • 第二代高级语言:

      例如: C++, 以面向对象为编程思想, 没有默认的垃圾回收机制.

    • 第三代高级语言: 目前市场上应用最多的语言

      例如: Java, C#, 以面向对象为编程思想, 而且有默认的垃圾回收机制(GC).

    • 第四代高级语言: 未来的发展趋势, 现在还处于发展初期

      简单理解: 以面向问题编程思想为主, 也就是说: 告诉计算机做什么, 而不是怎么做.
      例如: Siri语言交互, 大数据云平台, 这些势必肯定会用到大数据框架等技术.

1.3 Java语言

概述

  • Sun公司(Stanford University NetWork: 美国的斯坦福大学)在1995年推出的高级编程语言
  • Java之父: 詹姆斯·高斯林(James Gosling)
  • Sun公司在2009年被甲骨文(Oracle)公司给收购了

平台版本

  • 2SE: 标准版, 也是其他两个版本的基础. 在JDK1.5的时候正式更名为: JavaSE.

  • J2ME: 小型版, 一般用来研发嵌入式程序. 已经被Android替代了. 在JDK1.5的时候正式更名为: JavaME.

  • J2EE: 企业版, 一般开发企业级互联网程序. 在JDK1.5的时候正式更名为: JavaEE.

  • 特点

    • 开源
      • 指的是Java源代码是开放的
    • 跨平台
      • 指的是: 用Java代码编写的程序, 可以在不同的操作系统上运行
      • 原理: 由JVM保证Java程序的跨平台性, 但是JVM本身并不能跨平台
      • 图解:


  • 多态

  • 多线程

  • 面向对象

2.JDK和JRE

2.1 概述

  • JDK: Java开发工具包(Java Development Kit), 包含开发工具 和 JRE
    • 常用的开发工具: javac, java
  • JRE: Java运行时环境(Java Runtime Environment), 包含运行Java程序时所需的核心类库和 JVM
    • 核心类库: java.lang, java.util, java.io
  • JVM: Java虚拟机(Java Virtual Machine)
    • 作用: 用来保证Java程序跨平台性的, 但是JVM本身并不能跨平台

2.2图解

2.3 Java环境搭建

  • JDK下载

  • JDK安装

    • 傻瓜式安装(下一步下一步就可以了)
    • 安装路径(以后但凡是安装开发软件, 都要满足两点: )
      • 不要直接安装到盘符目录下
      • 安装路径最好不要出现中文, 空格等特殊符号
    • 目录解释
      目录名称 目录解释
      bin 存放的是编译器和工具
      db 存数数据
      include 编译本地方法
      jre Java运行时文件
      lib 存放类库文件
      src.zip 存放源代码的
  • JDK卸载

    • 直接去控制面板卸载

    小技巧: windows徽标键 + 字母R -> control -> 然后敲回车, 这样可以直接打开控制面板

3.DOS指令

3.1 如何打开cmd

windows键 + r键 —> cmd —> 进入cmd

3.2 常见DOS指令

操作 说明
盘符名称: 盘符切换。E:回车,表示切换到E盘。
dir 查看当前路径下的内容。
cd 目录 进入单级目录。cd eric
cd 目录1\目录2... 进入多级目录。cd eric\JavaSE
cd .. 回退到上一级目录。
cd \ 回退到盘符目录。
cls 清屏。
exit 退出命令提示符窗口。
color /help 设置控制台颜色, 例如: color 3f
ipconfig /all 查看本机IP地址.
ping ip地址或者网址 -t 测试网络连接是否通畅.
shutdown -s -f -t 时间 设置电脑定时关机(时间单位: 秒)
shutdown -a 取消电脑的自动关机计划
java -version 查看你安装的JDK版本的.

Path环境变量配置

4.1 目的

让我们可以在任意目录下都能使用JDK提供的常用开发工具, 例如: javac, java

4.2 步骤

  • 1.新建一个系统变量: JAVA_HOME, 它的值就是你安装的JDK的路径(注意: 不要带bin这一级)
  • 2.在path中配置你刚才设置好的JAVA_HOME环境变量


解释: %JAVA_HOME%表示引入该系统变量的值, 即: C:\Program Files\Java\jdk1.8.0_191

  • 3.测试
    • 方法1:在DOS窗口中输入"javac 或者 java", 能看到对应的一坨指令即可


    • 方法二:在DOS窗口中输入"java -version", 可以看到当前配置的JDK的版本


5.Hello World案例

5.1 Java程序的开发步骤

  • 编写源代码:相当于写一些指令,在后缀名为.java的源文件中编写
    • 这些源代码是我们能看的懂,计算机看不懂的
  • 编译:相当于把我们能看的懂的文件转换成计算机能看的懂的文件。通过javac指令实现
    • HelloWorld.java(源代码文件) —> HelloWorld.class(字节码文件,专门给计算机看)
  • 执行:让计算机来运行指定的字节码文件。通过java指令实现
    • 例如:让计算机执行:HelloWorld.class这个字节码文件
5.1.1 编写源代码
  • E:\liaogongda\code1文件夹中创建HelloWorld.java文件
  • 用记事本打开HelloWorld.java文件
  • HelloWorld.java文件中编写如下内容
public class HelloWorld{
  public static void main(String[] args){
      System.out.println("Hello World!");
    }
}

注意:HelloWorld.java叫源代码文件, 是我们能看懂, 但是计算机看不懂的文件

5.1.2 编译
  • 通过javac指令将HelloWorld.java文件编译成HelloWorld.class字节码文件
  • 在DOS窗口中输入:


5.1.3 执行
  • 通过java指令,让计算机执行HelloWorld.class字节码文件
  • 在DOS窗口中显示:


注意:注意: 直接写文件名即可, 不需要写文件后缀名, 即: .class

5.2 可能会遇到的问题

Bug
  • 概述
    在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)
  • 解决方案
    多看, 多思考, 多尝试, 多总结
遇到的问题
  • 1. 非法字符

注意: 我们使用的符号全部都是英文状态下的符号

  • 2.注意字母的大小写

注意: Java是严格区分大小写的. 也就是说: A和a不是一回事

  • 3.文件后缀名的问题

千万不要出现 HelloWorld.java.txt 这种情况

  • 4.在编译或者运行时, 指令及文件名不要写错了
//编译的格式
javac HelloWorld.java
//运行的格式
java HelloWorld

5.3 Notepad++软件

常用的开发工具
  • 概述
    指的就是我们用来编写代码的程序.
  • 分类
    • windows操作系统自带的记事本.
    • 高级记事本(例如: Notepad++, Editplus)

      功能: 带行号, 关键字高亮显示, 代码折叠.

    • 高级的IDE(集成开发环境)

      指的是集代码的编写,编译执行,调试等功能为一体的软件

      分类:
      Eclipse
      MyEclipse
      IDEA
  • Notepad++软件设置新建文件的格式

6.注释

6.1概述

就是用来对程序进行解释和说明的文字

大白话翻译: 注释是给我们程序员看的, 并不是给计算机看的

6.2 分类

  • 单行注释
//单行注释
  • 多行注释
/*
  多行注释
  多行注释
*/
  • 文档注释
/**
  文档注释
  文档注释
*/

7.关键字

7.1 概述

就是被Java语言赋予了特殊含义的单词.

7.2 特点

  • 关键字是由纯英文字母组成的, 而且全部都是小写的.
  • 常用的开发工具(Notepad++, IDEA)针对于关键字都会高亮显示

7.3 常用的关键字

  • public: 公共的权限, 目前先了解即可
  • class: 表示在创建一个类
  • static: 表示静态的意思
  • void: 表示方法的返回值类型

7.4 定义Java源代码文件的格式

//类名可以自定义.
public class 类名 {
    public static void main(String[] args) {
        System.out.println(这里的内容可以随便写);
    }
}

7.5 补充: 保留字

  • 概述

现在还不是关键字的单词, 但是却具有关键字的意义, 在以后的JDK升级版本中, 可能会被升级为关键字的单词

  • 常见的保留字

goto, const

8.常量

8.1 概述

指的是在程序的执行过程中, 其值不能发生改变的量.

8.2 分类

  • 自定义常量
  • 字面值常量(根据字面意思就可以划分的常量)
    • 1.整数常量

      例如: 1, 2, 3, 11, 22, 521

    • 2.小数常量

      例如: 5.21, 13.14

    • 3.字符常量

      解释: 字符的意思是说只能有一个值, 而且要用单引号括起来
      例如: 'A', 'B', 'c', '10'(这样写会报错, 因为10是由1和0两个值组成的)

    • 4,字符串常量

      解释: 字符串常量值都要用双引号括起来
      例如: "abc", "传智播客", "黑马程序员", "大数据"

    • 5.布尔常量

      解释: 比较特殊, 值只有两个
      true, 相当于正确
      false, 相当于不正确

    • 6.空常量

      解释: 比较特殊, 值只有一个: null, 表示什么都没有
      注意: 空常量不能通过输出语句直接打印

9.变量

9.1概述

  • 在程序的执行过程中, 其值可以在某个范围内发生改变的量就叫变量

  • 从本质上讲, 变量其实是内存中的一小块区域. 例如:

    • 商品的价格(5元,6元,4元)
    • 钟表的时间(5点,6点,6点半)
    • 人们的年龄(0岁,10岁,18岁……80岁)
    • 程序员生涯的职位(开发工程师,开发经理,项目经理,CTO)
  • Java中要求一个变量每次只能保存一个数据,而且必须要明确保存数据的数据类型

    • 已知代码
    System.out.println(10);
    System.out.println(10);
    System.out.println(10);
    
    • 需求:把所有的10改成20
    // 方法一:一个一个改
    System.out.println(20);
    System.out.println(20);
    System.out.println(20);
    
    //方法二:采用变量实现
    //int a =10;
    int a = 20;
    System.out.println(a);
    System.out.println(a);
    System.out.println(a);
    
    • 变量的限制
      • 既然变量的值是在某一个范围内发生的那么我们应如何限制呢?
        通过数据类型来限制
      • 我们该如何找到这一块区域呢?
        通过变量名实现
      • 区域内必须有数据
        初始化值
    • 变量的定义格式:数据类型 变量名 = 初始化值;

9.2 示例一:变量入门

  • 需求:定义变量,记录班级的学生人数,并将结果打印到控制台
  • 参考代码
//1. 定义一个Java类, 类名叫: VariableDemo01
public class VariableDemo01 {
    //2. 定义main方法, 作为程序的主入口, 所有代码都是从这里开始执行的.
    public static void main(String[] args) {
        //3. 定义一个int类型的变量, 变量名叫a, 初始化值为: 121
        int a = 121;
        //4. 通过输出语句, 将变量a的值打印到控制台上. 
        System.out.println(a);
    }
}

9.3 数据类型

Java是一种强类型语言,针对每一个数据都给出了明确的数据类型

区分一门语言到底是强类型语言还是弱类型语言的依据是:
看这门语言对数据的数据类型划分是否精细.
如果精细, 则是强类型语言, 如果不精细, 则是弱类型语言.

数据类型的分类
  • 基本数据类型(简称:基本类型)
    • byte,short,char,int,long,float,double,boolean
  • 引用数据类型(简称:引用类型)
    • String,数组,类,接口
数据类型的分类图解
数据类型的取值范围图解
小技巧

1.byte类型的取值范围是: -128 ~ 127,char类型的取值范围是: 0 ~ 65535 2.默认的整形是:int类型, 默认的浮点型(即: 小数类型)是:double类型3.定义long类型的数据时, 数据后边要加字母L(大小写均可), 建议加L4.定义float类型的数据时, 数据后边要加字母F(大小写均可), 建议加F`

格式
  • 方式一: 声明变量并赋值
数据类型 变量名 = 初始化值;

//示例: 声明(定义)一个int类型的变量, 变量名叫a, 初始化值为: 10
int a = 10;
  • 方式二: 先声明, 后赋值
数据类型 变量名;
变量名 = 初始化值;

//示例
//1. 声明(定义)一个int类型的变量, 变量名叫a
int a;                        
//2. 把数字10赋值给变量a    
a = 10;       

9.4 示例二: 定义变量并打印

  • 需求:定义变量, 分别记录上述的8种基本类型数据, 并将变量值打印到控制台上
  • 思路分析
    • 通过声明变量并赋值的方式实现
    • 通过先声明, 后赋值的方式实现
  • 参考代码
    • 方式一: 声明变量并赋值
    //1. 定义一个类, 类名叫: VariableDemo02
    public class VariableDemo02 {
      //2. 定义main方法, 作为程序的主入口.
      public static void main(String[] args) {
         //3. 测试byte类型.
         //3.1 定义一个byte类型的变量, 变量名叫b, 初始化值为10.
         byte b = 10;
         //3.2 将变量b的值打印到控制台上.
         System.out.println(b);
    
         //4. 测试short类型.
         //4.1 定义一个short类型的变量, 变量名叫s, 初始化值为20.
         short s = 20;
         //4.2 将变量s的值打印到控制台上.
         System.out.println(s);
    
         //5. 测试char类型.
         //5.1 定义一个char类型的变量, 变量名叫c, 初始化值为'A'.
         char c = 'A';
        //5.2 将变量c的值打印到控制台上.
         System.out.println(c);
    
         //6. 测试int类型
         int a = 10;
         System.out.println(a);
    
         //7. 测试long类型, 数据后记得加字母L.
         long lon = 100L;
         System.out.println(lon);
    
         //8. 测试float类型, 数据后边加字母F.
         float f = 10.3F;
         System.out.println(f);
    
         //9. 测试double类型.
         double d = 5.21;
         System.out.println(d);
         //10. 测试boolean类型.
         boolean bb = true;
         System.out.println(bb);
      }
    }
    
    • 方式二: 先声明, 后赋值
    //1. 定义一个类, 类名叫: VariableDemo03
    public class VariableDemo03 {
      //2. 定义main方法, 作为程序的主入口.
      public static void main(String[] args) {
         //3. 测试byte类型.
         //3.1 定义一个byte类型的变量, 变量名叫b.
         byte b;
         //3.2 把数字10赋值给变量b.
         b = 10;
         //3.3 将变量b的值打印到控制台上.
         System.out.println(b);
    
    
         //4. 测试char类型.
         //4.1 定义一个char类型的变量, 变量名叫c.
         char c;
         //4.2 把字符'A'赋值给变量c.
         c = 'A';
         //4.3 将变量c的值打印到控制台上.
         System.out.println(c);
    
         //5. 测试int类型
         int a;
         a = 10;
         System.out.println(a);
    
    
         //6. 测试double类型.
         double d;
         d = 5.21;
         System.out.println(d);
    
         //7. 测试boolean类型.
         boolean bb;
         bb = true;
         System.out.println(bb);
       }
     }
    
  • 注意事项

1.变量未赋值,不能使用.
2.变量只在它所属的范围内有效.
3.一行上可以定义多个变量,但是不建议.

  • 变量可以一行声明多个
int e = 10 , f = 20 , g = 50;
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);

10.代码块

大括号{}包裹起来的代码叫做代码块

代码块作用:让变量尽可能早的从内存消失,从而节约资源,提高效率

11.标识符

概念:给类、接口、方法、变量等起名字的规范
java中,标识符是由字母、数字、下划线、美元符号组成

注:
标识符不能以数字开头
标识符不能与Java中的关键字(保留字)重名
标识符最好做到见到名字知道它的含义,让别人看的懂

11. 命名规范

  • 1.
    • 大驼峰 (每个单词首字母都大写,其他全部小写)
    • 例如 HelloWorld 、VeriableDemo
  • 2.变量
    • 小驼峰(第一个单词正常写,从第二个单词开始首字母大写,其余小写)
    • 例如studentName 、 userName
  • 3.常量
    +所有字母全部大写,单词之间用下划线隔开
    • 例如 MAX_MONEY 、JAVA_HOME
  • 4.
    • 所有的字母都小写 多级包之间使用"."隔开,一般的报名都是公司域名的反写
    • 例如 www.neusoft.com --> com.neusoft.yiliao
    1. 方法名
    • 小驼峰(第一个单词正常写,从第二个单词开始首字母大写,其余小写)

12.数据类型转换

  • 1.自动类型转换(隐式转换)

小的类型自动提升成大的类型
将取值范围小的类型自动提升为取值范围大的类型

        // 定义两个int类型的变量a和b, 分别赋值为10, 20.
        int a = 10;
        int b = 20;
        // 通过输出语句打印变量a和b的和.
        System.out.println(a);
        System.out.println(b);
        //  定义int类型的变量c, 接收变量a和b的和.
        int c = a + b;
        // 打印变量c的值.
        System.out.println(c);
        // 定义两个变量aa和bb, 一个是int类型的数据, 另一个是byte类型的数据.
        int aa = 30;
        byte bb = 40;
        // 定义变量cc接收 变量aa和bb的和.
        int cc = aa + bb;
        // byte cc = aa + bb; 大的不能转换成小的
        // 分别设置变量cc的数据类型为byte类型和int类型, 观察结果并打印.
        System.out.println(cc);
  • 2.强制类型转换(显示转换)

大类型转换成小类型
格式: 数字类型 变量名 = (强制转换的类型) 要被转换的数值

        double d = 30.5;
        int dd = (int) d;
        System.out.println(dd);

13.自增运算

a++先进行运算/赋值 再进行自增
++a 先进行自增,在进行运算

        int a = 1;
        int b = a++;
        int c = ++a;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
3
1
3
  • 例子
         short s = 22;
        s = (short)(s + 1);
        // s = s + 1 不能运行 s+1为int类型 s为short类型
        // s += 1 能运行 只进行一次操作 并带有强制类型转换 相当于 s =(short)(s + 1)
        System.out.println(s);

14.ASCII码

package com.company;

public class ASCIIDemo08 {
    public static void main(String[] args) {
        char a = 'A';
        int j =  1;
        System.out.println(a + j);
    }
}
66
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,888评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,677评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,386评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,726评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,729评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,337评论 1 310
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,902评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,807评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,349评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,439评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,567评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,242评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,933评论 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,420评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,531评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,995评论 3 377
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,585评论 2 359

推荐阅读更多精彩内容

  • 一、Java开发环境搭建 Java概述 众所周知Java是一门编程语言,编程语言就是用来编写软件的。那么使用Jav...
    辽A丶孙悟空阅读 1,406评论 0 53
  • 第01章 JAVA简介第02章 基础语法第02章 递归补充第03章 面向对象第04章 异常处理第05章 数组第06...
    顺毛阅读 516评论 0 1
  • 1.java语言发展史 ·詹姆斯·高斯林 ·SUN-(斯坦福大学网络公司) ·1995年5月23日,java语言诞...
    ttlidx阅读 271评论 0 1
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 525评论 0 1
  • 一. Java基础部分.................................................
    wy_sure阅读 3,814评论 0 11