第一章 开发前言

1.2计算机基础知识

二进制

1.0前言、入门程序、常量、变量 - 图1

字节

位(bit):一个数字0或者一个数字1,代表一位

字节(Byte):每逢8 位是一个字节,这是数据存储的最小单位

1 Byte = 8 bit

1 KB = 1024 Byte

1 MB = 1024 KB

1 GB = 1024 MB

1 TB = 1024 GB

1 PB = 1024 TB

1 EB = 1024 PB

1 ZB = 1024 EB

命令提示符(cmd)

启动 Win+R

切换盘符 盘符名称: (大小写不影响)

进入文件夹 cd 文件夹名

进入多级文件夹 cd 文件夹1\文件夹2\文件夹3

返回上一级 cd ..

直接回根路径 cd \

查看当前内容 dir

清屏 cls

退出 exit

第二章 java语言开发环境搭建

2.1 java虚拟机——JVM

  • JVM (Java Virtual Machine ) : Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java最具吸引力的特性之一。我们编写的Java代码,都运行在JVA之上。

  • 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
    1.0前言、入门程序、常量、变量 - 图2

如图所示,JAVA的虚拟机本身不具备跨平台功能,每个操作系统下都有不同版本的虚拟机

2.2 JRE和JDK

  • JRE (Java Runtimle Environment):是Java程序的运行时环境,包含JVM和运行时所需要的核心类库
  • JDK (Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具。

我们想要运行一个已有的Java程序,那么只需安装JRE 即可。

我们想要开发一个全新的Java程序,那么必须安装JDK

1.0前言、入门程序、常量、变量 - 图3

2.3JAVA_HOME环境变量的配置

配置环境变量的作用

为了更方便的启动java,当java刚刚安装完成时,在cmd中启动Java需要输入java.exe的完整路径,为了能让Java像记事本一样启动,需要为他配置环境变量

配置环境变量步骤

找到控制面板中的系统

1.0前言、入门程序、常量、变量 - 图4

点击高级系统设置,点击环境变量,在系统变量中选择新建

1.0前言、入门程序、常量、变量 - 图5

新建内容

1.0前言、入门程序、常量、变量 - 图6

注意:

  1. JAVA_HOME的变量值为jdkbin的前一个目录
  2. 即:蓝色部分

1.0前言、入门程序、常量、变量 - 图7

1.0前言、入门程序、常量、变量 - 图8

  1. CLASS_PATH
  2. .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

然后选择系统变量中的Path,点击新建

1.0前言、入门程序、常量、变量 - 图9

  1. %JAVA_HOME%\bin
  2. %JAVA_HOME%\jre\bin
  1. win7中,在变量值中输入(win10也可以)

1.0前言、入门程序、常量、变量 - 图10

  1. %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
  2. 注意 ";"

由于配置了环境变量,%JAVA_HOME% == F:\Program Files\Java\jdk-9.0.4,可在文件资源管理器中得到验证

在cmd中输入java、javac、 java -version有反应代表环境变量配置成功

java

javac

1.0前言、入门程序、常量、变量 - 图11

java -version

1.0前言、入门程序、常量、变量 - 图12

第三章 Hello World 入门程序

3.1程序开发步骤说明

开发环境已经搭建完毕,可以开发第一个Java程序

Java程序开发三步骤:编写、编译、运行

1.0前言、入门程序、常量、变量 - 图13

3.2 编写Java源程序

选一个喜欢的位置新建一个文本文件,将文件名改为,HelloWorld.java,注意勾选查看中的文件拓展名,然后进行编辑

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. System.out.println("Hello, World!!!");
  4. }
  5. }

3.3编译Java源文件

打开cmd(win+R),进入到HelloWorld.java所在的目录,即通过dir可以查看到HelloWorld.java文件,输入 javac HelloWorld.java ,回车后回发现目录中出现一个HelloWorld.class文件(它便是java字节码文件)

1.0前言、入门程序、常量、变量 - 图14

1.0前言、入门程序、常量、变量 - 图15

