1 、Java前置知识
1.1 认识Java
java是一款高级贬称语言 计算机只认识(0和1)
编程语言即时人类和计算机沟通的桥梁,Java只是编程语言中的一种,我们可以编程语言操作计算机。
编程运行过程(重点):
编译期:
Java源文件----编译------.class字节码文件
运行期:
jvm加载并运行.class字节码文件(0和1)
名词:
JVM(Java Virtual Machine):Java虚拟机,主要是用来加载运行.class字节码文件
JRE(Java Runtime Environment):Java运行环境,包含了JVM,还包含了运行程序的环境
JRE= JVM + Java系统类库工具
JDK(JAVA Development Kit):Java开发工具包,包含了JRE,还包含了Java开发所需的工具
JDK = JRE +编译,运行等命令
如果运行一个Java程序,至少需要JRE
如果开发一个Java程序,至少需要JDK
1.2 编译器工具
Eclipse(手动档)和IDEA(自动档)
IDEA是JetBarins公司提供的 提供两个版本:社区版(免费) 终极版(收费)
开源:对用户开放细节
Java这款语言就是开源,Eclipse(开源的),IDEA社区版(开源的)
下载JDK和IDEA的方式:
doc.canglaoshi.org
Mac下载完JDK不需要配置环境变量
1.3 开发步骤
①新建一个Java项目或工程
②新建一个Java包
③新建一个Java类
1.4 Java中的注释(三种)
单行注释://写上解释性文本
多行注释:/*写上解释性文本*/
文档注释:/**写上解释性文本*/
1.5 Java中的编译方式(三种)
Compile------对类进行编译(不管类中的内容是否修改过,一定会编译)
Rebuild-------对项目进行编译(不管项目是否修改过,一定会全部编译)
Make----------默认的编译方式(只编译修改过的文件)
package day01;// 包名 day01 ---------- 具体楼+单元
public class HelloWorld { //类名 HelloWorld --------房子
//main功能的快捷键 main回车即可自动生成
//main 功能 ----程序的主入口 :
// 代码只能放在main的功能里面 才能运行
//且代码是逐语句往下运行
public static void main(String[] args) { //-------大门 入口
/*
* 1.严格区分大小写!
* 2.写代码期间,所用到的符号 全部都要保证英文状态下输入,否则也会报错
* 3.每句话如果写完 要用分号结尾
* */
//想输出一句话 显示在屏幕
// 输出的功能 快捷键 sout 回车
//文本性的内容:如果要输出 需要加双引号!
System.out.println("Hello Java!!");//双引号中的内容所见即所得
System.out.println(3);
System.out.println(2);
System.out.println(1);
}//执行到这里 就代表 出口(程序结束)
}
2、变量
早期的计算机----------算术(数字的加减乘除)
现在的计算机-----------算术(数字、文字、图片。音频、视频)
计算机处理的是数据,也就意味着离不开变量(就是存数的)
变量:可以变化的量
变量的作用:开一个账户
2.1 变量的声明
int a ;//声明一个int类型的变量 变量名为a
int b,c,d;//声明三个int类型的变量 变量名为 b,a,d
//int a;编译错误:因为已经声明过一个名为 a的变量了,不能重复声明
2.2 变量的初始化
int e = 300;//声明了一个int(整数) 变量 名为e e里面存了300
int f;//声明一个int(整数) 变量名 为f
f = 150;//为f这个变量里面存 150
2.3 变量的使用
对变量的使用,本质上就是变量里存的内容
使用变量前一定要先声明+初始化!否者会报错!
int b = 5;//声明一个int(整数) 的变量名为 b 为b里面存了5
int c = b + 10;//声明一个int(整数)的变量名为c 里面存了 b + 10 的和,b是5 + 10 最后15存到变量c里面去
System.out.println("c");//c -----因为双引号 所见即所得
System.out.println(c);//15
2.4 变量的命名规范
①变量的命名 只能包含数字、字母、_和$ 注意不能以数字开头!
②变量名是区分大小写的
③变量名不能以关键字来命名
④变量的命名要见名知意
//2.4 变量的命名规范
// int 1a; 编译错误:变量名不能以数字开头
int _01$;
int $abc_;
//Java严格区分大小写
int a = 1;
System.out.println(a);
// System.out.println(A); 此A非彼 a
// int void; 不能以关键字进行命名 关键字就是蓝色的字!
// int static;
//命名要见名知意
int score = 100;//用英文单词的见名知意
//int 分数 = 100;//不能用 中文的见名知意 ------行业规范!
// int fenshu = 100;//不能用 拼音的见名知意
//变量的命名 遵循 小驼峰命名法 :小驼峰命名法 多个单词之间 首字母小写 后续第二单词首字母大写....第三....
int myScore = 100;
//类名 遵循 大驼峰命名法: 每个单词首字母大写.
3、 数据的基本类型
数据类型的作用:决定了变量可以存储的类型和存储的范围。
数据类型分为:基本数据类型和引用数据类型
常用的基本数据类型:
整数类型:int 、 long
小数类型:double
字符类型:char
布尔类型:boolean
不常用:byte(只是在io相关内容会用到)
short/float 保留c语言的类型,工作用不到
GB(吉字节) 1GB = 1024MB
MB(兆字节) 1MB = 1024KB
KB(千字节) 1KB = 1024b
b(字节) 1b = 8bit(位)
3.1 整数类型:
int在内存中占用4个字节,存储范围- 21亿~21亿多(2147483647)
① 整数的直接变量默认为int类型,直接变量是不能够超出当前类型所存储的范围,否则会报编译错误。
② 如果两个整数进行运算,结果是不会保留小数的(会截断删除,不会四舍五入)
③ 整数如果运算时,若超出范围则会溢出(溢出不是错误)但需要避免,溢出的数据没有参考价值
package day03;
/**
* 数据类型的使用演示类:
* 整数类型:
* int类型 占4个字节 可存储范围-2147483648 ~ 2147483647
* long类型
* */
public class DateTypeDemo01 { //房子
public static void main(String[] args) {//大门
//整数直接量 默认为int类型
int a = 100;//声明一个int类型的变量 变量名为a 存了100;
// int b = 2147483648; 编译错误:整数直接量超过了int 这个类型可存储的范围
int c = 5;
int d = 2;
// System.out.println(c / d );//2 (整数运算时不会保留小数位)
//--------------------------------
int number = 2147483647;//number已经存储的int 最大值
int result = number + 3;
System.out.println(result);//溢出的数据 -2147483646
/**
* +1 -------------------(-2147483648)
* +1+1 -----------------(-2147483647)
* +1+1+1 ---------------(-2147483646)
* */
}
}
3.2 long
在内存中占用八个字节,可存储范围-900万万亿~900万万亿
① 长整型类型的直接量 需要在后面家上L
② 长整型类型在进行运算时,建议在第一个数据后面加上L即可,代表所有的结果都是long类型的
//长整数直接量
long a = 10000000000L;//100亿 需要明确加L表示是long类型的直接量
// 10亿 * 2 * 10
long b = 1000000000 * 2 * 10L;
//System.out.println(b);//200亿
//30亿 超出了int的范围
long c = 1000000000 * 3 * 10L;
// System.out.println(c);//溢出:-12949672960
long d = 1000000000L * 3L * 10L;
System.out.println(d);//300亿
变量占多大内存,取决的是数据类型 而并不是装载的数据!
int a = 5;
int b = 2147483647;
3.3 小数类型
double(双精度):占八个字节,可以存储的数据很大很大、、、
① 浮点型的直接量默认为double类型
② double类型的直接量 也可以明确表示加上后缀d
③ double类型的数据在进行运算时,也能存在误差,Math.round()四舍五入的功能
/**
* 小数类型的使用演示类:
* double 占8个字节
*/
public class DateTypeDemo02 {//房子
public static void main(String[] args) { //大门
//小数直接量 默认为double
double a = 3.14;//声明一个double类型的变量 变量名为a 存了3.14
double b = 3.0;
double c = 2.9;
//System.out.println(b - c);// 0.10000000000000009 可能存在误差
double e = 6.0;
double f = 4.9;
//System.out.println(e - f);//1.0999999999999996 可能存在误差 无限接近
double g = 6.0;
double h = 1.9;
System.out.println(g - h);//4.1 可能存在误差
double r = Math.round(4.5);//可以四舍五入
System.out.println(r);
}
}
3.4字符类型
① char占用两个字节,表示的是字符的意思
② 字符是什么?键盘上:字母、数字、汉字、特殊符号等...
③ Java提供特殊符号,如果想要存储的话,需要转义转换特殊含义(),转义符号 \
char temp = 'a';//声明一个char类型的变量 名为temp 存了字符a
System.out.println(temp);//a
System.out.println((int)temp);//97
char temp1 = '我';
System.out.println(temp1);
// char temp2 = 'ni'; 编译错误:char类型只能存单个值!
char temp3 = '\'';//转