数据类型与运算符


前言

要想编写规范、可读性高的Java程序,就必须对Java语法有所了解。基本语法是所有编程语言都必须掌握的基础知识,也是整个程序代码不可缺少的重要部分。


一、初识Java

1.特点

  • 高级语言
  • 简单的
  • 面向对象的
  • 分布式的
  • 健壮的
  • 安全的
  • 平台无关的
  • 可移植的
  • 解释型的
  • 高性能的
  • 多线程的
  • 动态的

面向对象:
传统以C语言为代表的过程式编程语言,以算法为驱动(程序=算法+数据)。而面向对象编程语言则以对象为中心,以消息为驱动(程序=对象+消息)。
平台无关:
所谓Java语言是平台无关的语言,是指用Java编写的应用程序,编译成字节码文件(.class后缀)后,不用修改就可在不同的软/硬件平台上运行。这得益于Java的虚拟机。
健壮性:
Java丢弃了指针。这样可以杜绝内存的非法访问
Java的垃圾回收机制。

2.Java体系

Java SE
Java SE是Java的基础,也是Java的核心。它允许开发和部署在桌面、服务器、嵌入式环境和实施环境中使用Java应用程序。Java SE为Java EE提供了基础。
Java EE
Java EE是在Java SE基础之上发展起来的Java企业版,包含了Web开发等企业级的开发技术,多用于Web系统的服务端开发。使用JavaEE可以快速开发出安全。稳定、性能较高的大型系统。
Java ME
在Java发展之初,Java还有另一个分支—Java ME 。Java ME可以用于一些嵌入式设备的Java程序开发。但随着时代的发展,Java ME逐步走向没落,目前的应用范围也在逐步减小。

3.Java程序的说明

一个源文件最多只能有一个public类(但不是必须的)。如果源文件包含一个public类,则该源文件必须以public类名命名。
Java程序的执行入口是main()方法:

public static void main(String[] args){...}

(1)Java注释

单行注释、多行注释、文档注释。
注释:
单行//
多行//
文档注释/**…*/

java是一门跨平台语言:一次编写,处处运行。
java能够跨平台的原因,是因为有各种类型的jvm,且各个jvm不跨平台。
写代码(java)->编译(class)->执行class
jvm(java virtual machine):java虚拟机
jre(java运行环境,java runtime environment):jvm+核心类库 :只能运行java程序,但不能开发
jdk(java development kit):jre+运行环境工具 :既能运行java程序,又能开发

java语言是区分大小写的。
第一个java程序:

public class Test{
public static void main(String[] args){
System.out.println(“hello world”);
}
}

1.class后面的称之为“类名”
2.public class 后面的类名必须和文件名保持一致
3.一个文件可以有多个类(class),但是只能有一个公共类(public class)
4.每个语句以分号结尾(程序中一切符号都是半角英文)
5.程序的入口就是main()方法(其他语言称之为函数)

转义符:
\n:回车
\t:制表符
\r:回车符

易错分析

1.每个 Java 源文件的命名必须是文件中定义的某个类的名字。
每个 Java 源文件的命名必须是文件中 public 修饰的类的名字。

2.编译的命令是javac;执行的命令是java。
3.JDK 是 java 开发工具集;JRE 是 java 运行时环境;API 是一些源码。JVM 可以解释并执行 java 程序。

二、数据类型和运算符

1.数据类型

(1)标识符和关键字

Java对各种变量、方法、类和包等要素命名时使用的字符序列称为标识符。
标识符由字母、数字、下划线、美元符号组成,并且首字母不能是数字。

  • 不能是Java关键字作为标识符。
  • 标识符没有长度限制。
  • 标识符对大小写敏感。

下面是不同类型的标识符的命名规则:

  • 对于变量和方法名,建议第一个单词以小写字母作为开头,后面的每个单词则都要以大写字母开头。
  • 对于类名,它和变量名、方法名的区别在于,第一个单词的首字母也需要大写,如果类名称中包含单词缩写,则这个缩写词的每个字母均应大写。
  • 常量(即不可变的量)标识符应该都使用大写字母,并且指出该常量完整的含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词,例如MAX_VALUE。
  • 对于包的名字,通常用小写。

