一、java语言的特点
1.面向对象
java 是一种纯面向对象的编程语言,它将数据和操作数据的方法封装在一起形成对象。面向对象编程具有封装、继承和多态三大特性。
2.跨平台性
java 的跨平台特性主要依赖于 java 虚拟机(JVM)。java 程序首先被编译成字节码(.class 文件),而非直接编译成特定平台的机器码。不同操作系统上只要安装了对应的 JVM,就可以运行这些字节码文件。
3.安全性
java语言在设计时充分考虑了安全性,提供了多层次的安全机制,例如强类型检查、自动内存管理等。
4.多线程支持
java语言内置了多线程编程的支持。多线程可以提高程序的运行效率和响应性。同时还提供了同步机制(如synchroized关键字)来保证线程的安全,避免多个线程同时访问共享资源时产生的数据不一致问题。
5.丰富的类库
java拥有庞大、丰富的标准类库。这些类库提供了大量的现成类和方法,极大提高了开发效率,减少开发成本。
6.分布式
java提供了丰富的API和协议,支持分布式计算。在分布式系统中,java程序可以通过网络调用其它计算机上的对象方法。
7.高性能
虽然java是解释型语言,但即时编译(JIT)技术的使用可以将经常执行的代码编译成机器码,从而提高程序的执行效率
二、java语法基础
1.标识符
标识符用于给程序中的元素命名的符号,例如类名、对象名、方法名、变量名等
2.命名规则
Ⅰ标识符有字母、数字、下划线以及美元符号($)构成,标识符不能以数字开头
Ⅱ不能使用关键字作为标识符,例如关键字有class、public、if、else等
3.命名规范
Ⅰ方法名和变量名通常使用小驼峰命名法,例如 studentAge、getUserName
Ⅱ类名和接口名通常使用大驼峰命名法,例如 Student、UserService
Ⅲ常量名通常全部字母大写,单词之间使用下划线分隔,例如 MAX_VALUE、PI
Ⅳ包名通常全部字母小写,例如 com.user.project
4.注意事项
Ⅰjava语言的标识符区分大小写,例如name和Name属于不同的标识符
Ⅱ美元符号虽然可以用于标识符中,但通常不建议使用
Ⅲ每一条语句均以分号结尾
三、java数据类型
java的数据类型主要分为基本数据类型和引用数据类型
基本数据类型:
1.数值型:byte:8位有符号整数,取值范围-128到127;
short:16为有符号整数,取值范围-32768到32767;
int:32位有符号整数,取值范围-2147483648到2147483647,用于大多数整数运算场景;
long:64位有符号整数,取值范围-9223372036854775808 到 9223372036854775807
2.浮点型:float:32为单精度浮点数。定义时须在数字后面加上f或F,如2.13f
double:64位双精度浮点数,是默认的浮点类型,通常用于大多数的浮点运算
3.字符型:char:用于表示单个字符,用单引号括起来,如:‘A’
4.布尔型:boolean:只有两个取值true和false
引用数据类型:
1.类:类是一种抽象数据类型,其中定义了对象的属性和行为。通过类可以创建对象,对象是类的实例。
2.接口:是一种抽象数据类型。实现接口的类必须要实现接口中定义的抽象方法。
3.数组:用于存储多个相同数据类型的集合。
4.枚举:一种特殊的数据类型,定义了一组命名常量,枚举类型可以使代码更具可读性和可维护性。
5.字符串类型:java语言中字符串是String类的对象,属于引用数据类型
※基本数据类型和引用数据类型的区别
基本数据类型存储的是实际的值,而引用数据类型存储的是对象的引用(内存地址)。在赋值操作过程中,基本数据类型传递的是值的副本,而引用数据类型传递的则是地址的传递。
※类型转换
java语言中的类型转换分为自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)
1.自动类型转换(隐式)
需要满足的条件是:(1)转换前的数据类型和转换后的数据类型兼容
(2)转换后的数据类型比转换前的数据类型表示范围大
2.强制类型转换(显式)
将表示范围大的数据类型转换为表示范围小的类型,就须要进行强制类型转换。在这个过程中可能会造成数据的丢失。
基本数据类型:byte->short->char->int->float->double
从左到右的转换属于自动类型转换,而从右到左的转换为强制类型转换
示例代码:自动类型转换
运行结果:
示例代码:强制类型转换
运行结果:
引用数据类型的转换
向上转型:自动类型转换 小-->大
向下转型:强制类型转换 大-->小
示例代码:
创建父类Animal
创建子类Dog
测试类型转换:
运行结果:
四、运算符
算数运算符:+ :加法运算,也可用于字符串的连接 ;
- :减法运算 ;
* :乘法运算 ;
/ :除法运算,操作数为整数时,结果会取整 ;
% :取模运算,返回余数
++ :自增运算,支持前缀和后缀形式,如a++、++a
-- :自减运算,支持前缀和后缀形式,如a--、--a
比较运算符:== :判断两个值是否相等
!= :判断两个值是否不相等
> 、 < 、 >= 、<= :大于、小于、大于等于、小于等于
赋值运算符:= :将右边的值赋值给左边
+= :先执行加法,再赋值
-= :先执行减法,再赋值
*= :先执行乘法,再赋值
/= :先执行除法,再赋值
%= :先执行取模运算,再赋值
逻辑运算符:&&:与运算符,两边均为真,结果才为真
| |:或运算符,两边全为假,结果才为假
!:非运算符,对操作数进行取反操作
三元运算符:语法为:条件表达式?表达式1:表达式2,若条件表达式为true,则返回表达式1的值,反之返回表达式2的值
instanceof运算符:用于判断一个对象是否为指定类或接口的实例,返回布尔类型的值
五、示例代码
java作为纯面向对象的语言,可以说是万物皆对象。类属于一种抽象的数据类型,它是对一类对象的共同属性和行为进行了描述;对象是根据类创建出来的具体实例。创建对象的过程也称为实例化的过程。类中实例成员的使用,需要该类的实例对象去呼叫;类中静态成员的使用,可以通过类名去呼叫或者实例对象去呼叫。
示例代码:以创建动物类为例
运行结果: