JAVA学习 --初识JAVA
Posted 庸人冲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA学习 --初识JAVA相关的知识,希望对你有一定的参考价值。
JAVA概述
Java的由来
Java是一门面向对象的编程语言,其创始人詹姆斯.高斯林,并誉为"Java之父",高斯林在Sun公司与其团队合作开发了一套名为Oak的语言,这是Java语言的前生,Oak语言是为了开发智能家电而出现的,但是因为想法过于超前使得Oak语言没有得到硬件厂商的青睐。在1995年,互联网的迎来了蓬勃的发展,这也给了Oak语言重生的机会,因为Oak是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。当Sun公司准备注册商标时,发现Oak已经被注册了,有一天,几位开发人员在一家名为"爪蛙"咖啡的店里讨论命名时,有一位提议使用"Java",得到了肯定,于是"Java"语言就诞生了。
JDK JRE JVM 三种的关系
JDK: Java Development Kit: 是Java程序开发工具包,包含JRE和开发人员使用的工具。
JRE: Java Runtime Environment: 是java程序的运行时环境,包含JVM和运行时所需要的核心类库
。
JVM: Java Virtual Machine: Java虚拟机,是运行所有java程序的假想计算机,是java程序的运行环境。
JDK包含了JRE, JRE包含了JVM。
Java编写代码的步骤
- 编写源代码:创建.java后缀的文件,使用相关的文本编辑器编写代码,并保存。
如:
public class Helloworld { // 类是java当在所有源代码的基本组织单位
public static void main(String[] args){ // 方法
System.out.println("Hello,World"); // 方法体
}
2. 编译java文件,在CMD窗口中切换到.java文件路径输入 javac HelloWorld.java,会在当前文件夹生成一个.class字节码文件。
3. 使用java命令运行生成的字节码文件,注意不要加后缀。
关键字和标识符
java中关键字有很多,比如基本数据类型,4种权限修饰符,extends(继承),implements(实现),throws(异常处理),abstract(抽象),final 等等。
标识符
程序中自定义的名称,比如类名、方法名、变量名等,都是标识符。
命名规则
-
标识符包含26个**
英文字母
(区分大小写)、0-9数字
、$
、_
**。 -
标识符不能以数字开头。
-
标识符不能是关键字。
命名规范
-
类名:首字母大写,后面每个单词首字母大写,大驼峰命名法。
-
变量名、方法名:首字母小写,后面每个单词首字母大写,小驼峰命名法。
数据类型
Java中的数据类型分为基本(内置)数据类型和引用数据类型。
基本数据类型
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128~127 |
短整型 | short | 2个字节 | -32768~32767 |
整型 | int | 4个字节 | -231~231-1 |
长整型 | long | 8个字节 | -263~263-1 |
单精度浮点型 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度浮点性 | double | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2个字节 | 0~65535 |
布尔型 | boolean | 1个字节 | true / false |
注意事项:
- 字符串不是基本类型,而是引用类型
- 浮点型可能只是一个近视值,并非精确的值。
- 数据范围与字节数不一定相关,例入
float
数据范围比long
更加广泛,但是float
是4个字节,long
是8个字节。 - 浮点数默认是
double
类型,如果使用float
类型,加后缀F。 - 整数默认是int类型,如果使用long,加后缀L。
- Java中没有无符号数。
引用数据类型
字符串、数组、类、接口、lambda
数据类型转换
java程序中要求参与计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
数据类型不一样时会发生数据类型转换。
自动类型转换(隐式转换)
- 特点:代码不需要进行特殊处理,自动完成。
- 规则:数据范围从小到大,与字节数不一样相关。
public class Demo01DataType
{
public static void main(String[] args) {
System.out.println(1024); // 默认int
System.out.println(3.14); // 默认double
// 左边long 右边int
// long <-- int 符合数据范围从小到大
long num1 = 100; // 这一行代码发生了自动类型转换
System.out.println(num1);
// 左边double 右边float
// double <-- float 符号从小到大的规则
double num2 = 2.5f; // 也发生了自动类型转换
System.out.println(num2);
// 左右式float类型,右边是long类型,
// float <-- long ,【数据范围】是float更大一些,符合从小到大的规则
float num3 = 30L; // 也发生了自动类型转换
System.out.println(num3);
}
}
数据范围从大到小会报错
public class Demo02DataType{
public static void main(String[] args){
int num = 100L; // long --> int 不能自动类型转换,可以强制转换
System.out.println(num);
}
}
强制类型转换(显式转换)
- 代码需要进行特殊的格式处理,不能自动完成。
- 格式: 范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据
public class Demo02DataType{
public static void main(String[] args){
// smaller type varName = (smaller type)value;
int num = (int)100L;
System.out.println(num);
}
}
注意事项:
-
强制类型转换一般不推荐使用,可能发生精度损失、数据溢出。
赋予的值的大小超过了变量的类型存储空间就会发生数据溢出
public class Demo02DataType{
public static void main(String[] args){
// 数值超过int类型
int num1 = 6000000000;
System.out.println(num);
}
}
// 强制类型转换,数据溢出
public class Demo02DataType{
public static void main(String[] args){
int num1 = (int)6000000000L;
System.out.println(num1);
}
}
// 显示的值不准确
// 强制类型转换,精度损失
public class Demo02DataType{
public static void main(String[] args){
int num3 = (int)3.99;
System.out.println(num3);
}
}
btye
/short
/char
都可参与数字运算。
public class Demo02DataType{
public static void main(String[] args){
char ch = 'A';
System.out.println(ch + 1);
}
}
- 三种类型在参与运算时,会被首先提升为**
int
类型**,然后再计算。
public class Demo02DataType{
public static void main(String[] args){
short num4 = 1;
short num5 = 2;
short result = num4 + num5;
System.out.println(result);
}
}
// 使用int变量接收后
int result = num4 + num5;
// 或则将结果强制转换为short
short result = short(num4 + num5);
- 布尔型不能发生任何数据类型转换!
以上是关于JAVA学习 --初识JAVA的主要内容,如果未能解决你的问题,请参考以下文章