Java学习笔记(一)——变量数据类型运算符

前言

Java的各种版本:

Java SE(Java standard edition):标准版,定位在个人计算机上的应用。
Java EE(Java enterprise edition):企业版,定位在服务器端的应用。
Java ME(Java micro edition):微型版,定位在消费性电子产品的应用(几乎不用)。

Java在运行过程中既要经过编译也要经过解释,如图:
此图片来源于尚学堂
JDK、JRE、JVM之间的关系:

JVM(Java virtual machine):用于执行bytecode字节码文件的虚拟计算机,是Java语言实现跨平台的核心机制。Java语言跨平台的实质就是Java针对每一种操作系统开发相应的虚拟机,Java语言运行时是在各平台的Java虚拟机上边解释边运行,从而屏蔽了底层运行平台的差异,实现了一次编译到处运行。
JRE(Java runtime environment):包含Java虚拟机、库函数、运行Java应用程序所必须的文件。
JDK(Java development kit):包含JRE、编译器和调试器等用于Java程序开发的文件。

注释

此图片来自尚学堂
示例:
此图片来自尚学堂

标识符

此图片来自尚学堂

变量(variable)

此图片来自于尚学堂
注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是应用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,以分号结束。
  • 建议逐一声明每一个变量,可提高程序可读性。

变量的分类和作用域
此图片来自于尚学堂
常量(constant)
常量通常指一个固定的值,Java中用关键字final来定义常量,常量被初始化后不能更改它的值。

final type varName = value;

为了更好的区分和表述,一般将1、2、3、‘a’、‘b’、“hello world”、true、false等称为字符常量,将final 修饰的PI等称为符号常量

基本数据类型(primitive data type)

Java是一种强类型语言,每个变量必须声明其数据类型。Java数据类型分为基本数据类型(primitive data type)和引用数据类型(reference data type)。

Java中定义了3类8种数据类型:

  • 数值型:byte,short,int,long,float,double
  • 字符型:char
  • 布尔型:boolean
    此图片来自尚学堂
    引用数据类型统一占4个字节,记录的是其应用对象的地址。
    byte:1字节
    short:2字节
    int:4字节
    long:8字节
    float:4字节
    double:8字节

整型
此图片来自于尚学堂
浮点类型
在这里插入图片描述
字符型

字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如‘A’是一个字符,它与"A"是不同的,后者表示含有一个字符的字符串。
char类型用来表示在Unicode编码表中的字符,Unicode编码被设计用来处理各种语言的文字,它只占2个字节,可允许有65536个字符。
Unicode具有从0到65535之间的编码,他们通常用从‘/u0000’到‘/uFFFF’之间的十六进制值来表示。(其中u表示Unicode)

常用转义字符
在这里插入图片描述
在这里插入图片描述

boolean型
在这里插入图片描述
在这里插入图片描述

运算符(operator)

在这里插入图片描述
赋值运算符
在这里插入图片描述
关系运算符
在这里插入图片描述
逻辑运算符
在这里插入图片描述
短路与和逻辑与的区别:逻辑与是检查所有条件再给出结果,短路与不一定检查所有条件。

位运算符
在这里插入图片描述
连接符
在这里插入图片描述
运算符优先级问题
在这里插入图片描述

数据类型的转换

自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。
如下图,实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的缺失。
在这里插入图片描述
可以将整形常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出其表示范围即可。

强制类型转换
强制类型转换又称为造型(cast)。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但有可能造成精度降低或者溢出。

//语法格式
(type) var

注意:

  • 当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断为一个完全不同的值。
  • 不能在布尔类型和任何数值类型之间做强制类型转换。

基本类型转换时常见错误和问题

  • 操作比较大的数时,要留意是否溢出,尤其是整数操作时。

简单的键盘输入和输出

import java.util.Scanner;
public class TestScanner {

	public static void main(String[] args){
		Scanner s = new Scanner(System.in); 
		//要求输入用户名, 年龄,薪水(月薪)
		System.out.println("请输入您的用户名: ");
		String uname = s.nextLine);
		System.out.println("请输入您的年龄: ");
		int age = s.nextIntQ:
		System.out.println("请输入您的月薪: ");
		double monthSalary = s.nextDouble(;
		System.out.println("程序运行结束! ! ! ");
		System.out.println("用户名: " +uname+ "\t年龄: "+age+
		"\t月薪:" + monthSalary+ "\t年薪: "+ (12*monthSalary));
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值