jdk-8u271-Window-x64
链接:https://pan.baidu.com/s/13qH9M1gKlr_mI5eymq-0RQ
提取码:yg90
(1)在搜索栏搜索高级系统设置,然后点击环境变量
(2)然后在下方新建一个变量名称:JAVA_HOME,变量值选择你jdk安装到的目录
(3)然后找到变量Path,点击编辑
接着新建%JAVA_HOME%\bin,然后将它上移到最上方
最后就是确定、确定。然后进行一下试验,看看到底有没有配好,win + R,输入cmd,打开命令行。分别输入javac、java,出现这样的画面就是配置完成了。
我刚开始使用的是NotePad++,因为我觉得它画面简单明了,挺好用的。
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello,World");
}
}
第一行的第三个单词必须和所在的文件名称完全一样
public class后面代表定义一个类的名称,类是JAVA当中所有源代码的基本组织单位
第二行的内容是固定的写法,代表main方法,这一行代表程序执行的起点。
第三句代表打印输出语句
关键字的特点
1.完全小写的字母 例如:public
2.在程序中也会带有颜色,例如上面的HelloWorld
标识符
在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等。
命名规则:
1.英文大小写、0到9数字、$、和_
2.不能以数字开头
3.不能是关键字
命名规范:
1.类名规范:首字母大写,后面每个单词字母大写(大驼峰式)。例如HelloWorld
2.变量名规范:首字母小写,后面每个单词字母大写(小驼峰式)。例如helloWorld
3.方法名规范:同变量名
常量的含义:在程序运行期间,固定不变的量
常量的分类:
1.字符串常量:凡是双引号引起来的部分,叫做字符串常量。例如:“Hello”、“123”
2.整数常量:直接写上的数字,没有小数点。例如:100、300、-200
3.浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0
4.字符常量:凡是用单引号引起来的单个字符,叫做字符常量。例如:'A'、'9'、'中'
5.布尔常量:只有两种,true与false
6.空常量: null。代表没有任何数据
public class Demo01Const {
public static void main(String[] args) {
//字符串常量
System.out.println("ABC");
//整数常量
System.out.println(50);
//浮点数常量
System.out.println(5.2);
//字符常量
System.out.println('A');
//布尔常量
System.out.println(true);
//不能将null放入
}
}
取值范围记得大概就行了,一般只需要记住byte的范围,即-128~127
引用数据类型:
字符串、数组、类、接口、Lambda
注意事项:
1.取值范围与字节数不一定相关。例如float数据范围比long更广泛,但是float是4字节,而long是8字节
2.字符串不是基本数据类型,而是引用数据类型
3.浮点型可能只是一个近似值,并非精确值
4.浮点数当中默认类型是double,如果一定要使用float类型,需要加上一个后缀F
如果是整数,默认是int类型,如果一定要使用long类型,需要加上一个后缀L。大小写都可以,推荐使用大写
变量:程序运行期间,内容可以发生改变的量。
创建一个变量并且使用的格式:
数据类型 变量名称;// 创建一个变量
变量名称 = 数据值;// 赋值,将右边的数据值,赋值给左边的变量
一步到位的格式:
数据类型 变量名称 = 数据值;//在创建一个变量的同时,立刻放入指定的数据值
接下来是一些代码的实现过程,一些例子助于理解。
public class Demo02Variable {
public static void main(String[] args) {
//创建一个变量
//格式:数据类型 变量名称;
int num1;
//向变量当中存入一个数据
//格式:变量名称 = 数据值;
num1 = 10;
//当打印输出变量名称的时候,显示出来的是变量的内容
System.out.println(num1);
//改变变量当中本来的数据,变为新的数字
num1 = 20;
System.out.println(num1);
//使用一步到位的格式来定义变量
//格式:数据类型 变量名称 = 数据值;
int num2 = 25;
System.out.println(num2);
num2 = 35;
System.out.println(num2);
System.out.println("================================");
byte num3 = 30;//注意;右侧数值的范围不能超过左侧数据类型的取值范围
System.out.println(num3);
short num5 = 50;
System.out.println(num5);
long num6 = 3000000000L;//需要跟上一个L
System.out.println(num6);
float num7 = 2.5F;//需要跟上一个F
System.out.println(num7);
double num8 = 1.2;
System.out.println(num8);
char zifu1 = 'A';
System.out.println(zifu1);
zifu1 = '中';
System.out.println(zifu1);
boolean var1 = true;
System.out.println(var1);
//将一个变量的数据内容,赋值交给另外一个变量
//将右侧的变量名称var1已经存在,里面装的是true布尔值
//将右侧变量里面的true值,向左交给var2变量进行存储
boolean var2 = var1;
System.out.println(var2);
}
}
使用变量时一些注意事项:
1.如果创建多个变量,那么变量之间的名称不可以重复
2.对于float和long类型来说,字母后缀F和L不要丢掉
3.如果使用byte或者short类型的变量时,那么右侧的数据值不能超过左侧的范围
4.没有进行赋值的变量。不能直接使用,必须赋值后,才能使用
5.变量使用不能超过作用域的范围。
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
6.可以通过一个语句来创建多个变量,但一般情况不推荐这样写。
例如 int a, b, c;
a = 10;
b = 20;
c = 30;
例如 int x = 100, y = 200, z = 300;
当数据类型不一样时,将会发生数据类型转换。
自动类型转换(隐式)
1.特点:代码不需要进行特殊处理,自动完成。
2.规则:数据范围从小到大。即取值范围
强制类型转换 (显示)
1.特点: 代码需要进行特殊的格式处理,不能自动完成
2.格式: 范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;
注意事项:
1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
2. byte/short/char这三种基本数据类型可以发生数学运算,例如加法”+“
3. byte/short/char这三种基本数据类型在运算的时候,都会被首先提升成为int类型,然后再计算。
4.boolean类型不能发生数据类型转换
接下来是一些例子,助于理解。
public class Demo01DataType {
public static void main(String[] args) {
System.out.println(1024);//这是一个整数,默认是int类型
System.out.println(3.14);//这是一个浮点数,默认就是double类型
//左边是long类型,右边是默认的int类型,左右类型不一样
//将 int --> long ,因为符合了数据范围从小到大的要求,所以发生了自动类型转换,所以不需要L
long num1 = 100;
System.out.println(num1);
//左边是double类型,右边是float类型
// float --> double,符合数据范围从小到大的要求,所以发生了自动类型转换
double num2 = 2.5F;
System.out.println(num2);
// 左边是float类型,右边是long类型
//long --> float,float范围更大,符合从小到大的要求,发生了自动类型转换
float num3 = 30L;//显示30.0 因为float类型,所以有小数点
System.out.println(num3);
System.out.println("-----接下来是强制类型转换----");
// 左边是int类型,右边是long类型
// long --> int,不是从小到大,所以不能发生自动类型转换
// 格式: 范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据。
//因为这里L ,所以他是long类型。100本身并不属于long。()括号内写你想转换成的数据类型
int num4 = (int) 100L;
System.out.println(num4);
//六十亿应属于long类型,但如果不添加L,那他默认为int类型。添加L后,这里就是long强制转换为int
int num5 =(int) 6000000000L;
System.out.println(num5);//虽然这里格式对了,但结果是1705032704。即发生了数据溢出
// double --> int ,强制类型转换
int num6 = (int)3.5;
System.out.println(num6);//结果是3,int没有小数点,所以0.5没了,所以是发生了精度损失
char zifu1 = 'A';
System.out.println(zifu1 + 1);// 结果是66,也就是A被当作65进行处理
// 计算机的底层会用一个数字(二进制)来代表字符A,就是65
// 一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为数字
byte num7 = 40;
byte num8 = 50;
// byte + byte 会转换为int + int -->int 结果就会使int。所以result1前应该是int!
int result1 = num7 + num8;
System.out.println(result1);
short num9 = 60;
// byte + short 会被转换为 int + int 结果为int
//但如果依然想使result2为short,那么可以强制转换
//但必须保证逻辑上真实大小本来就没超过short的范围,否则会发生数据溢出
short result2 = (short) (num7 + num9);
System.out.println(result2);
}
}
关于ASCII码表
0对应48,1对应49,以此类推
A对应65,B对应66,以此类推
a对应97,b对应98,以此类推
Unicode码表:万国码,包含了更多的对照关系(汉字等等都有)