01_Java语言概述和发展史
-
计算机语言: 人与计算机进行信息交流沟通的特殊语言. eg: Java,c++,c,Python,....
-
Java语言是sun公司推出的计算机语言,Java之父: 詹姆斯高斯林
-
Java版本:
-
工作中常用的版本是: 1.8
02_Java语言跨平台原理
-
跨平台: 指的是一个Java程序可以运行在不同的操作系统上
-
跨平台原理: Java程序本身是不能直接运行在操作系统上,而是通过java编译器对Java程序进行编译,产生字节码文件,然后字节码文件运行在jvm之上,所以如果要实现Java程序跨平台,只需要在不同的操作系统上安装对应版本的jvm即可.(eg: windows系统对应windows版本的jvm.....)
03_jre和jdk以及jvm
-
jvm: java虚拟机
-
jre: java运行环境, 包含jvm和核心类库
-
jdk: java开发环境, 包含jre和开发工具
-
关系: jdk > jre > jvm
04_jdk的下载和安装
计算机语言: 人与计算机进行信息交流沟通的特殊语言. eg: Java,c++,c,Python,....
Java语言是sun公司推出的计算机语言,Java之父: 詹姆斯高斯林
Java版本:
-
工作中常用的版本是: 1.8
-
跨平台: 指的是一个Java程序可以运行在不同的操作系统上
-
跨平台原理: Java程序本身是不能直接运行在操作系统上,而是通过java编译器对Java程序进行编译,产生字节码文件,然后字节码文件运行在jvm之上,所以如果要实现Java程序跨平台,只需要在不同的操作系统上安装对应版本的jvm即可.(eg: windows系统对应windows版本的jvm.....)
03_jre和jdk以及jvm
-
jvm: java虚拟机
-
jre: java运行环境, 包含jvm和核心类库
-
jdk: java开发环境, 包含jre和开发工具
-
关系: jdk > jre > jvm
04_jdk的下载和安装
jvm: java虚拟机
jre: java运行环境, 包含jvm和核心类库
jdk: java开发环境, 包含jre和开发工具
关系: jdk > jre > jvm
看我其他的文章发布非常的详细
05.注释
- 概述:注释就是对程序的解释说明的,是不参与程序的编译和运行的
- 格式:
// 单行注释
06.关键字
-
概述: 在java语言中具有特殊含义的单词 eg(public,class,static,void,...)
-
特点:
-
1.关键字所以的字母都是小写
-
2.关键字在高级编辑器中会有高亮显示
07.常量
- 概述:在程序运行过程中,其值不可以发生改变的量
- 分类:
概述: 在java语言中具有特殊含义的单词 eg(public,class,static,void,...)
特点:
-
1.关键字所以的字母都是小写
-
2.关键字在高级编辑器中会有高亮显示
- 概述:在程序运行过程中,其值不可以发生改变的量
- 分类:
-
整数 不带小数的数值, eg: 666, -88
-
小数 带小数的数值, eg: 3.14, -3.14
-
字符串 使用双引号引起来的内容, eg: "","i","itheima","深圳","[]","99"
-
字符 使用单引用引起来的内容,并且单引号中有且仅有一个字符(不能多也不能少),
-
eg:'a','1','中' 正确
-
eg:'','10' 错误
-
-
布尔 只有2个值,true(表示成立),false(表示不成立)
-
空值 一个特殊的值,表示什么都没有 null------------>不能输出
public class ConstantDemo {
public static void main(String[] args) {
//字符串常量
System.out.println("HelloWorld");
System.out.println("黑马程序员");
System.out.println("--------");
//整数常量
System.out.println(666);
System.out.println(-88);
System.out.println("--------");
//小数常量
System.out.println(13.14);
System.out.println(-5.21);
System.out.println("--------");
//字符常量
System.out.println('A');
System.out.println('0');
System.out.println('我');
System.out.println("--------");
//布尔常量
System.out.println(true);
System.out.println(false);
System.out.println("--------");
//空常量
//空常量是不能直接输出的
//System.out.println(null);
// 注意事项:
// 输出字符a
// System.out.println('a');
// System.out.println('');// 报错误
// System.out.println('10');// 报错误
// 输出字符串
System.out.println(10);// 整数10
System.out.println("10");// 字符串10
}
}
08.数据类型
- 基本类型分类:(4类8种)
整数类型
byte -128-----127
short
int(默认) 大概正负21亿之间使用int,超过就用long
long
浮点类型
float
double(默认)
字符类型
char
布尔类型
boolean
引用类型
类
接口
枚举
09.变量- 概述:在程序运行过程中,其值是可以发生改变的量
- 作用:变量其实就是用来存储数据的,并且里面存储的数据是可以发生改变的
- 格式:数据类型 变量名=值
数据类型
byte,short,int,long,float,double,char,boolean,String
变量名:自己定义即可
值:要存储的数据
public class HelloWorld{
public static void main(String[] args){
// 需求:定义一个变量,用来存储整数666
int num = 666;
// 把num变量中存储的值打印输出
System.out.println(num);// 666
// 需求:把num变量中存储的值修改为888
num = 888;
// 把num变量中存储的值打印输出
System.out.println(num);// 888
}
}
10.变量的使用的注意事项
- 同一作用域(一对大括号),不能有同名的变量
public class HelloWorld{
public static void main(String[] args){
int num = 10;
int num = 20;// 报错
System.out.println(num);
}
}
- 没有初始化的变量,是不能直接使用的
public class HelloWorld{ public static void main(String[] args){ int num; System.out.println(num);// 报错 } }给long类型的变量赋值,记得加Ll
-
public class HelloWorld{ public static void main(String[] args){ long num1 = 100;// 不报错 long num2 = 2212345678;// 报错 System.out.println(num1); System.out.println(num2); } }给float类型的变量赋值,记得加Ff
-
public class HelloWorld{ public static void main(String[] args){ float num1 = 100.13;// 报错 System.out.println(num1); } }
方式一:数据类型 变量名=值;
方式二:数据类型 变量名;变量名=值;
方式三:数据类型 变量名1=值,变量名2=值.....;
12.标识符概述:在程序中自己定义的名称,eg:类名,方法名,变量名....
命名规则:
1.只能由字母,数字,下划线(_),美元$符合组成
2.不能以数字开头
3.不能与关键字重名
4.严格区分大小写
命名规范:知名达意
1.小驼峰:从第二个单词开始,每一个单词的首字母大写 eg:helloWorld 变量名,方法名
2.大驼峰:每一个的首字母都大写eg:HelloWorld 类名
3.eg:hello_world
13.类型转换---基本类型- 自动类型转换:
概述:把一个表示数据范围小的数值或者变量赋值给一个表示数值范围大的变量
格式:表示数据范围大的数据类型 变量名=表示数据范围小的值;
public class HelloWorld{
public static void main(String[] args){
// 把100赋值给变量numD
double numD = 100;
System.out.println(numD);// 100.0
int num = 'a';
System.out.println(num);// 97
}
}
- 强制类型转换:
概述:把一个表示数据范围大的数值或者变量赋值给一个表示数值范围小的变量
格式:表示数值范围小的数字类型 变量名=(表示数值范围小的数值类型)表示
数值范围大的值;
public class HelloWorld{
public static void main(String[] args){
int num = (int)3.14;
System.out.println(num);// 3
}
}
- 注意事项:
数据范围大小关系:byte 数据范围大小关系:char 强制类型转换会发生数据丢失,故慎用 boolean类型不能发生类型转换 char,byte,short发生数学运算,会自动提升为int类型public class HelloWorld{
public static void main(String[] args){
// 因为3和4是常量,在java中具有常量优化机制,所以编译器在编译期间就可以确定3+4的结果为7,在byte所能表示的范围,所以能赋值成功
byte res1 = 3+4;// byte res1 = 7;
System.out.println(res1);// 7
byte b1 = 3;
byte b2 = 4;
// 因为b1和b2是变量,而变量没有优化机制,所以编译器在编译期间无法确定b1+b2的结果是否在byte所能表示的范围,
// 所以b1和b2会自动提升为int类型,那么b1+b2的结果为int类型,int类型的值赋值给byte类型的变量,需要发生强制类型转换
// byte res2 = b1 + b2;// 编译报错
byte res2 = (byte)(b1 + b2);
//int res2 = b1 + b2;
System.out.println(res2);
byte res3 = 3 + b2;// 编译报错,原因同上
System.out.println(res3);
}
}



