Java基础——常量、进制、变量、数据类型及运算符

2023-11-10

今天呢阿Q就带大家了解一下java的常量、变量、数据类型以及运算符的相关知识。

常量

(1)在程序的运行过程中,其值是不可以发生改变的量。
(2)常量的分类:字面值常量,自定义常量(将在后边的讲解中给出),字面值常量又分为

​ 整数常量:12,-23

​ 实数常量:12.5,-65.43

​ 字符常量:‘a’,‘A’,‘0’

​ 字符串常量:“hello”

​ 布尔常量:true,false

​ 空常量:null
(3)常量可以直接被输出。

进制

(1)是一种进位的方式。X进制,表示逢x进1。
(2)java中整数常量的表示

  • 二进制 由0,1组成。以0b开头。JDK7以后的新特性。

  • 八进制 由0-7组成。以0开头。

  • 十进制 由0-9组成。默认就是十进制。

  • 十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。

(3)计算机存储数据时用高低电平(高低位)来存储的 也就是 二进制的 1 和 0,1个就二进制数据被称为位 (bit)
​ 1byte = 8 bit;
​ 1Kb = 1024byte;
​ 1Mb = 1024Kb;
​ 1Gb = 1024Mb;
​ 1Tb = 1024Gb;
(4)进制转换:进制转换详情见链接https://jingyan.baidu.com/article/495ba84109665338b30ede98.html,掌握方法即可,因为电脑的计算器都带有进制转换功能,此处不再赘述。

变量

(1)程序的运行过程中,在指定范围内发生改变的量。
(2)格式:
​ 数据类型 变量名 = 初始化值;

​ 变形格式:
​ 数据类型 变量名;
​ 变量名 = 初始化值;

​ 举例:
​ 方式1: byte b = 10;

​ 方式2: byte b;
​ b = 10;
(3)注意事项
​ A:在一对{}内,是不能重复定义变量的。
​ B:赋值的时候,尽量不要超出范围。
​ C:定义长整数型,必须加后缀:l或者L
​ D:定义单精度类型的时候,必须加后缀:f或者F
​ E:变量要先初始化再使用(在使用之前初始化即可)

(4)代码举例:

