打怪升级之小白的大数据之旅(二)<Java基础语法之环境搭建与变量>

打怪升级之小白的大数据之旅(二)

Java基础语法之环境搭建与变量


目录

打怪升级之小白的大数据之旅(二)

上次回顾

环境搭建

基础语法(一)

第一个入门程序,Java我来啦~

Java入门程序常见的一些问题及解决办法

Java注释(annotation)

Java的关键字与标识符

关键字:

标识符:

Java常量与变量

常量:

变量

Java的数据存储与二进制转换

进制

 

总结

 


上次回顾

上一次我们从计算机的语言发展史谈到Java的跨平台性,Java的基本概述已经算是差不多告一段落了,

后面,我将开始从Java的环境搭建和基础语法为大家说明, (虽然环境搭建度娘一搜一大把,我还是觉得自己既然是一个系列,那么还是事无巨细比较好)


环境搭建

如果我们仅仅只是使用Java程序,那么直接下载JRE即可,作为开发人员,我们当然需要下载Java三剑客才能完美地开始进入Java旅程

前面我们讲到, Java是跨平台的,还有Java中JDK,JRE,JVM三者的关系,这里就不多介绍了,忘记了的小伙伴们,可以回看上一章节哈~

  1. 首先,我们开发Java的程序,就需要下载它,不用说,我们需要下载JDK

    官网地址:www.oracle.com
    详细地址:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

  2. 安装JDK,这里我用Windows系统举例,别的系统,度娘有~~
    “傻瓜式”安装,下一步即可。安装选项中可以取消公共jre,因为jdk中包含jre。
    这里,注意一下,安装的时候,看个人喜好,有的人喜好安装在系统盘,C盘,我比较喜欢将它们分门别类,我是自定义安装的~



     
  3. 安装完成后,打开cmd命令,  开始菜单--->cmd--->打开
  4. 我们输入java.exe,它会提示命令不存在,我们需要定位到刚刚安装的那个目录下:

    cd D:\tools\java\bin

    然后运行,就会出现下图结果:


    这个表示安装成功,我们每次运行java都要进入这个文件夹很不方便,因此需要配置环境变量,这样,不管在哪里,打开cmd控制台就都可以运行java啦~
  5. 配置环境变量,(为了方便java程序在当前操作系统的任何位置都可以运行),复制安装目录
    开发工具javac.exe等安装到了指定目录jdk\bin,使用时需要切换到指定目录bin下,配置环境变量可以在任意目录使用javac.exe等工具。后期也有一些基于java相关软件默认会通过环境变量配置寻找java。

    计算机---->属性

    打开系统属性---->设置环境变量

    设置系统环境变量,也可以设置成用户变量,两者都可以~

    新建一个系统变量,为了防止多个Java版本,因此,我们这样设置

    新建系统变量后,我们需要将java的那个java.exe所在目录添加到path中,告诉windows,java.exe在哪里

    将我们的bin文件夹也就是java.exe所在目录添加到系统变量path中

    OK,大功告成~这下我们就可以在Windows的任何地方运行java代码啦~

        注:Java 自 java se 8 bu211版本之后开始收费

        java环境卸载   控制面板--卸载

基础语法(一)

第一个入门程序,Java我来啦~

要想写Java程序,我们首先需要知道java程序的运行逻辑:

上图就是它的运行逻辑,我来拆解翻译一下:

  1. 编写源代码, 保存为java文件
  2. 编译java程序 ,执行javac命令,生成.class字节码文件
  3. 运行java程序 执行Java命令

简单吧,写完后,使用javac命令,生成字节码文件,这个字节码文件就是告诉计算机,我们需要它做什么,这个字节码文件就类似前面所说的机器的语言~
然后我们再运行这个.class字节码文件,就可以看到我们java程序的运行结果了~

话不多说,我们开始写属于自己的第一个Java程序:

不要问为啥打马赛克~我就是要打~
hello world 是所有语言程序的第一个开始,当你成功运行并输出结果后,意味着你已经迈进了Java程序的世界了~~

