JAVA基础
Java三大版本
- Java的可移植性:JVM
- JavaSE :标准版(桌面程序,控制台开发…)
- JavaME :嵌入式开发(没人用了)
- JavaEE:企业级开发(web、服务器开发)
JDK、JRE、JVM
- JDK:Java Development Kit
- JRE:Java Runtime Environment
- JVM:JAVA Virtual Machine
开发环境(JDK)包含运行环境(JRE)包含虚拟机(JVM),跨平台的核心是JVM
Hello,world!
在编写第一个hello world时,我遇到了一些情况,我使用visual code配置java环境进行编程。
- 文件名和class名必须一致,不然编译不通过,并且首字母尽量大写
- 尽量不要使用中文,某些控制台会乱码
- JAVA大小写敏感!
在cmd使用javac Test.java进行编译,编译完成后生成Test.class文件,执行java Test即可执行程序。
vc搭配好环境之后可以直接运行
Java程序运行机制
Java是结合了编译型和解释型的语言,先通过Java编译器编译成.class文件,再通过解释器在操作系统中运行
注释规范
- 单行注释
// 我是单行注释
- 多行注释
/*
我是多行注释
*/
- 文档注释(JavaDoc)
/**
* @Description HelloWorld
* @Author 10_Addtiply
* 大公司经常要求
*/
标识符和关键字
- 唯一Amazing我的一点:可以用中文定义变量!
数据类型
-
强类型语言:要求变量的使用要严格符合规定,所有变量必须先定义后使用。安全性高,速度慢
-
弱类型语言:相反(JS)
-
Java的数据类型分为两大类
-
基本类型
- char:2 Bytes
- byte:1 Byte
- short:2 Bytes
- int:4 Bytes
- long:8 Bytes
- bool:1 bit
int num1 = 10; byte num2 = 200;//报错,只能表示-128~127 short num3 = 30; long num4 = 30L;//Long类型要在数字后加L float num5 = 50.1F;//Float同上 double num6 = 3.1415926; char name = 'A';//只能是一个字符 // 字符串,不是关键字,是类 String namea = "Bill";
-
引用类型
-
常见问题
各种进制的整数表示
int i = 10;
int i2 = 010; //8进制
int i3 = 0x10; //16进制
int i4 = 0b10; //2进制
浮点数比较
浮点数直接比较会有舍入等问题,得到的结果有问题
使用 BigDecimal 数学工具类
类型转换
Java是强类型语言,类型不同的变量运算需要类型转换:
byte,short,char→int→long→float→double
int i = 128;
byte b = i; //报错
byte b = (byte) i; //强制转换,报错,内存溢出
long l = i; //自动转换,OK
-
强制转换 (类型)变量名 高–低
-
自动转换 低–高
-
注意点:
- 不能对bool进行转换
- 不能把对象类型转换为不相干的类型
- 把高容量转低容量,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
- JDK7新特性,数字内可以用下划线分割
int money = 10_000_000; System.out.println(money); //10000000
常量和变量
变量默认值
实例变量:如果不自行初始化,默认值都是0,0.0
布尔值:默认false
除了基本类型,其余的默认值都是null
常量
关键词final
// 修饰符不存在先后顺序
static final double PI = 3.14;
final static double PI = 3.14;
运算符
与C++差不多
数学类Math,经常使用
Math.pow(2,3); //2^3,2的3次方
包机制
**包的本质就是文件夹。**Java提供包机制用于区别类名的命名空间。
调用包语句的语法为:
import package pkg1[. pkg2[. pkg3...]];
小技巧,如果你使用了一个其他包里的东西,如Date
,但是你不知道他在哪个包,你可以按Alt+Enter,这样IDE自动帮你加上import这句话。
JavaDoc
JavaDoc命令用于生成自己的API文档
/**
* @author 10_Addtiply
* @version 1.0
* @since 1.8
*/
public class Helloworld {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
int money = 1999_999;
System.out.println(money);
}
}
使用IDEA的Tools→Generate JavaDoc生成JavaDoc,注意Locale填zh_CN则doc是中文的,命令行参数-encoding UTF-8 -charset UTF-8 -link http://docs.Oracle.com/javase/7/docs/api
生成的JavaDoc