1.0前言、入门程序、常量、变量 - 图16

3.4运行Java程序

输入 java HelloWorld ,回车,出现运行结果

1.0前言、入门程序、常量、变量 - 图17

注意:

  1. 当修改 HelloWorld.java 文件后,需重新进行编译后,运行结果才为修改后运行结果(不需要删除 .class 文件,Java会自动将它替换)

3.5入门程序说明

编译和运行是两回事

关于main方法

  1. // 第一行的第三个单词必须和所在的文件名完全一样,大小写也要一样
  2. // public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位
  3. public class HelloWorld {
  4. // 第二行的内容是万年不变的固定写法,代表main方法
  5. // 这一行代表程序执行的起点
  6. public static void main(String[] args) {
  7. // 第三行代表打印输出语句(即屏幕显示)
  8. // 希望显示什么,就在小括号中填写什么内容
  9. System.out.println("Hello, World!!!");
  10. }
  11. }

详细说明

  1. public class HelloWorld {
  2. /*
  3. 1. 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。
  4. 2. 被public修饰的类可以被其他包访问。
  5. 如果现在的库名是com,那么就可容易通过下面的声明访问Animal:
  6. import com.Animal;
  7. 或者
  8. import com.*;
  9. public class与class的区别
  10. class定义类
  11. 1,如果一个类声明的时候使用了class进行了声明,
  12. 则作为启动类的名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的名称。
  13. 2,没有public修饰的类,该类就拥有了包访问权限,即该类只可以用于该包之
  14. 在一个 *.java的文件中,只能有一个public class的声明,但是允许多个class的声明。
  15. 转 https://blog.csdn.net/longzhoufeng/article/details/88863217
  16. public(趴不累可) 公共
  17. class(可辣死) 类
  18. public class 公共类
  19. */
  20. public static void main(String[] args) {
  21. /*
  22. public static void main(String[] args)
  23. 是java中的主函数,除了args可以变化外,其他部分必须保持一样。
  24. 字段解析:
  25. 1.public 权限修饰符,声明主函数为公有;
  26. Java(四种权限修饰符):
  27. 公共的public,有限制的protected,相同的defau,私人的private
  28. 权限级别: public > protected > (default) > private
  29. 其中default不是关键字,为空
  30. 2.static 关键字告知编译器main函数为一个静态函数;
  31. 静态函数不能访问非静态成员变量
  32. 3.void声明函数无返回值
  33. java方法中使用return关键字返回数据。
  34. 需要注意返回的数据类型必须与方法声明处所写的返回值类型相同或其子类。
  35. 如果方法无需返回数据,在方法的返回值声明处要标有void关键字
  36. 4.main 函数名,jvm识别的特殊函数名
  37. 5.String[] args 定义了一个字符串数组参数
  38. public(趴不累可) 公共
  39. static(死他体可) 静态
  40. void(握A的) 空白
  41. main(妹嗯) 主要
  42. String(死菌) 字符串
  43. args() 参数
  44. */
  45. System.out.println("Hello, World!!!");
  46. /*
  47. system(C死藤) 系统
  48. out(嗷特) 出去
  49. println(普润挺) 换行打印
  50. */
  51. }
  52. }

3.6添加注释

  1. public class HelloWorld {
  2. // 这是一行注释
  3. // 这是第二行注释
  4. public static void main(String[] args) { // 单行注释
  5. /*
  6. 无论这里
  7. 占用多少行
  8. 只要是在
  9. 这个范围之内
  10. 都算多行注释
  11. */
  12. System.out.println("Hello, World!!!");
  13. }
  14. }

3.7关键字

@是电子邮箱中有特殊含义的、被保留的、不能随意使用的字符

等同于Java中的关键字

关键字的特征:

  1. 完全小写的字母
  2. 在增强版的记事本中(例如notepad++)有特殊颜色。