Java入门程序常见的一些问题及解决办法
 

常见问题及解决

1. 代码拼写错误

  • 单词拼写问题,Java语言是一门严格区分大小写的语言
    • 正确:class 错误:Class
    • 正确:String 错误:string
    • 正确:System 错误:system
    • 正确:main 错误:mian
  • 标点符号使用问题
    • 不能用中文符号,英文半角的标点符号(正确)
    • 括号问题,要成对出现

2. 源文件名问题

源文件名有问题会导致编译时找不到文件

可能的原因:

  • 文件路径错误
  • 文件名拼写错误
  • 文件名后缀不是.java
  • 类名声明为public时,要与文件名相同

注意:一个源文件中可以有多个类,编译后会生成多个.class字节码文件。但是一个源文件只能有一个public的类。如果这个类是public,那么要求源文件名必须与类名一致。

3. 字符编码问题

(比如使用notepad编辑器时)

当cmd命令行窗口的字符编码与.java源文件的字符编码不一致(cmd命令行窗口默认GBK,nopad默认utf-8),如何解决?

               

解决方案一:

在Notepad++等编辑器中,修改源文件的字符编码

解决方案二:

在使用javac命令式,可以指定源文件的字符编码

javac -encoding utf-8 Review01.java
 

Java注释(annotation)

这个没什么难点,记住格式就好,注释就是方便自己方便他人的
方便自己--->未来某一天回头望,你看着写过的东西,它认识你,会发现,你不认识它~
方便他人--->别人阅读你的代码可以很愉快地知道你的思想,就想写一首美妙地诗歌~~(python之禅会告诉你)

  • 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
  • Java中有单行注释、多行注释和文档注释
    • 单行注释以 //开头,以换行结束,格式如下:
      // 注释内容
    • 多行注释以 /*开头,以*/结束,格式如下:
      /*
      注释内容
      注释内容
      */
    • 文档注释以/**开头,以*/结束
      /**
      注释内容
      @author   可指定 java java程序的作者
      @version  可指定源文件的版本
      */

      文档注释可以被JDK提供的javadoc工具解析生成一套网页形式的说明文档,操作入下:
      D:\>javadoc -d mydoc -author -version Hello.java

Java的关键字与标识符

关键字:

Java语言赋予了特殊含义的字符串(单词),关键字都是小写,共有50个

保留字: const和goto虽然不是关键字,但不建议定义

特殊值: ture false null等都是特殊值

标识符:

用于程序员声明变量、类、方法等名称的字符序列

命名规则:

1.由数字、英文字母、美元符号$、下划线_组成

2.开头不能用数字

3.不能使用关键字、保留字、特殊值

4. 严格区分大小写字母

命名规范:

1. 见名知意,英语不好的,可以借助字典,实在懒得用英文,那么拼音吧,虽然中文也可以,但没人这么做~~

2.类名、接口等命名, 一般遵循大驼峰命名规则---> XxxYyy  例如:HelloWorld

3.方法、变量命名,一般遵循小驼峰命名规则--->xxxYyy 例如:userName

4.包的命名,全小写, xxx.yyy.zzz 例如: com.atguigu.test

5.常量命名,全大写,XXX,如果多个单词,用下划线隔开,例如: HEIGHT,MAX_VALUE

Java常量与变量

常量:

概念:

程序运行过程中,其值不可改变的量

分类:

  1. 自定义常量:通过final关键字定义(后面在面向对象部分讲解)
  2. 字面值常量:

字面值常量

举例

字符串常量

"HelloWorld"

整数常量

12,-23

浮点常量

12.34

字符常量

'a','A','0','好'

布尔常量

true,false

空常量

null


示例代码:
public class ConstantDemo {

public static void main(String[] args) {

//字符串常量

System.out.println("HelloWorld");



//整数常量

System.out.println(12);

System.out.println(-23);



//小数常量

System.out.println(12.34);



//字符常量

System.out.println('a');

System.out.println('A');

       System.out.println('0');



//布尔常量

System.out.println(true);

System.out.println(false);

}

}

