前言
本文是本人学习JAVA时在原有基础上综合总结出的一些知识点,其中可能包含个人观点,希望对各位有所帮助。
一、什么是JAVA语言?
JAVA语言(也称为Java)是一种广泛使用的编程语言,由Sun Microsystems(现被Oracle收购)在1995年首次发布。Java的设计初衷是“一次编写,到处运行”(Write Once, Run Anywhere),这意味着开发者可以使用Java编写应用程序,并在几乎任何支持Java的平台上运行这些应用程序,而无需重新编译。
Java的主要特性包括:
面向对象:Java是一种面向对象的语言,支持类和对象的概念。
跨平台性:Java通过Java虚拟机(JVM)实现了跨平台性。JVM可以在不同的操作系统上运行,只要这些操作系统安装了合适的JVM。Java源代码被编译成字节码(Bytecodes),然后由JVM执行。
自动内存管理:Java提供了垃圾回收机制来自动管理内存,程序员不需要显式地释放不再使用的内存。
健壮性:Java在编译和运行时会进行许多检查,以确保代码的正确性和健壮性。
丰富的API:Java标准库(Java API)提供了大量的类和接口,用于处理各种常见的任务,如文件操作、网络通信、图形用户界面(GUI)等。
安全性:Java提供了许多内置的安全特性,如访问控制、异常处理等。
多线程:Java支持多线程编程,使得开发者可以编写能够同时执行多个任务的应用程序。
动态性:Java具有一定的动态性,例如可以在运行时加载类,以及使用反射API来检查和修改代码的行为。
Java广泛应用于各种领域,包括企业级应用、移动应用开发(Android应用主要使用Java或Kotlin)、Web开发(使用Servlet、JSP、Spring等框架)、桌面应用开发等。由于Java的跨平台性和丰富的API,它成为了许多大型项目的首选编程语言。
Java语言的三个版本:
JavaSE: Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础
JavaME: Java 语言的(小型版),用于嵌入式消费类电子设备
JavaEE: Java 语言的(企业版),用于 Web 方向的网站开发
JDK、JRE与JVM:
JVM(Java Virtual Machine),Java虚拟机
JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)
JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具
一般来说,我们只需安装JDK即可,它包含了java的运行环境和虚拟机。
二、基本数据类型
Java是一个强类型语言,Java中的数据必须明确数据类型。在Java中的数据类型包括基本数据类型和引用数据类型两种。
数据类型 | 关键字 | 内存占用 | 取值范围 |
整数类型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int | 4 | -2的31次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点类型 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 |
double | 8 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 | |
字符类型 | char | 2 | 0-65535 |
布尔类型 | boolean | 1 | true,false |
注:在没有声明的情况下,整数类型默认为int型,浮点类型默认为double型.
基本数据类型的转化:
基本数据类型之间存在精度大小的排序
当把数据范围小的数据转化为数据范围大的数据时,会自动完成转化(隐式)
当把数据范围大的数据转化为数据范围小的数据时,必须使用显式转化
举个例子,当定义double i = 0.1 ; int j = 2 ; 执行赋值 double sum1 = i +j 时 (小转大) , 此时会自动完成转化 , 输出 sum1 = 2.1; 而执行 int sum2 = j + i (大转小) , 程序会报错 , 需要强制类型转化int sum2 = (int) i + j , 此时就会造成精度0.1丢失,输出sum2 = 2.
三、运算符
算术运算符
符号 | 作用 |
+ | 前后相加 |
- | 前者减后者 |
* | 前后相乘 |
/ | 前者除后者 |
% | 获取两个数据做除法的余数 |
注意区分除(/)和取余(%):两个数据做除法,/取结果的商,%取结果的余数。
自增自减运算符
符号 | 作用 |
++ | 变量的值加1 |
-- | 变量的值减1 |
注意事项:
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
最常见的用法:单独使用。
赋值运算符
赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可修改的,不能是常量。
符号 | 作用 | 说明 |
= | 赋值 | a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-+ | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a×b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
关系运算符
关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。
符号 | 说明 |
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注:
关系运算符的结果都是boolean类型,要么是true,要么是false。
千万不要把“==”误写成“=”,"=="是判断是否相等的关系,"="是赋值。
逻辑运算符
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。
符号 | 作用 | 说明 |
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
短路逻辑运算符
符号 | 作用 | 说明 |
&& | 短路与 | 作用和&相同,但是有短路效果 |
|| | 短路或 | 作用和|相同,但是有短路效果 |
在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
三元运算符
关系表达式 ? 表达式1 : 表达式2 ;
解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。