博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习笔记
阅读量:3914 次
发布时间:2019-05-23

本文共 1519 字,大约阅读时间需要 5 分钟。

一、常量

1、整数常量,所有整数

2、小数常量、所有小数

3、布尔(boolean)型常量,较为特有,只有两个数值,true,false

4、字符常量,将一个数字字母或者符号用单引号(‘’)标识

5、字符串常量,将一个或多个字符用(“”)标识

6、null常量,只有一个数值就是:null

二、进制转换

(1个字节=8个二进制位=8bit位)

1、八进制,十六进制与二进制的转换

八进制数:其实就是二进制位中,3个二进制位为一个八进制位

十六进制:其实就是二进制位中,4个二进制位为一个十六进制位

2.负数的二进制表现形式

其实就是将这个数的正数的二进制去翻,加1

取反:就是将0变为1,1变为0

(负的十进制数,二进制位的最高位是1)

三、变量

1、内存中一个存放不确定数据的区域

2、该区域有自己的名称(变量名)和类型(数据类型)

3、该区域的数据可以再同一类型范围内不断变化

4、该区域可以不断地重复使用

四、数据类型

1、基本数据类型

整数类型:byte(1个字节:-128~127)、short(2个字节:-32768~32767)、int(4个字节;-2^31~2^31-1)、long(8个字节)

浮点类型:float(4个字节)、double(8个字节)

字符型:char(0~65535)

布尔型:boolean

整数默认:int   小数默认:double

2、引用数据类型

类:class

接口:interface

数组:[ ]

五、自动类型提升

例:

class Demo{    public static void main(String[] args){        //定义变量x的类型为int,变量a的类型为byte        int x=5;        byte a=1;        x=x+a;        System.out.println(x);    }    }

样例中,x在内存中占4个字节,a在内存中占1个字节,虽然两个变量所占的内存空间不一致,但是同为数值型,因为最终结果存储的位置是x,所以,系统会进行自动类型提升,将byte类型的变量a,自动提升为占内存4个字节的int型变量,因此输出结果为6。

注意:系统能进行自动类型提升的前提是等号两边同为数值型。

六、强制类型转换

我们来看这样一组代码:

class Demo {	public static void main(String[] args) 	{		byte a=3;		a=a+4;		System.out.println(a);	}}

这个代码在运行时,会出现这样的问题:

出现上面这个错误的原因,是在Java中,对于整数型数据,默认的类型为int,上面的代码中,4的数据类型便是int。因此4在内存中占用4个字节,而将4个字节的数值4,存放到内存大小为1个字节的变量a中,就会存在精度丢失,我们可以对代码进行如下修改,进行强制类型转换。

class Demo {	public static void main(String[] args) 	{		byte a=3;		a=(byte)(a+4);        //强制类型转换		System.out.println(a);	}}

最终结果为:

未进行强制类型转换前的结果转换成二进制为:0000-0000 0000-0000 0000-0000 0000-0111

强制类型转换,会将高位的3个字节,直接丢弃掉,则原二进制变为:0000-0111。由此可见,强制类型转换的前提为,运算结果的大小,不能大于转换后内存的大小,否则就会产生精度丢失。

转载地址:http://tbirn.baihongyu.com/

你可能感兴趣的文章
[项目更新] 集成RabbitMQ队列与EventBus总线
查看>>
尝鲜!.NET5实操之docker+k8s,这10个坑,你不得不知!
查看>>
【招聘(深圳)】TCL通讯科技控股有限公司
查看>>
学习笔记 | 传统企业互联网改革之道
查看>>
真正的高手,都有增长思维!(深度好文)
查看>>
推荐一款.NET Core开源爬虫神器:DotnetSpider
查看>>
Leansoft再发招贤令:面试官徐磊有话讲 | IDCF
查看>>
关于C# Span的一些实践
查看>>
linq 查询的结果会开辟新的内存吗?
查看>>
WPF开发的实用小工具 - 快捷悬浮菜单
查看>>
.Net orm 开源项目 FreeSql 2.0.0
查看>>
多线程并发如何高效实现生产者/消费者?
查看>>
学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
查看>>
IdentityServer4系列 | 简化模式
查看>>
如何在 C# 中使用 AutoMapper
查看>>
BCVP开发者说第4期:Remember.Core
查看>>
Entity Framework Core 5中实现批量更新、删除
查看>>
小试YARP
查看>>
如何使用 C# 中的 HashSet
查看>>
api-hook,更轻量的接口测试工具
查看>>