3.8 标识符

  • 标识符:是指在程序中,我们自己定义的内容。比如类的名字、方法的名字和变量的名字等,都是标识符。

    • HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
  • 命名规则:硬性要求

    • 标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和 _(下划线)
    • 标识符不能以数字开头
    • 标识符不能是关键字
  • 命名规范:软性建议

    • 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)
    • 变量名规范:首字母小写,后面每个单词首字母的大写(小驼峰式)
    • 方法名规范:同变量名

第四章 常量

4.1概述

常量:是指在java程序运行期间固定不变的数据

4.2分类

常量的分类:

  1. 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:”abc”、”Hello”、”123”
  2. 整数常量:直接写上的数字,没有小数点。例如:100、200、0、-250
  3. 浮点数常量:直接写上的数字,有小数点。例如:2.3、-3.14、0.0
  4. 字符常量:凡是用单引号引起来的部分,叫做字符常量。例如:’A’,’b’,’7‘,’中‘
  5. 布尔常量:只有两种取值。true、false
  6. 空常量:null。代表没有任何数据

4.3练习

  1. public class Demo01Const{
  2. public static void main(String[] args){
  3. // 字符串常量
  4. System.out.println("ABC");
  5. System.out.println(""); // 字符串两个引号中间的内容为空,同样会输出,println自带\n
  6. System.out.println("xyz");
  7. // 整数常量
  8. System.out.println(123);
  9. System.out.println(-250);
  10. System.out.println(0);
  11. // 浮点数常量(小数)
  12. System.out.println(1.234);
  13. System.out.println(-3.14);
  14. System.out.println(0.0);
  15. // 字符类型
  16. System.out.println('A');
  17. System.out.println('0');
  18. System.out.println('中');
  19. System.out.println('*');
  20. // System.out.println(''); 单引号内不能为空
  21. // System.out.println('123'); 单引号中的字符只能有一个
  22. // 两个单引号中间必须有且仅有一个字符,没有不行,多了也不行
  23. // 布尔常量
  24. System.out.println(true);
  25. System.out.println(false);
  26. // 空常量
  27. //System.out.println(null); 空常量不能直接用来打印输出
  28. }
  29. }

第五章 变量

5.1变量概述

变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。

  1. /*
  2. 创建一个变量并且使用的格式:
  3. 数据类型 变量名称; // 创建了一个变量
  4. 变量名称 = 数据值; // 赋值,将右边的数据值,赋值交给左边的变量
  5. 一步到位格式:
  6. 数据类型 变量名称 = 数据值 ; // 在创建一个变量的同时,立刻放入指定的数据值
  7. */

Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。

变量的基本使用

  1. public class Demo02Variable {
  2. public static void main(String[] args) {
  3. // 创建一个变量;
  4. // 格式:数据类型 变量名称;
  5. int num1;
  6. // 向变量中存入一个数据
  7. // 格式 变量名称 = 数据值;
  8. num1 = 10;
  9. // 当打印输出变量名称时,显示出的是变量的内容
  10. System.out.println(num1); //10
  11. // 改变变量当中本来的数字,变成新的数字
  12. num1 = 20;
  13. System.out.println(num1); //20
  14. // 使用一步到位的格式来定义变量
  15. // 格式:数据类型 变量名称 = 数据值;
  16. int num2 = 30 ;
  17. System.out.println(num2); //30
  18. num2 = 37;
  19. System.out.println(num2);
  20. System.out.println("===================");
  21. byte num3 = 30; //注意右侧数值范围不能超过左侧数据类型的取值范围
  22. System.out.println(num3); //30
  23. //byte num4 = 300 ; // 右侧超出了byte的取值范围,错误
  24. short num5 = 50;
  25. System.out.println(num5); //50
  26. long num6 = 300000000L;
  27. System.out.println(num6); //300000000
  28. float num7 = 2.5F;
  29. System.out.println(num7); //2.5
  30. double num8 = 3.7;
  31. System.out.println(num8); //3.7
  32. char zifu1 = 'A';
  33. System.out.println(zifu1); //A
  34. zifu1 = '中';
  35. System.out.println(zifu1);
  36. //char zifu2 = 'wlan'; // 错误,单引号中只能有且仅有一个字符
  37. char zifu3 = 40; // 此时 zifu3中的40对应的是Unicode字符集编码中的40位
  38. System.out.println(zifu3); // (
  39. boolean var1 = true;
  40. System.out.println(var1);
  41. var1 = false;
  42. System.out.println(var1);
  43. // 将一个变量的数据内容,赋值交给另一个变量
  44. // 右侧的变量名var1已经存在,里面装的是false布尔值
  45. // 将右侧变量里的false值,向左交给var2变量进行存储
  46. boolean var2 = var1;
  47. System.out.println(var2);
  48. //boolean var3 = 1; // 错误 布尔值只有两个,false true
  49. }
  50. }

