[Java 02] 基础部分 2021.11.07
JAVA基础
JDK包括开发的小工具, java, javac等编译运行工具等
JRE runtime environment 提供各种api
JVM
环境变量说明:
JAVA_HOME: tomcat启动会找这个地址
path: windows下寻找exe运行文件的地址需要配置: jdk的bin, 以及jre的bin
classpath: 1.7以上不用配置
写一个简单的 .java文件之后:
javac a.java, 生成a.class;
java a : 运行编译之后的这个class即可
新建一个empty project
, File -> New -> Module -> Java
在project structure里,选自己的SDK和language level(8)
工具栏菜单栏找不到,进 View -> Appearance -> 各种bar
1. 注释
单行注释,多行注释,文档注释
//单行注释
/* 开始
多行注释
结束 */
// javaDoc 文档注释:
/** 开始
*(每行开始都有一个*号 文档内容
结束 */
2. 标识符
关键字:系统定义的
标识符:类名,变量名,方法名
3. 数据类型
java是强类型语言,要求变量必须先定义后使用
1. 基本数据类型: primitive type 八大基本类型:
//整数 byte, short, int, long, 1个字节,2个字节,4个字节, 8个字节
//浮点数 float, double, 4个字节,8个字节
//字符类型 char 2个字节
//布尔类型 boolean 1个位
long num4 = 30L;//重点,加L表示区别
float num5 = 30.1F;//重点,加F表示区别,不加f则为doulbe类型(会报错,需要强制转换了属于是)
- 类型扩展:
二进制:0b 开头,八进制: 0 开头, 十六进制: 0x 开头
// 浮点数不要做比较,float 和double 都不要去做比较,都是约等于,结果位True,有个类BigDecimal
float f1 = 1019393839829389f;
float f2 = f1 + 1;
System.out.println(f1 == f2);
-
字符拓展
所有的字符本质还是数字
char c1 = 'a'; System.out.println((int)c1); //打印97
-
转义字符
//转义字符 \t, \n //加了table, 换行等
2.引用类型: reference type 类,接口,数组
4. 类型转换
运算时,不同类型的数据先转换位同一类型,然后进行运算。
//low -------------------------high
//按照数据范围, 数据范围从大到小需要强制转换, 数据范围从小到大自动转换
byte, short, char->int->long->float->double
int i = 100;
byte b = (byte)i;//需要强制转换
double d = i;//自动转换
//数字中间可以加下划线方便查看数据大小
int i = 10_0000_0000; // 10个亿
long all = i * 20;//会溢出,返回值为负数,在运算时需要把i强制转换为long类型
long all = (long)i * 20;
类型转换的问题:溢出问题,精度问题
5. 变量,常量,作用域
类变量,实例变量,局部变量,
//类变量
static int num = 10;//在main中可直接调用,是和类绑定在一起的
//实例变量
String str = 'hello';
int num = 10;//使用要先new对象,然后调用
//局部变量 写在方法中的变量
常量:特殊的变量,constant在 initialize之后不可以改变
final String Family_name = 'wuhu';
命名规范:
类名: 大驼峰:首单词大写+驼峰原则
变量: 小驼峰:首单词小写+驼峰原则
6. 基本运算符
不同类型数据进行运算符运算,有比int高的,结果以高的数据类型为准,比int底的都是int类型。
byte a = 2;
short b = 10;
int c = 100;
long d = 12121212L;
a+b //结果为 int类型
b+c //结果为int类型
c+d //结果为long 类型
b = a++; //先给b,a再加加
b = ++a; //a先加加, 再给b
Math包,去查看包或者函数,Ctrl + B
与或非运算,短路问题:
int dd = 5;
boolean ee = (dd<4)&&(dd++ < 10);
System.out.println(dd);
System.out.println(ee);
//因为第一部就不成立,所以dd++不会被执行,输出结果为dd依然是5
三元运算符
String type = x<60? '不及格':’及格‘;
7. JDoc文档
在类或者方法上面打/**, 自动生成,
可以写的内容有:
@author
@version 自己的版本号
@since jdk的版本
@param
@return
@throws
Dos使用: javadoc -encoding UTF-8 -charset UTF-8 xxx.java
, 之后打开index.html
,就可以看到生成的文档。
IDEA中查看文档 在类/方法上,Ctrl + Q