class VariableDemo {public static void main(String[] args){//定义字节变量byte b = 12;System.out.println(b);//定义短整型变量short s = 1234;System.out.println(s);//定义整数变量int i = 12345;System.out.println(i);//定义长整型变量long l = 12345678912345L;System.out.println(l);//这是1//定义单精度类型(7-8位的有效数字)float f = 12.5F;System.out.println(f);//定义双精度类型(15-16位的有效数字)double d = 12.5;System.out.println(d);//定义字符类型char c = 'a';//重新赋值,Java中的字符采用的编码是Unicode编码。占用2个字节。
​		c = '中';System.out.println(c);//定义布尔类型boolean flag = true;System.out.println(flag);}}
数据类型

(1)分类:

​ 基本类型:4类8种。
​ 引用类型:类,接口,数组
(2)基本类型
​ 整型:
​ byte 1字节
​ short 2字节
​ int 4字节
​ long 8字节
​ 浮点型:
​ float 4字节
​ double 8字节
​ 字符型:
​ char 2字节
​ 布尔型:
​ boolean 不明确。可以认为是1个字节。

注意:

​ 整数默认是int类型。long类型需要加L或者l后缀。
​ 浮点数默认是double类型。float类型需要加F或者f后缀。

(3)类型转换
​ 在运算的过程中,一般要求类型一致。如果遇到不一致的情况,就会有类型转换问题
​ 1:boolean类型不参与转换。
​ 2:隐式转换(从小到大)
​ byte,short,char – int – long – float – double
​ 注意:long是8个字节,float是4个字节。
​ long是整数,float是浮点数,整数和浮点数的存储规则不一样。
​ long的范围是小于float的。
​ 2^63 10^38 > (23)38 > 2^114
​ 3:强制转换(从大到小)
​ 如果你明确知道数据是可以表示,就可以用强制类型转换。
​ 格式:(转换后数据类型)变量或者值
​ 一般情况下,根本不推荐使用强制类型转换。

​ 4:代码

class VariableDemo2{public static void main(String[] args){//定义两个类型不一致变量int x = 10;byte b = 20;//把两个变量进行加法运算byte b2 = x + b;System.out.println(b2);//定义两个类型一致的变量int x = 10;int y = 20;int z = x + y;System.out.println(z);//隐式转换byte a = 10;int b = a;System.out.println(b);
​				
​		//隐式转换float f = 12.5F;double d = a+b+f;System.out.println(d);//强制类型转换int i = 10;byte b2 = (byte)i;System.out.println(b2);
	}}

(4)类型转换的原理(理解即可)
​ 比如把int类型强制转成了byte类型 就是把32位的int的后8位截取出来 再换算成人类能看得懂的源码

(5)字符类型对应的ASCII码表
​ 数字字符和英文字符,包括中文字符,他们都是我们用于交流的数据,而计算机中的数据
​ 底层是二进制的,所以,它不可能直接存储我们使用的这些数据。
​ 必须想办法,把他们变成我们能够存储的数据在计算机中存储。
​ 这样的话,就出了编码表。
​ 编码表:
​ 就是字符及其对应的数值组成的一张表。

​ 最常见的编码表:ASCII码表。(详见resource里面)

class VariableDemo5 
	{
		public static void main(String[] args) 
		{
			System.out.println('a');
			System.out.println('a'+1);//98-1=97	--	'a'
			System.out.println('a'+3);//100
			System.out.println('A'+1);//66-1=65 --	'A'
			System.out.println('0'+1);//49-1=48 --  '0'
		}
	}
运算符

(1)就是把常量和变量连接的符号,一般参与运算使用。
(2)分类:
​ 算术运算符
​ 赋值运算符
​ 关系运算符
​ 逻辑运算符
​ 位运算符
​ 三元运算符
(3)算术运算符
​ +,-,*,/,%,++,–

​ +:正号,加法,字符串连接符。
​ System.out.println(“5+5=” + 5 + 5); //5+5=55
​ System.out.println(5 + 5 + “=5+5”); //10=5+5

​ /:整数相除,结果只能是整数。
​ 如果你想要小数,那么参与运算的数据必须有一个是浮点数类型。

​ %:取余,即整除之后的余数。

​ ++/–:
​ i++ :++放后面 就是说 i++ 这个整体是1,也就是说如果把 i++ 赋给一个 int z 那么z还是1
​ 而这会儿i已经是2了
​ int i = 1;
​ System.out.println(i++);// 1
​ System.out.println(i);// 2
​ ++i:++放后面 就是说 ++i 这个整体是2,也就是说如果把 ++i 赋给一个 int z 那么z还是2
​ 这会儿i是2
​ int j = 1;
​ System.out.println(++j);// 2
​ System.out.println(j);// 2

(4)赋值运算符
​ =,+=,-=,*=,/=,%=

​ int a = 10;
​ 把10赋值给int类型的变量a。

​ a += 20 即为 a = a + 20

​ 注意事项:
​ a = a + 20;
​ a += 20;
​ 结果是等价的,理解不是等价的。

​ 因为+=这种运算符,内含了强制类型转换功能。
​ 比如:
​ short s = 2;

​ s+=3;
​ 等价于
​ s = (short)(s + 3)
(5)关系运算符
​ ==,!=,>,>=,<,<=

​ 特点:关系运算符的结果都是boolean类型。
​ 请千万注意:== 不要写成 =

(6)逻辑运算符
​ &,|,!,^,&&,||

​ &:有false则false
​ |:有true则true
​ !:true变false,false变true
​ ^:相同false,不同true

​ &&:有false则false
​ ||:有true则true

​ &&和&的区别是:如果左边有false了,右边将不再执行。
​ ||和|的区别是:如果左边有true了,右边将不再执行。

​ &&和|| 验证举例:

		int a = 10;
		int b = 20;
		//System.out.println((a++ > 10) & (b-- > 10));//a=11,b=19
		System.out.println((a++ > 10) && (b-- > 10)); //a=11,b=20
		System.out.println(a);
		System.out.println(b);

(7)位运算符
​ 位运算符:是针对二进制数据的运算。
​ & 按位与
​ | 按位或
​ ^ 按位异或
​ ~ 按位取反

	<<	左移	左边的高位舍弃,右边空出的部分补齐0。
	>>	右移	如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1
	>>>	无符号右移 无论最高位是1还是0,左边被移空的高位都填入0
注意:向左移动或者向右移动,其实就是把数据增大或者缩小2的指定次幂。

(8)条件运算符也叫三目运算符
​ 格式:
​ 条件表达式?表达式1:表达式2

​ 执行流程:
​ 根据条件表达式返回的是true还是false,决定结果是什么。
​ 如果是true,就把表达式1作为结果。
​ 如果是false,就把表达式2作为结果。

好了今天就先说到这了,明天继续。想了解更多学习知识,请关注微信公众号“阿Q说”,获取更多学习资料吧!你也可以后台留言说出你的疑惑,阿Q将会在后期的文章中为你解答。每天学习一点点,每天进步一点点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基础——常量、进制、变量、数据类型及运算符 的相关文章

  • 什么是多态?对于多态的理解....

    什么是多态 我们都知道面向对象有四个基本特性 抽象 封装 继承 多态 概括可以理解为 抽象 封装 继承 是多态的基础 多态是抽象 封装 继承的表现 多态 是Java中非常重要的一部分 简单理解 不同类的 对象 对同一消息 做出了不同的响应就
  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • Java特训的第一天——开篇

    我是一名刚入门的Java菜鸟 我选择Java的原因是因为其语法简单 功能强大 从web 到桌面 到嵌入式 无所不能 下面我将谈一谈我对Java语言的认识 Java语言概述 关于Java的介绍网上有很详细的阐述 我在这里就不再细述了 下面只简
  • 剑指offer第二版面试题20:表示数值的字符串(java)

