第一章 开发前言
1.2计算机基础知识
二进制
字节
位(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运行在操作系统上。
如图所示,JAVA的虚拟机本身不具备跨平台功能,每个操作系统下都有不同版本的虚拟机
2.2 JRE和JDK
- JRE (Java Runtimle Environment):是Java程序的运行时环境,包含JVM和运行时所需要的核心类库
- JDK (Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装JRE 即可。
我们想要开发一个全新的Java程序,那么必须安装JDK
2.3JAVA_HOME环境变量的配置
配置环境变量的作用
为了更方便的启动java,当java刚刚安装完成时,在cmd中启动Java需要输入java.exe的完整路径,为了能让Java像记事本一样启动,需要为他配置环境变量
配置环境变量步骤
找到控制面板中的系统
点击高级系统设置,点击环境变量,在系统变量中选择新建
新建内容
注意:
JAVA_HOME的变量值为jdk中bin的前一个目录
即:蓝色部分
CLASS_PATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
然后选择系统变量中的Path,点击新建
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
win7中,在变量值中输入(win10也可以)
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意 ";"
由于配置了环境变量,%JAVA_HOME% == F:\Program Files\Java\jdk-9.0.4,可在文件资源管理器中得到验证
在cmd中输入java、javac、 java -version有反应代表环境变量配置成功
java
javac
java -version
第三章 Hello World 入门程序
3.1程序开发步骤说明
开发环境已经搭建完毕,可以开发第一个Java程序
Java程序开发三步骤:编写、编译、运行
3.2 编写Java源程序
选一个喜欢的位置新建一个文本文件,将文件名改为,HelloWorld.java,注意勾选查看中的文件拓展名,然后进行编辑
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!!!");
}
}
3.3编译Java源文件
打开cmd(win+R),进入到HelloWorld.java所在的目录,即通过dir可以查看到HelloWorld.java文件,输入 javac HelloWorld.java ,回车后回发现目录中出现一个HelloWorld.class文件(它便是java字节码文件)
3.4运行Java程序
输入 java HelloWorld ,回车,出现运行结果
注意:
当修改 HelloWorld.java 文件后,需重新进行编译后,运行结果才为修改后运行结果(不需要删除 .class 文件,Java会自动将它替换)
3.5入门程序说明
编译和运行是两回事
关于main方法
// 第一行的第三个单词必须和所在的文件名完全一样,大小写也要一样
// public class后面代表定义一个类的名称,类是Java当中所有源代码的基本组织单位
public class HelloWorld {
// 第二行的内容是万年不变的固定写法,代表main方法
// 这一行代表程序执行的起点
public static void main(String[] args) {
// 第三行代表打印输出语句(即屏幕显示)
// 希望显示什么,就在小括号中填写什么内容
System.out.println("Hello, World!!!");
}
}
详细说明
public class HelloWorld {
/*
1. 如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致。
2. 被public修饰的类可以被其他包访问。
如果现在的库名是com,那么就可容易通过下面的声明访问Animal:
import com.Animal;
或者
import com.*;
public class与class的区别
class定义类
1,如果一个类声明的时候使用了class进行了声明,
则作为启动类的名称可以与文件名称不一致,但是执行的时候肯定执行的是生成后的名称。
2,没有public修饰的类,该类就拥有了包访问权限,即该类只可以用于该包之
在一个 *.java的文件中,只能有一个public class的声明,但是允许多个class的声明。
转 https://blog.csdn.net/longzhoufeng/article/details/88863217
public(趴不累可) 公共
class(可辣死) 类
public class 公共类
*/
public static void main(String[] args) {
/*
public static void main(String[] args)
是java中的主函数,除了args可以变化外,其他部分必须保持一样。
字段解析:
1.public 权限修饰符,声明主函数为公有;
Java(四种权限修饰符):
公共的public,有限制的protected,相同的defau,私人的private
权限级别: public > protected > (default) > private
其中default不是关键字,为空
2.static 关键字告知编译器main函数为一个静态函数;
静态函数不能访问非静态成员变量
3.void声明函数无返回值
java方法中使用return关键字返回数据。
需要注意返回的数据类型必须与方法声明处所写的返回值类型相同或其子类。
如果方法无需返回数据,在方法的返回值声明处要标有void关键字
4.main 函数名,jvm识别的特殊函数名
5.String[] args 定义了一个字符串数组参数
public(趴不累可) 公共
static(死他体可) 静态
void(握A的) 空白
main(妹嗯) 主要
String(死菌) 字符串
args() 参数
*/
System.out.println("Hello, World!!!");
/*
system(C死藤) 系统
out(嗷特) 出去
println(普润挺) 换行打印
*/
}
}
3.6添加注释
public class HelloWorld {
// 这是一行注释
// 这是第二行注释
public static void main(String[] args) { // 单行注释
/*
无论这里
占用多少行
只要是在
这个范围之内
都算多行注释
*/
System.out.println("Hello, World!!!");
}
}
3.7关键字
@是电子邮箱中有特殊含义的、被保留的、不能随意使用的字符。
等同于Java中的关键字
关键字的特征:
- 完全小写的字母
- 在增强版的记事本中(例如notepad++)有特殊颜色。
3.8 标识符
标识符:是指在程序中,我们自己定义的内容。比如类的名字、方法的名字和变量的名字等,都是标识符。
- HelloWorld案例中,出现的标识符有类名字 HelloWorld 。
命名规则:硬性要求
- 标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和 _(下划线)
- 标识符不能以数字开头
- 标识符不能是关键字
命名规范:软性建议
- 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)
- 变量名规范:首字母小写,后面每个单词首字母的大写(小驼峰式)
- 方法名规范:同变量名
第四章 常量
4.1概述
常量:是指在java程序运行期间固定不变的数据
4.2分类
常量的分类:
- 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:”abc”、”Hello”、”123”
- 整数常量:直接写上的数字,没有小数点。例如:100、200、0、-250
- 浮点数常量:直接写上的数字,有小数点。例如:2.3、-3.14、0.0
- 字符常量:凡是用单引号引起来的部分,叫做字符常量。例如:’A’,’b’,’7‘,’中‘
- 布尔常量:只有两种取值。true、false
- 空常量:null。代表没有任何数据
4.3练习
public class Demo01Const{
public static void main(String[] args){
// 字符串常量
System.out.println("ABC");
System.out.println(""); // 字符串两个引号中间的内容为空,同样会输出,println自带\n
System.out.println("xyz");
// 整数常量
System.out.println(123);
System.out.println(-250);
System.out.println(0);
// 浮点数常量(小数)
System.out.println(1.234);
System.out.println(-3.14);
System.out.println(0.0);
// 字符类型
System.out.println('A');
System.out.println('0');
System.out.println('中');
System.out.println('*');
// System.out.println(''); 单引号内不能为空
// System.out.println('123'); 单引号中的字符只能有一个
// 两个单引号中间必须有且仅有一个字符,没有不行,多了也不行
// 布尔常量
System.out.println(true);
System.out.println(false);
// 空常量
//System.out.println(null); 空常量不能直接用来打印输出
}
}
第五章 变量
5.1变量概述
变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。
/*
创建一个变量并且使用的格式:
数据类型 变量名称; // 创建了一个变量
变量名称 = 数据值; // 赋值,将右边的数据值,赋值交给左边的变量
一步到位格式:
数据类型 变量名称 = 数据值 ; // 在创建一个变量的同时,立刻放入指定的数据值
*/
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
变量的基本使用
public class Demo02Variable {
public static void main(String[] args) {
// 创建一个变量;
// 格式:数据类型 变量名称;
int num1;
// 向变量中存入一个数据
// 格式 变量名称 = 数据值;
num1 = 10;
// 当打印输出变量名称时,显示出的是变量的内容
System.out.println(num1); //10
// 改变变量当中本来的数字,变成新的数字
num1 = 20;
System.out.println(num1); //20
// 使用一步到位的格式来定义变量
// 格式:数据类型 变量名称 = 数据值;
int num2 = 30 ;
System.out.println(num2); //30
num2 = 37;
System.out.println(num2);
System.out.println("===================");
byte num3 = 30; //注意右侧数值范围不能超过左侧数据类型的取值范围
System.out.println(num3); //30
//byte num4 = 300 ; // 右侧超出了byte的取值范围,错误
short num5 = 50;
System.out.println(num5); //50
long num6 = 300000000L;
System.out.println(num6); //300000000
float num7 = 2.5F;
System.out.println(num7); //2.5
double num8 = 3.7;
System.out.println(num8); //3.7
char zifu1 = 'A';
System.out.println(zifu1); //A
zifu1 = '中';
System.out.println(zifu1);
//char zifu2 = 'wlan'; // 错误,单引号中只能有且仅有一个字符
char zifu3 = 40; // 此时 zifu3中的40对应的是Unicode字符集编码中的40位
System.out.println(zifu3); // (
boolean var1 = true;
System.out.println(var1);
var1 = false;
System.out.println(var1);
// 将一个变量的数据内容,赋值交给另一个变量
// 右侧的变量名var1已经存在,里面装的是false布尔值
// 将右侧变量里的false值,向左交给var2变量进行存储
boolean var2 = var1;
System.out.println(var2);
//boolean var3 = 1; // 错误 布尔值只有两个,false true
}
}
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 |
注意事项:
字符串不是基本类型,而是引用类型
浮点型可能只是一个近似值,并非精确的值
数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节
浮点数当中默认类型是double,如果一定要使用float类型,需要加上一个后缀F
如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。推荐使用大写字母后缀
例子:System.out.println(100L);
5.3变量含义
格式
练习
5.4注意事项
/*
使用变量的时候,的注意事项:
1,如果创建多个变量,那么变量之间的名称不可以重复
2,对于float和long类型来说,字母后缀F和L不要丢掉
3,如果使用byte或者short类型的变量,注意右侧的数据值不能超过左侧类型范围
4,如果没有赋值的变量注意不能直接使用,一定要赋值之后才能使用
5,变量的使用不能超过作用域的范围
【作用域】:从定义变量的一行开始,一直到所属的大括号结束为止
6,可以通过一个语句来创建多个变量,但是一般情况不推荐这么写
*/
public class Demo03VariableNotice {
public static void main(String[] args) {
int num1 = 10; //创建一个新的变量,名叫num1
// int num1 = 20; // 又创建了另一个变量,名字也叫num1,错误
int num2 = 20;
int num3;
num3 = 30;
int num4; // 定义了一个变量但是还没有进行赋值
// System.out.println(num4); // 直接使用打印输出是错误的
// System.out.println(num5); // 错误,超出了num5的作用域
int num5 = 500;
System.out.println(num5); // 500
{
int num6 = 60;
System.out.println(num6); // 60
}
// int num6 = 80;
// System.out.println(num6); // 已经超出了大括号的范围,超出了作用域,变量不能使用
// 同时创建三个全是int类型的变量
int a, b, c;
// 各自分别赋值
a = 10;
b = 20;
c = 30;
System.out.println(a); // 10
System.out.println(b); // 10
System.out.println(c); // 10
// 同时创建三个变量,并且同时各自赋值
int x = 100, y = 200, z =300;
System.out.println(x); // 100
System.out.println(y); // 200
System.out.println(z); // 300
}
}