前言
终究绕不过Java的学习…老老实实来学了,为以后打基础吧~
参照视频:Java零基础视频教程(适合Java基础,Java入门)老杜Java13版
JVM(JAVA虚拟机)的存在使得 JAVA “一处编译,处处运行”
-
编译阶段:我们的源代码需要经过编译后生成
xx.class
文件,它是字节码文件,供JVM识别。 -
运行阶段:在JVM中运行,运行的是
.class
文件,也就是字节码文件 -
一个java源文件可以编译生成多个
class
文件 -
最终运行的是
class
文件
编译: javac xx.java
运行: java xx
注释
单行注释:
//
多行注释:
/*
..........
*/
文档注释(javadoc注释):
/**
@author DMIND
@version 6.6.6
这里的注释信息可以被javadoc解析提取并生成到帮助文档中。
*/
一个简单例子
- 一个java源文件可以生成多个类
- public修饰词不是必须,可以没有
- 虽然源文件中可以不用public修饰一个类,但如果有,一个源文件中只能有一个public,且被public修饰的类名必须和文件名一致
- 文件中只要出现class就会生成一个对应的class文件(下例会生成两个class文件)
//文件名:Main.java
public class Main {
public static void main(String[] args) { //main方法是程序的入口
System.out.println("DMIND");//字符
System.out.println(666); //数字,不需要加引号
System.out.println(222+444);//对于数字可以直接进行加减乘除(+ - * /)
}
}
class A{
public static void main(String[] args) { //main方法是程序的入口
System.out.println("Second class");
}
}
标识符
即:类名、变量名、方法名、类型名、数组名
- 标识符由字母、数字、下划线、美元符号$。长度不受限制
- 标识符第一个字符不能是数字
- 标识符不能是关键字(true、false、nulll、public、main…)
- 字母是区分大小写的
变量的分类
- 成员变量:在方法体外,类体内声明的变量
- 局部变量:在方法体中声明的变量。只在方法体中有效,方法体结束后内存就会被释放
public class Var{
int i = 100;//成员变量
public static void main(String[] args){
int k = 2333;//局部变量。main方法结束后k的内存就会释放
}
}
数据类型
第一种数据类型:基本数据类型(4大类8小种)
1. 整数型
1.1 byte
:一个字节,占8位,-2的7次方~2的7次方-1
1.2 short
:两个字节,16位
1.3 int
:四个字节,32位
1.4 long
:八个字节,64位
2. 浮点型
2.1 float(单精度)
:保留8位有效数字
2.2double(双精度)
:保留16位有效数字
3. 逻辑型:boolean
:true
和false
4. 字符型:char
:两个字节,一共表示出65536个字符。使用单引号引起来
第二种数据类型:引用数据类型
字符串型String属于引用数据类型
java中除了基本数据类型,剩下的都是引用数据类型
关于基本数据类型的例子:(写的很杂乱…)
public class Main {
//
public static void main(String[] args) {
char chr = '\u4e2d';//unicode编码
int num1 = 4; //十进制
int num2 = 0b100; //二进制
int num3 = 010; //八进制
int num4 = 0x10;//十六进制
System.out.println(num1);//4
System.out.println(num2);//4
System.out.println(num3);//8
System.out.println(num4);//16
byte age = 5;
long high = 2147483648L;//2147483647是int类型最大值(32位最大值)
System.out.println(high);//2147483648
float price = 45.5F;//后面必须由F或f
double weight = 12.5;//后面可有D或d,默认省略
int width = (int)weight; //int强制转换,会发生精度缺失
System.out.println(width);//12
System.out.println(chr+"\n"+num1+"\n"+age+"\n"+price+"\n"+weight);
/*
输出:
中
4
5
45.5
12.5
*/
}
}
八种基本数据类型中,除了boolean类型不能转换,剩下七种类型之间都可以进行转换。
多种数据类型混合运算中,先各自转换成其中容量最大的一种,再进行运算
自动类型转换(隐式转换)
即:小容量可以直接赋值给大容量。
容量从小到大的排序:
byte<short(char)<int <long<float<double
1字节< 2字节 <4字节<8字节<4字节<8字节
虽然short和char都占2字节,但char可表示更大的正整数
强制类型转换(显示转换)
即:大容量转换成小容量。
强制转换有可能导致精度损失,谨慎使用。
int x= 100;
char a = (char)x; //强制转换,因为是容量大(int)赋给容量小(char)
char b = 'a';
int y = b; //自动转换,因为是容量小(char)赋给容量大(int)