1.java环境配置
jdk:java编程工具包
jre:java编译环境
JVM:java虚拟机 java的跨平台性 一次编译到处执行
我使用的是jdk1.8和对应的jre
安装好后配置java环境:首先找到此电脑,右键属性,点击高级系统设置,选择环境变量,点击。
在系统变量新建一个变量JAVA_HOME,将安装jdk的位置位置粘贴到里面,或通过路径选择填写
完成后找到变量path,点击编辑,选择新建填入%JAVA_HOME%\bin.完成后记得逐步点击确认再退出。
退出后检测环境变量是否配置成功。使用win+R快捷键进入cmd终端,输入java -version,查看输出结果。(我安装的版本是jdk1.8)
输出结果如图所示(显示jdk版本)则表示环境配置成功。
2.测试运行环境
运行第一个java程序,通过记事本写一个简单的Hello.java程序,在存放文件的位置顶部路径处,点击输入cmd按回车进入终端。
在终端处输入javac Hello.java会在文件路径下生成一个.class文件,再次输入java Hello则输出运行结果。其中javac指令javac + .java文件是将java文件编译为class文件,class文件又叫做字节码文件
java + .calss文件 运行指定类 ,JVM解析字节码文件编程系统(wins)指令。
3.创建java项目
Java常见的命名规则
class + 类名:创建一个类,类名首字母大写 其中一个.java文件中只能有一个public 类,这个public类必须和文件名一样
包名常用为全小写字母。
注释 ://为单行注释
/*
*/为多行注释
/**
*注释
*/为文档注释
//声明一个变量,声明变量的名字和类型
final int numB;//声明一个常量
numB = 12;
int num; //声明一个正整型的变量num
num = 10; // 给变量赋值 给变量第一次赋值就是初始化
//未初始化:从来没给变量赋值未初始化的变量无法使用
int numA;
常量和变量
变量是在程序运行过程中可能会发生变化的值
常量在程序运行阶段不可以发生变化的量
Java的数据类型
Java的基本数据类型分为:基本数据类型和引用类型
Java的八大基本数据类型:
整型:byte ,short ,int ,long
浮点型:float ,double
字符型:char
布尔型:boolean
整型的数据范围:
byte:1个字节,八位二进制数,首位为符号位(0为正,1为负数)-128~127
short:2个字节,16位二进制数,-2^15~2^15-1;
int:4个字节,32位二进制数,-2^31~2^31-1;
Long:8个字节,64位2进制数,-2^63~2^63-1;
float:单精度浮点数 4字节 默认值为0.0
double:双精度浮点数 8字节(默认浮点数类型)默认值为0.0f
float范围大于int,double范围大于long
char 2个字节 (0~65535) FFFF
boolean型 1个或4个字节(默认为false 0)
java基本数据类型之间的转换
分为隐式转换和强制类型转换
隐式转换
程序自动完成的转换,取值范围小的类型可以自动转换成取值范围大的类型值;反之,则不行。
byte numByte=12;
int numint = numByte;
强制数据类型转换
long numLong =99L;
numByte = (byte)numLong;
float numFloat = 14f;
int numInt = (int)numFloat;
//整数和字符之间的转换
numInt = 'a';
char numChar = 97;
numChar = '\uFFFF';
boolean型无法与其他基本数据类型进行转换
转义字符的使用
转义符 \n:换行 \t :制表符 \\:输出一个反斜杠
进制转换
int a=0b111;//二进制 前缀0b
int b=0111;//八进制 0
int c=11;//十进制 无
int d=0x111;//十六进制 0x
System.out.println();//println()括号内可以无参;print()必须要有参数
System.out.print(a); //print()执行不换行;println()执行换行
程序的输入输出
使用System.in和Scanner类进行输入操作。通过创建Scanner对象,并将System.in传递给它,就可以从控制台读取输入。通过nextInt()方法读取一个整数,并将其打印出来。
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数");
int a = scan.nextInt();
System.out.println(a);
scan.close();
算术运算符
整数之间的运算得到的是整数(int)类型,除非有long类型参与,得到long类型
%是取余运算,余数的正负与被除数相同
a=a++; //a=a++:先将a的值赋给表达式a++,然后a进行加1运算,最后将表达式的值赋给a(所以最终a的取值还是等于表达式的值,例如a=1,赋值完成后a的值为1)
c=a++; //先将a的值赋给表达式a++,再a的值加1,将表达式的值付赋给c,c的值为-112
c=++a; //先a的值加1,再将a的值赋给表达式,将表达式的值赋给c
a++与a=a+1仅在int类型下相同,因为整数运算得到的值默认为int类型。
例如byte c=a+1,由于整数运算得到的是int类型,发生了类型转换,而byte的范围小于int,所以会出错。
int a=-112;
int b=15;
int c =a+b;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
int i=1, j=2;
int k = i++ + ++i +j++ + ++j;
System.out.println(i);//3
System.out.println(j);//4
System.out.println(k);//10
//a=a++; //a先取a的值再加1
System.out.println(a);此时输出a的值为-112
c=a++; //先将a的值赋给c,再a的值加1
System.out.println(c);//c的值为-112
c=++a; //先a的值加1,再将a的值赋给表达式,将表达式的值赋给c
//a++与a=a+1仅在int类型下相同,因为整数运算得到的值默认为int类型。
比较运算符
>= <= == > <
==在基本数据类型中比较的是值是否相同,只比较值的大小。例如1==1.0为true
System.out.println(12.5==12.5f);//true
System.out.println(10>3);
System.out.println(3!=4);
逻辑运算符
逻辑运算符得到boolean类型的值
&&逻辑与 a&&b,二者都为true,结果才为true
||逻辑或 a||b,二者有一个为true,则结果为true
!逻辑非 !a ,a为true,则结果为flase;a为flase,则结果为true
boolean result= !true;
逻辑运算符的短路现象:前面的表达式已经可以明确整个表达式表示结果,则无需运算后面表达式
int a=0 ;
int b=0 ;
result = a++<0 && b==0;//flase