注意事项:

字符常量,单引号里面有且仅有一个字符

空常量,不可以在输出语句中直接打印

变量

概念:

     程序运行过程中,其值可以改变的量

作用:

     用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的

  • 定义格式:
    1. 声明变量,并同时赋值
      数据类型 变量名=初始化值;
      //声明并同时赋值,存储一个整数的年龄
      int age = 18;
      //打印输出变量值
      System.out.println("age = " + age);//+号表示连接符,把""中的字符串与变量age中的数据连接进行输出
    1. 数据类型 变量名;
      变量名=初始值;

      //先声明,再赋值
      int age;
      age=18;
      //打印输出变量值
      System.out.println("age = " + age);//18
      //变量可以重新赋值

      age=19;
      System.out.println("age = " + age);//19
    2. 数据类型 变量名1=初始值,变量名2=初始值;
      //声明多个变量并同时赋值
      int a=11,b=22;
      //或者先声明再赋值
      int c,d;
      c=33;
      d=44;
  • 变量的使用注意事项
    • 先声明后使用
      如果没有声明,会报“找不到符号”错误
    • 在使用之前必须初始化
      如果没有初始化,会报“未初始化”错误
    • 变量的作用域
      作用域为变量直接所属的{}范围内,如果超过作用域,也会编译错误(找不到符号)
    • 在同一个作用域中不能重名
      同一个作用域{}内,不能同时声明两个同名变量

 

  • 练习: 定义学生的基本信息,要求定义不用的数据类型的变量并输出
    public class Demo{
            public static void main(String[] args) {
                    String studentName = "张三";
                    int age = 18;
                    boolean isSex = true;
                    double englishScore = 99.9;
                    System.out.println("姓名: "+ studentName + "\n年龄: " + age + "\n是否是男生: " + "\n英语成绩: " + englishScore);
            }
    }

    输出结果

 

Java的数据存储与二进制转换
 

计算机如何存储数据

计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。

进制

  1. 进制分类与表示方式
    (1)十进制: 数字组成:0-9 进位规则:逢十进一
    System.out.println(10);//10表示十进制的10,输出十进制结果10
    (2)二进制: 数字组成:0-1 进位规则:逢二进一
    表示方式:以0b或0B开头

    System.out.println(0B10);//0B10表示二进制的10,输出十进制结果2
    十进制的256,二进制:100000000,为了缩短二进制的表示,又要贴近二进制,在程序中引入八进制和十六进制
    (3)八进制:很少使用 数字组成:0-7 进位规则:逢八进一
    表示方式:以0开头

    System.out.println(010);//010表示八进制的10,输出十进制结果8
    与二进制换算规则:每三位二进制是一位八进制值
    (4)十六进制 数字组成:0-9,a-f或A-F 进位规则:逢十六进一
    表示方式:以0x或0X开头

    System.out.println(0X10);//0x10表示十六进制的10,输出十进制结果16
    与二进制换算规则:每四位二进制是一位十六进制值
  2. 进制的转换

十进制

二进制

八进制

十六进制

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

a或A

11

1011

13

b或B

12

1100

14

c或C

13

1101

15

d或D

14

1110

16

e或E

15

1111

17

f或F

16

10000

20

10

  • 任意进制转十进制
    十进制的本质:123=1*10^2+2*10^1+3*10^0
    系数:就是每一个位上的数值。上例中的1,2,3
    基数:x进制的基数就是x。上例中的10
    权:对每一个位上的数据,从右到左,并且从0开始编号,对应的编号就是该数据的权。上例中的0,1,2

    任意进制转十进制:系数*基数^权次幂之和。
  • 十进制转任意进制:
    十进制数除以基数取余,直到商为0,余数反转
    十进制转二进制:十进制整数6除以基数2,倒序取余数,结果为二进制数110

 

  • 快速转换方法:
    • 二进制转十进制:
      8421码:
      从右边开始依次是2的0次,2的1次,2的2次。。。。

 

  • 二进制数据转八进制数据
    从右边开始,3位二进制对应1位八进制

 

  • 二进制数据转十六进制数据
    从右边开始,4位二进制对应1位十六进制

 