Java关键字对Java编译器有特殊的意义,它们用来表示一种数据类型或者表示程序的结构,不能用作变量名、方法名、类名和包名。

(2)变量和常量

常量:利用final关键字来定义

(3)数据类型

数据类型
byte的由来组成

字节:byte=由8个bit组成(-128~127)
短整数:short=2byte(16bit)
整数:int=4byte(32bit)
长整数:long=8byte(64bit)

Java可以直接表示的进制:

  • 二进制(0~1):0b数字,0b011表示3
  • 十进制(默认)
  • 八进制(0~7):0数字,011表示9
  • 十六进制(09,AF):0x

基本数据类型转换

  • 容量小的类型可自动转换成容量大的数据类型
    在这里插入图片描述
  • byte、short、char参与运算时会被自动转换为int类型。
  • 容量大的数据类型转换成容量小的数据类型时,需要加上强制转换符,但可能造成精度降低或溢出,使用时需要格外注意。
  • 有多种类型的数据混合运算时,系统首先自动地将参与运算的变量或字面值常量转换成容量最大的数据类型,然后再进行计算。

(4)成员变量和局部变量

  • 类的成员有变量和方法,为示区分往往将它们称为成员变量和成员方法,所有成员方法可共享(使用)所有的成员变量。
  • 方法,在别的语言中称为函数;在方法内部可以定义变量,称之为局部变量;方法可以接受参数,参数也可以视为局部变量。
  • 语句块是一对花括号{}包裹起来的若干代码,在语句块中也可以定义变量,也称之为局部变量。

(5)从控制台输入数据

再通过控制台输入数据前,需要先在程序的第一行加入了代码import java.util.Scanner;,引入Scanner工具类,通过该工具类从控制台获取输入。之后,就可以通过(Scanner input=new Scanner(System.in);)
注意: 第一,不能直接从控制台输入char类型的数据; 第二,在从控制台输入String类型的数据时,除了使用nextLine()以外,还可以使用next(),二者的区别是nextLine()会将用户输入的“空格、回车符、制表符”等空白字符也作为字符串的内容,而next()会将这些空白符作为输入字符串的结束标识。

2.运算符

Java语言支持如下运算符。

  • 算术运算符:+、-、*、/、%、++、- -。
  • 关系运算符:>、<、>=、<=、= = 、!=。
  • 赋值运算符:=、+=、-=、*=、/=等。
  • 逻辑运算符:!、&&、||等。
  • 位运算符:~、&、|、^、>>、<<、>>>(无符号右移)。

算术运算符
从参与运算的因子的数量,可以将算术运算符分为一下3类:
单目运算符:+、-、++、—。
双目运算符:+、-、*、/、%。

%:如果有符号问题,结果永远与被除数保持一致。(即第一个数)

三目运算符:(表达式1)?(表达式2):(表达式3);

逻辑运算符
&&(短路与)||(短路或):根据真值表判断(短路特性),如果根据一边的值可以判断出,便不会判断另一个式子
&(逻辑与)|(逻辑或):两边都进行判断
短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程时,应该优先考虑使用短路与和短路或。

3.表达式:

表达式是符合一定语法规则的运算符和操作数的组合。下面列举了一些表达式,需要注意的是,单个操作数也是表达式。
表达式的值:对表达式中的操作数进行运算得到的结果。 表达式的类型:表达式的值的数据类型即为表达式的类型。

易错分析

1.当char遇到int时,会自动转换为int类型。比如’a’的编码值是97。
2.在这里插入图片描述
这样的话,会发生编译错误。byte和字面整型值11相加时,会自动转为int类型。int赋值给byte时必须进行强制类型转换。
3.小数的默认类型是double,不是float。正确写法是float num=10.1f或者double num=10.1;
在这里插入图片描述
4.String可以使用“==”进行比较但StringBuffer不行,因此不能使用“==”对StringBuffer进行比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值