一、基础语法1.环境配置
1.安装JDK
注意:可以安装多个JDK,版本为1.8,环境变量配置哪个,哪个就生效。
2.环境变量的配置
JAVA_HOME:配置的是JDK安装的目录
Path:配置的JDK下bin目录
CLASS_PATH:配置的是JDK下的lib目录,也可以写一个点
3.win+R打开DOS命令,输入java javac java -version测试是否配置成功
4.开发工具eclipse
5.开发工具IDEA,注意路径不要出现中文
2.JDK JRE JVMJDK(Java Development Kit):Java开发工具包--开发的最小单位
JRE(Java Runtime Environment):Java运行时环境--运行的最小单位
JVM(Java Virtual Machine):Java虚拟机--负责加载并运行对应的字节码文件.class
1.运行过程:我们编写的源码是.java为后缀的,通过编译后生成的是.class字节码文件,交给JVM来执行
2.跨平台:只要在不同的操作系统上安装对应的JVM,就可以实现跨平台:一份代码,处处运行
在Java中,有一些单词被赋予了特定的意义,一共有50个关键字。
这50个单词都是全小写,其中有两个保留字:const和goto。
注意,关键字不能被用作标识符!
需要注意的是,除了上述的50个关键字以外,true,false,null也不可以被用作标识符~
2.标识符UpperCamelCase大驼峰命名:
每个单词的首字母都要大写,比如类名:HelloWorld类名: Upper驼峰命名:每一个单词的首字母都要大写
LowerCamelCase小驼峰命名:
从第二个单词的首字母才开始大写,比如:方法名:nextLine() 变量名:deptName
在Java中,我们需要给代码中的很多元素起名,包括类名、方法名、字段名、变量名等等。我们给对应元素起的名称就被称为标识符,一个正确的标识符需要遵循以下规则:
1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
2. 不能以数字开头。如:123name 就是不合法
3. 标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
4. 标识符的命名最好能反映出其作用,做到见名知意。
5. 标识符不能是Java的关键字
几乎所有编程语言都允许程序员在代码中输入注释
因为编译器会忽略注释,所以注释并不会影响程序的运行结果。
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
Java的注释有3种:
1. 单行注释: 注释单行内容.
格式: 每行都以”//”开头.
快捷方式: Ctrl+/ 添加注释,同样的快捷键,再按一次取消注释
2. 多行注释:注释多行内容,虽然叫多行注释,也可注释单行内容.
格式: 以”
public class TestTypeScope {
//1.创建程序的入口函数
public static void main(String[] args) {
//2.定义对应类型的变量:格式:类型 名字 = 值 ;
byte byteMin = Byte.MIN_VALUE;
byte byteMax = Byte.MAX_VALUE;
System.out.println("byte类型的最小值为:" + byteMin);
System.out.println("byte类型的最大值为:" + byteMax);
short shortMin = Short.MIN_VALUE;
short shortMax = Short.MAX_VALUE;
System.out.println("short类型的最小值为:" + shortMin);
System.out.println("short类型的最大值为:" + shortMax);
int intMin = Integer.MIN_VALUE;
int intMax = Integer.MAX_VALUE;
System.out.println("int类型的最小值为:" + intMin);
System.out.println("int类型的最大值为:" + intMax);
long longMin = Long.MIN_VALUE;
long longMax = Long.MAX_VALUE;
System.out.println("long类型的最小值为:" + longMin);
System.out.println("long类型的最大值为:" + longMax);
float floatMin = Float.MIN_VALUE;
float floatMax = Float.MAX_VALUE;
System.out.println("float类型的最小值为:" + floatMin);
System.out.println("float类型的最大值为:" + floatMax);
double doubleMin = Double.MIN_VALUE;
double doubleMax = Double.MAX_VALUE;
System.out.println("double类型的最小值为:"+ doubleMin);
System.out.println("double类型的最大值为:"+ doubleMax);
boolean b1 = true;
boolean b2 = false;
char c1 = 'a';//字符型可以保存一个字母
char c2 = '中';//字符型还可以保存一个汉字
char c3 = '7';//字符型可以保存一个字符7
char c4 = 97;//字符型可以保存数字,但是会查ASCII,打印的是字符a
char c5 = 55;//字符型可以保存数字,但是会查ASCII,打印的是字符7
char c6 = 199;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
}
}
2.类型转换
口诀:小转大,直接转 大转小,强制转 浮变整,小数没
注意:布尔类型不参与类型转换
注意:基本类型之间能否转换,不取决于字节数,字节数只能做参考,取决于类型的取值范围
注意:我们这里所说的是基本类型之间的转换,引用类型之间的转换取决于是否有继承关系
比如:你可以说小猫是小动物,但是不能说小猫是小汽车,不然后面的这种错误的情况会报:类型转换异常
除了基本类型以外的所有类型都是引用类型
4.字面值规则- 整数类型的字面值类型是int
- 浮点类型的字面值类型是double
- byte short char 三种比int小的类型,可以在范围内直接赋值
- 三种字面值后缀 : L D F
- 三种字面值前缀: 0b-二进制 0-八进制 0x-十六进制
package cn.tedu.basic;
public class TestTypePre {
public static void main(String[] args) {
//10-2 10-1 10-0
System.out.println(100);//100-10的平方
//操作二进制-0b
//2-2 2-1 2-0
System.out.println(0b100);//4-2的平方
//操作八进制
//8-2 8-1 8-0
System.out.println(0100);//64-8的平方
//操作十六进制
//16-2 16-1 16-0
System.out.println(0x100);//256-16的平方
}
}
5.运算规则
1.计算结果的数据类型,与最大数据类型一致
2.byte,short,char三种比int小的整数,运算时会先自动转换成intSystem.out.println(3/2);//1,int/int,得到的结果类型还是int
System.out.println(3/2d);//1.5,int/double。得到的结果是double
3.整数运算溢出byte a = 1;
byte b = 2;
byte c = (byte)(a+b);
//a+b会自动提升成int类型,右面得运算结果就是int大类型
//给左面的byte小类型赋值,不可以,需要强转。
整数运算,类似于一个钟表,转到最大时,再转会回到最小。
计算:光速运行一年的长度是多少米?3亿m/s
4.浮点数运算不精确//溢出的现象:
//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。
System.out.println(300000000L * 60 * 60 * 24 * 365);
5.浮点数的特殊值1-0.8 (这是一个现象,后续会提供解决方案)
Infinity 无穷大 3.14/0
NaN not a number 0/0.0 或 0.0/0
三、运算符1.概述
运算符 用于连接 表达式 的 操作数,并对操作数执行运算。
例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。
在java语言中,运算符可分为5种类型:
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。
单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。
package cn.tedu.basic;
public class TestOperator {
//0.创建程序的入口函数main
public static void main(String[] args) {
//1.测试除法与取余数
System.out.println(25 / 10);//2
System.out.println(25 % 10);//5
//2.练习1:获取一个两位数59的十位与个位
int x = 59;
System.out.println(x/10);//打印十位,5
System.out.println(x%10);//打印个位,9
//3.练习2:获取一个三位数159的百位、十位与个位
int y = 159;
System.out.println(y / 100);//打印百位
System.out.println(y / 10 % 10);//打印十位
System.out.println(y % 10);//打印个位
//4.测试自增自减运算符
System.out.println("我是一个无情的分界线");
int z = 1;
System.out.println(z+4);//5
System.out.println(z);//1
int a = 1;
System.out.println(++a);//2
System.out.println(a);//2
int b = 1;
System.out.println(b++);//1
System.out.println(b);//2
int c = 1;
System.out.println(--c);//0,符号在前,先自减,再打印
System.out.println(c);//0,上面已经自减过了
int d = 1;
System.out.println(d--);//1,符号在后,先打印,再自减
System.out.println(d);//0,打印过后,自减成0
//之前的代码会对后面的代码产生影响,c的值是0
System.out.println(c);//0
System.out.println(--c-c-c--);//1,-1-(-1)-(-1)=1
System.out.println(c);//-2,经历了两次自减,所以0-2=-2
}
}