5.2数据类型

数据类型分类

java的数据类型分为两大类:

  • 基本数据类型:包括整数、浮点数、字符、布尔
  • 引用数据类型:包括类、数组、接、Lambda

基本数据类型

四类八种基本数据类型:

数据类型 关键字 内存占用 取值范围
字节型 byte 1个字节 -128 ~ 127(-2的7次方到2的7次方-1)
短整型 short 2个字节 -32768 ~ 32767(-2的15次方到2的15次方-1)
整型 int(默认) 4个字节 -2147483648~2147483647(-2的31次方到2的31次方-1)
长整型 long 8个字节 -9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)
单精度浮点型 float 4个字节 3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的负45次方)
双精度浮点型 double(默认) 8个字节 1.797693e+308~4.9000000e-324(同上)
字符型 char 2个字节 0 ~ 65535
布尔型 boolean 1个字节 true false

注意事项:

  1. 字符串不是基本类型,而是引用类型

  2. 浮点型可能只是一个近似值,并非精确的值

  3. 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节

  4. 浮点数当中默认类型是double,如果一定要使用float类型,需要加上一个后缀F
    如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀
    例子:System.out.println(100L);

5.3变量含义

格式

练习

5.4注意事项

  1. /*
  2. 使用变量的时候,的注意事项:
  3. 1,如果创建多个变量,那么变量之间的名称不可以重复
  4. 2,对于float和long类型来说,字母后缀F和L不要丢掉
  5. 3,如果使用byte或者short类型的变量,注意右侧的数据值不能超过左侧类型范围
  6. 4,如果没有赋值的变量注意不能直接使用,一定要赋值之后才能使用
  7. 5,变量的使用不能超过作用域的范围
  8. 【作用域】:从定义变量的一行开始,一直到所属的大括号结束为止
  9. 6,可以通过一个语句来创建多个变量,但是一般情况不推荐这么写
  10. */
  11. public class Demo03VariableNotice {
  12. public static void main(String[] args) {
  13. int num1 = 10; //创建一个新的变量,名叫num1
  14. // int num1 = 20; // 又创建了另一个变量,名字也叫num1,错误
  15. int num2 = 20;
  16. int num3;
  17. num3 = 30;
  18. int num4; // 定义了一个变量但是还没有进行赋值
  19. // System.out.println(num4); // 直接使用打印输出是错误的
  20. // System.out.println(num5); // 错误,超出了num5的作用域
  21. int num5 = 500;
  22. System.out.println(num5); // 500
  23. {
  24. int num6 = 60;
  25. System.out.println(num6); // 60
  26. }
  27. // int num6 = 80;
  28. // System.out.println(num6); // 已经超出了大括号的范围,超出了作用域,变量不能使用
  29. // 同时创建三个全是int类型的变量
  30. int a, b, c;
  31. // 各自分别赋值
  32. a = 10;
  33. b = 20;
  34. c = 30;
  35. System.out.println(a); // 10
  36. System.out.println(b); // 10
  37. System.out.println(c); // 10
  38. // 同时创建三个变量,并且同时各自赋值
  39. int x = 100, y = 200, z =300;
  40. System.out.println(x); // 100
  41. System.out.println(y); // 200
  42. System.out.println(z); // 300
  43. }
  44. }