Java学习笔记三——数据类型
前言
Java是强类型(strongly typed)语言,强类型包含两方面的含义:
- 所有的变量必须先声明后使用;
- 指定类型的变量只能接受预支匹配的值。
这意味着每一个变量和表达式都有一个在编译时就确定的类型。
Java数据类型分为两大类:基本类型和引用类型。
基本数据类型
Java的基本数据类型包括:boolean、字符型和数值类型。
数值类型包括:整型和浮点类型

boolean
大小:Java规范并没有强制指定boolean类型的变量所占内存大小
范围:true或false
例子:boolean a = true;
boolean b = false;
byte
大小:1个字节,即在内存中占8位
范围:-128~127,即:-27~27-1
例子:byte a = 12;
short
大小:2个字节
范围:-32768~32767,即:-215~215-1
例子:short a = 12;
int
大小:4个字节
范围:-2147483648~2147483647,即:-231~231-1,留个印象:21亿多
例子:int a = 12;
long
大小:8个字节
范围:-263~263-1,留个印象:92亿亿
例子:long a = 12L;
注意:
- int是最常用的整数类型,直接给出一个整数值默认就是int类型
- 若要定义成long型,必须在数字后面加上l或L,一般使用L,因为小写l和数字1很像,容易出错
字符型
大小:2个字节
例子:char a = 'a';
字符型通常用于表示单个的字符,必须使用单引号(')括起来,如:'a'
单浮点数
大小:4个字节
例子:float a = 12.3f
注意:Java默认的浮点数是双浮点数(double),所以使用float时必须加上f或F
双浮点数
大小:8个字节
例子:double a = 12.3;
注意:若需要数据非常精确的话,不要使用浮点数,以为Java的浮点数不精确,应该使用类Decimal,以后会由讲解
基本数据类型的类型转换
自动类型转换
Java所有数值类型的变量都可以相互转换,转换规则:表数范围小的可以向表数范围大的类型转换。
即:byte——> short ——> int ——> long ——> float ——> double
char ——> int
例子:

强制类型转换
当转换时不符合上面的规则,则编译器会报错,如:

这时需要强制转换,如:

注意:强制类型转换会失去精度,如上图,小数部分丢失了。
Java学习笔记三——数据类型的更多相关文章
- Java学习笔记三:Java的变量、常量、变量的类型及使用规则
Java的变量.常量.变量的类型及使用规则 每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字.关键字对 Java 的编译器有着特殊的意义. 一:Java中的关键字: 注:Java ...
- Java学习笔记2——数据类型和转换
前提知识: 1字节=8bit:1bit以一个二极管表示,代表2个状态(0或者1):2bit代表22即4种状态(00,01,10,11),8bit即是28即256种状态,16bit即是65536种状态. ...
- 【原】Java学习笔记003 - 数据类型
package cn.temptation; public class Sample01 { public static void main(String[] args) { System.out.p ...
- Java学习笔记三十一:Java 包(package)
Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...
- Java学习笔记三十:Java小项目之租车系统
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...
- Java学习笔记三.2
5.继承 //Java中所有对象都显式/隐式的继承子Object类 class fu{ fu(){ System.out.println("fu..."+getNum()); sh ...
- Java学习笔记三---unable to launch
环境配置好后,在eclipse下编写HelloWorld程序: ①创建新工程 ②创建.java文件,命名为HelloWorld ③在源文件中添加main方法,代码如下: public void mai ...
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- Java学习笔记三:运算符
1.算术运算符: GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac01.java + - * / ...
随机推荐
- SQL语句中=null和is null
平时经常会遇到这两种写法:IS NOT NULL与!=NULL.也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合.实际上,是由于对二者使用区别理解不透彻. 默认情况下,推荐使用 IS ...
- C语言fgetpos()函数:获得当前文件的读写指针(转)
头文件:#include<stdio.h>fgetpos()函数获得当前文件的指针所指的位置,并把该指针所指的位置信息存放到pos所指的对象中.pos以内部格式存储,仅由fgetpos() ...
- java——IO流
一. File File类可以使用文件路径字符串来创建File实例,该文件路径可以是绝对路径或相对路径 File类的list()方法中可以接收一个FilenameFilter参数,通过该参数可以只列出 ...
- 动态设置 button的 name 的话 闪动的问题 解决
其实 只要把 button设置成 custom 的 type 的话 就会 解决这个问题
- 你不知道的函数节流,提高你的JS性能!
浏览器的DOM计算处理非常耗费CPU时间,霸占内存,这对我们的开发来说是非常不友好的,,比如IE浏览器的onresize事件就可能在用户稍微拖动一下窗口时计算上千次,甚至更高频率直接让浏览器崩溃... ...
- 小tip:CSS vw让overflow:auto页面滚动条出现时不跳动
原文地址:http://www.zhangxinxu.com/wordpress/?p=4552 一.水平居中布局与滚动条跳动的千年难题 当前web届,绝大多数的页面间布局都是水平居中布局,主体定个宽 ...
- 深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow
深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow 最近在公司做深度学习相关的学习和实验,原来一直 ...
- rpm常用命令
* 手动安装 rpm 包 `rpm-ivh xxxxx.rpm` 参数: --force 即使覆盖其他包的文件也没强迫安装 --nodeps 即使依赖包没安装,也被强制安装 * 查看 rp ...
- 九月二十八JS验证
js表单验证 js可用发来在数据被送往服务器前对HTML表单中的这些输入数据进行验证 被js验证的这些典型的表单数据有: >用户是否已填写表单中的必填项目: >用户输入的邮件地址是否是合法 ...
- caffe net 可视化工具
http://ethereon.github.io/netscope/#/editor 将对应的网络输入到里面,然后按shift+enter即可查看对应的网络结构