    题目描述 请实现一个函数用来判断字符串是否表示数值 包括整数和小数 例如 字符串 100 5e2 123 3 1416 和 1E 16 都表示数值 但是 12e 1a3 14 1 2 3 5 和 12e 4 3 都不是 分析 1 在数值之前
  • 5、面向对象的设计思想

    一 面向对象设计思想 1 1 面向过程的设计思想与面向对象的设计思想 例如 我要去新疆 面向过程 我开车 我挂挡 我踩油门 我过河北 我过陕西 面向对象 我命令车去新疆 车怎么去不关我事 信息封装在这这个类的内部 我不用去了解车整个开动的过
  • java数组学习

    2021 2 2 数组 一维数组的使用 1 一维数组的声明和初始化 2 如何调用数组的指定位置的元素 3 如何获取数组的长度 4 如何遍历数组 5 数组元素的默认初始化值 6 数组的内存解析 package day01 import jav
  • 7.java类中的方法

    1 类中的方法 1 实例方法 格式 访问限制修饰符 方法的返回值数据类型 方法名称 参数列表 方法体 解释 访问限制修饰符 public 缺省的 方法的返回值数据类型 就是方法的执行结果类型 有返回值时 方法的返回值数据类型一定是方法执行结
  • 【java基础】 方法,实参和形参,方法的重载,签名,递归

    目录 方法概念及使用 实参和形参的关系 重要 方法的重载 方法签名 简单了解 递归 简单介绍 方法概念及使用 方法就是一个代码片段 类似于 C 语言中的 函数 作用 是能够模块化的组织代码 当代码规模比较复杂的时候 做到代码被重复使用 一份
  • 【Java】Java中的String类

    文章目录 一 认识 String 类 二 String 类的常用方法 2 1 构造方法 2 2 String 类对象之间的比较 2 3 字符串查找 2 4 字符串的转换 2 5 字符串替换 2 6 字符串拆分 2 7 字符串截取 2 8 字
  • 进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)

    目录 前言 一 十进制 n进制 进制转换详解 1 先说说什么是进制 2 二进制介绍 3 十进制 n进制 进制转换详解 重点 十进制 gt n进制 2 8 16 n进制 2 8 16 gt 十进制 非十进制间的互相转化 二 原码 反码 移码
  • POI解析word\pdf中表格

  • ubuntu 11配置hadoop

    最近没事 研究下ubuntu 配置hadoop ubuntu版本 64 bit 11 04 hadoop版本 hadoop1 2 1 一 在Ubuntu下创建hadoop用户组和用户 1 创建hadoop用户组 sudo addgroup
  • 《编写高质量代码:改善Java程序的151个建议》读书笔记

    编写高质量代码 改善Java程序的151个建议 秦小波 67个笔记 前言 本书附带有大量的源码 下载地址见华章网站www hzbook com 建议11 养成良好习惯 显式声明UID SerialVersionUID 也叫做流标识符 Str
  • java 泛型 作用与定义

    1 泛型方法的定义和使用 public static void main String args throws ClassNotFoundException String str get 哈士奇 world System out print
  • 重试机制的实现(4m,10m,10m,1h,2h,6h,15h)

    项目场景 由于我们现在所做的项目有有很多的外放接口供代理商调用 但是有些接口的响应并不是实时返回的 此时我们就需要使用回调接口的方式 将信息响应给代理商 在这期间可能会出网络不稳定等其他情况 导致回调接口调用失败 所以需要特定的回调重试机制
  • Java 泛型 T,E,K,V,?

    泛型带来的好处 在没有泛型的情况的下 通过对类型 Object 的引用来实现参数的 任意化 任意化 带来的缺点是要做显式的强制类型转换 而这种转换是要求开发者对实际参数类型可以预知的情况下进行的 对于强制类型转换错误的情况 编译器可能不提示
  • CUBLAS变量解释(1)

    变量类型 cublasOperation t 解释 该类型表明输入的密集矩阵的形式 其值有 CUBLAS OP N 非转置 CUBLAS OP T 转置 CUBLAS OP C 共轭转置 该函数对应于BLAS FORTRAN版 的变量字符
  • java基础之HashSet详解

    HashSet详解 HashSet是基于HashMap实现的一个单列存储的集合类 将所有的数据存在HashMap的key值中 而value全部使用一个Object对象存储 继承关系 public class HashSet
  • mysql无法连接问题及其环境变量配置

    问题 Can t connect to MySQL server on localhost 3306 10061 方案一 不推荐 第一 在环境变量 系统变量的path中添加mysql的bin目录 我的是D mysql mysql 8 0 2
  • java连接oracle出现ORA-12505错误

    问题 sqlplus可以连接 但java连接报错 ORA 12505 ORA 12505 TNS listener does not currently know of SID given in connect descr 解析 原因 数据

随机推荐