大家一起来学Java
- Java的一些基础知识
- 1 数据类型
- 1.1 变量与类型
- 1.1.1 整型变量(int)
- 1.1.2 长整型变量(long)
- 1.1.3 浮点型变量(float、double)
- 1.1.3 字符型变量
- 1.1.4 字节型变量
- 1.1.5 短整型变量
- 1.1.6 布尔型变量
- 1.1.7 字符串变量
- 1.2 变量的作用域以及命名规则
- 1.2.1 变量的作用域
- 1.2.2 变量的命名规则
Java的一些基础知识
在学习Java之前,首先了解一下Java的源文件,后缀名为
.java
的文件就是java
的源文件(是面向程序员的,也就是程序员编写是代码)。
源代码在计算机上执行的时候,分为两步:
- 编译阶段
javac name.java
javac
将 *.java
的源文件编译为 *.class
文件。
那可能就有人问了,javac
、*.class
是什么啊?
答案就是✒
javac
是程序开发的编译工具*.class
文件是面向jvm
的一个文件类型
- 执行阶段
java name.class
执行过程中,JVM
会将编译后的class
文件加载到内存中,将字节码翻译为机器码运行。
-
JVM
(Java Virtual Machine) 是JRE
的一部分,它是一个虚拟出来的计算机,是通过在实际是计算上仿真模拟各种计算机功能来实现的
那么
JDK
和JRE
又是什么呢?
JDK
:Java
的开发程序包,包含了JRE
,还具备一些程序开发所必须的工具,Javac
-编译工具,jstack
-查看JVM
的堆栈内存情况
JRE
: 使用Java
开发的系统要运行起来所必备的环境
在Java中,一切皆对象,所以方法和属性都需要放在类中进行定义
class 关键字定义的就是类
但是,一个源文件中只能存放一个主类,即
public class
定义的类,并且该类的名称必须与源文件的名称保持一致,其他的普通类(不使用public
关键字定义的类)
Java中对于字母的大小写是完全敏感的,要特别注意
1 数据类型
1.1 变量与类型
Java和C++ 都属于强类型的语言,定义一个变量时,必须指定这个变量的类型,这个变量在之后的赋值过程中,只能赋值为相应类型的值。
数据类型分为8大基本类型以及引用数据类型(数组、类、接口),基本类型的名称都是纯小写的英文单词,类名称都是首字母大写的。
public class Test{ //Test 就是类名称,{}里面的就是一个类
public static void main(String[] args){
System.out.println("hello world");
}
}
1.1.1 整型变量(int)
使用int
关键字来定义一个整型变量,int
定义的变量大小为4字节(4byte
),并且与操作系统和JVM
版本无关.
int a = 10; //声明了一个变量,它的名字是a,它的类型为int,初始化变量为10。
int a; //声明了一个变量a,它的类型为int,没有进行初始化
在Java中变量在定义时可以不进行赋值,但是一般推荐定义变量时进行初始化。
注意:在java
中,所有数据类型都有默认值,如果定义之后没有进行初始化的话,在使用时会调用它的默认值。(只存在于类变量中,方法中的局部变量不存在默认值,会报错)
public class Test {
int a;
public static void main(String[] args){
int b;
System.out.println(new Test().a);//输出为0
System.out.println(b);
}
}
此时会提示:
在这里需要注意一个点,byte 就是字节,
1 byte = 8 bit,二进制中的每一位就是一个bit
那么8
bit
也就是两个字节能表示多大的数?8
bit
也就是8位二进制数,在计算机中存储的方式是补码的形式,由于最高位代表符号位,0代表正数,1代表负数。则最大数是 01111111,也就是
注意:为什么是
因为忽略掉符号位的概念,最大数加一就是 10000000,也就是 2^7,所以最大数就是2^7-1。最小数也就是 1000 0000(补码形式),但是这个值是补码的形式,换为原码就是末位减一,数值位取反,即1000 0000(原码形式), -2^7 = -128
所以,int类型有4字节,32位,范围在(-2^31 ~ 2^31-1)。
public class Test {
public static void main(String[] args){ //String是引用类型
System.out.println(Integer.MAX_VALUE); //Integer是int的包装类
System.out.println(Integer.MIN_VALUE);
}
}
输出是:
2147483647 //2^31 -1
-2147483648 //-2^31
所以的基本类型都有对应的类的类型
int -> Integer //Integer是int的包装类
shout -> Shout
byte -> Byte
long -> Long
flaot -> Float
double -> Double
char -> Character
boolean -> Boolean
8大基本类型中,只有int
和char
类型的包装类拼写比较特殊,其他的包装类都是首字母大写。
1.1.2 长整型变量(long)
long
:8字节,它的大小已经足够日常所用了
范围是 -2^63 ~ 2^63-1
long a = 10L; // 必须要加L或者l,表示这个值为long类型的值
在这里简单介绍一下什么是字面量?
- 程序中直接写出来的值,称之为字面量
- 200 整型字面量,默认都是int;
- ‘a’ 字符字面量
- 90.5 浮点数字面量,默认是
double
- “姓名” 字符串字面量,默认是
String
类型
1.1.3 浮点型变量(float、double)
float
:4字节(单精度浮点数),极少使用
double
:8字节(双精度浮点数)
注意:在Java中直接写出来的小数就是double
,浮点数字面量默认类型就是double
float a = 10.4F; //或者加f,声明此时为float类型
double b = 10.5;
下面看这个例子
public class Test { public static void main(String[] args){ double a = 2.1; double b = 3.1; System.out.println(a * b); } }
它的输出结果是
6.510000000000001
那么问题来了,为什么后面有这么多位0,最后一位是1呢?
原因就是 计算机的内部只能存储一大堆的0和1,浮点数在计算机内部实际上是通过整数模拟的,所以会有一定的偏差.
我们一般有两种解决办法:
- 仍然使用
double
,只看小数点后6位,- 使用
BigDecimal
类来代替double
使用
1.1.3 字符型变量
char
: 2字节 范围是 [-2^7 ~ 2^7-1]
Java中的字符集默认为Unicode编码,支持地球上的所有语言, 使用’ ’ 括起来的值都是字符字面量,默认都是char类型
1.1.4 字节型变量
byte : 1字节 范围是 [-2^3 ~ 2^3-1]
一般用于文件或网络传输中
1.1.5 短整型变量
short : 2字节 范围是 [-2^15 ~ 2^15-1]
因为short类型的数据范围较小,使用的较少
1.1.6 布尔型变量
boolean
布尔类型只有两种,真就是True,假就是False;与0或1 没有任何关系。
boolean 和 其他类型之间不能进行强制类型转换
1.1.7 字符串变量
String 是引用数据类型,不是8大基本类型。
String name = "姓名";
//此时 使用" "中间的内容就称为字符串字面量,默认是String类型
在java
中,任何数据类型只要和字符串 进行 + 的运算,都会把其他数据类型转变为字符串,然后进行字符串的拼接操作。
要注意,进行 + 运算时的优先级
public class Test {
public static void main(String[] args){
String a = "年龄: ";
int age = 18;
System.out.println(a + age*2);
//由于是先运算 age*2,所以拼接时转变为字符串的整型为 36
}
}
//运算结果为
年龄: 36
再看这个代码
public class Test {
public static void main(String[] args){
String a = "年龄: ";
int age = 18;
System.out.println(a + age + 2);
//这里是age 先与字符串进行 + 运算,age变为字符串进行拼接操作,又继续拼接2
}
}
//运行结果为
年龄: 182
补充:
常见的几个转义字符有
转义字符 | 解释 |
\n | 换行符 |
\t | 水平制表符 |
\’ | 输出为 单引号 |
\" | 输出为 双引号 |
\\ | 输出为 反斜杠 |
注意:当遇到一些特殊字符时,需要进行转义输出,转义输出就是告诉编译器,对这个字符不要做特殊处理。\ 表示转义字符
1.2 变量的作用域以及命名规则
1.2.1 变量的作用域
变量的作用域就是看这个变量起作用的区域在哪里,这个区域就是它定义时所在的大括号{}。出了变量的作用域后,变量就会被销毁。
1.2.2 变量的命名规则
必须要遵守的:
- 一个变量名只能包含数字,字母,下划线
- 数字不能开头
- 变量名是大小写敏感的,就是name 和 Name 是两个不同的变量
- 不能使用Java中的关键字作为变量命名,例如:int class double new this 都是Java中的关键字
- 虽然语法上来说允许使用中文或者美元符号($)命名变量,但是强烈不推荐这样做
我们还要养成良好的变量命名规则(不强制):
- 变量名要具有描述性
- 尽量不要使用拼音作为变量名
- 变量名的词性推荐使用名词
- 命名规则推荐使用小驼峰命名法,当一个变量名由多个单词构成的时候,除了第一个单词之外,其他单词的首字母大写
大家看完点个赞怎么样!!!