计算机存储单位

  • 位(bit):是数据存储的最小单位,也就是一个二进制位。其中8 bit 就称为1个字节(Byte)。
  • 字节(Byte):是计算机信息技术用于计量存储容量的一种计量单位,1字节等于8bit。
  • 转换关系:
    • 8 bit = 1 Byte
    • 1024 Byte = 1 KB
    • 1024 KB = 1 MB
    • 1024 MB = 1 GB
    • 1024 GB = 1 TB

二进制数据存储

计算机底层都是使用二进制进行数据的存储的。不同类型的数据,存储方式也有不同

  1. 整数存储
    计算机底层存储整数并不是把整数转换为二进制直接存储,而是以二进制的补码形式进行存储。要了解补码还有知道原码和反码:
    原码:把十进制转为二进制,然后最高位设置为符号位,1是负数,0是正数。
    反码:正整数的反码与原码相同,负整数的反码在原码的基础上,符号位不变,其余位取反(0变1,1变0)
    补码:正整数的补码与原码相同,负整数的补码为其反码+1
    例如:用1个字节的二进制表示一个数

    25 ==> 原码  0001 1001 ==> 反码  0001 1001 -->补码  0001 1001
    -25 ==>原码  1001 1001 ==> 反码1110 0110 ==>补码 1110 0111
    一个字节可以存储的整数范围
    分为两种情况:
    (1)无符号:不考虑正负数
    0000 0000 ~ 1111 1111 ==> 0~255
    (2)有符号:-128~127
    0000 0000 ~ 0111 111 ==> 0~127
    1000 0001 ~ 1111 1111 ==> -127 ~ -1 (补码形式存储)
    1000 0000 ==> -128 特殊值,最高位既是符号位,又是数值位
  2. 如何存储小数(了解)
    1. 为什么float(4个字节)比long(8个字节)的存储范围大?
    2. 为什么double(8个字节)比float(4个字节)精度范围大?
    • 为什么float和double不精确
      因为float、double底层也是二进制,先把小数转为二进制,然后把二进制表示为科学记数法,然后只保存:

      ①符号位②指数位③尾数位
  3. 如何存储字符
    在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念
     编码表

              就是将人类的文字和一个十进制数进行对应起来组成一张表格。例如:

  • 字符
  • 十进制数值
  • 二进制数值
  • 0
  • 48
  • 0011 0000
  • A
  • 65
  • 0100 0001
  • a
  • 97
  • 0110 0001
  • Java中字符常量的几种表示方式
    (1)'一个字符'
    例如:'A','0','尚'
    (2)转义字符

    \n:换行
    \r:回车
    \t:Tab键
    \\:\
    \":"
    \':'
    \b:删除键Backspace
       
    System.out.println('\\');
    System.out.println("hello\tworld\njava");
    (3)\u字符的Unicode编码值的十六进制型
    ​ 例如:'\u5C1A'代表'尚'

    char c = '\u5C1A';
    char c = '尚';
    String s = '尚';//错误的,哪怕是一个字符,也要使用双引号

    char c2 = '';//错误,单引号中有且只能有一个字符
    String s2 = "";//可以,双引号中可以没有其他字符,表示是空字符串
    (4)直接给char类型变量赋值十进制的0~65535之间的Unicode编码值
    例如:'尚' 的编码值是23578
    'a'的编码值是97

     char c1 = 23578;
    System.out.println(c1);//尚

    char c2 = 97;
    System.out.println(c2);//a

                    二进制存储整数,底层存储是补码形式,正整数原码,反码,补码都相同


总结

本章我们从环境搭建,第一个Java程序到二进制的转换,讲述的计算机存储数据的逻辑,为什么要讲二进制,因为后面的数据类型需要吖~~好了,希望大家看完有所收获~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值