• 一些基础:
  1. 字节与字符、字节与位;1个字节=8位(bit)(最高位是符号位,0正数1负)bit是电脑记忆体中最小的单位,在二进位电脑系统中,每一bit 可以代表0 或 1 的数位讯号。bps 是 bits per second 的简称。一般数据机及网络通讯的传输速率都是以bps为单位。如56Kbps、100.0Mbps 等等
  2. Float类型的数值都会有后缀F或者f,没有这个后缀的浮点数默认为double类型,当然也可以为浮点数添加后缀D和d;长整数类型有一个后缀L或者小写的l;十六进制有一个前缀0X或者0x;二进制前缀0b或者0B
  3. 从Java7开始,可以为数字字面量添加下划线,比如一百万可以表示为1_000_000,编译器在编译的时候会去除这些下划线
  • 基本数据类型/引用数据类型
  1. 内存使用:基本数据类型直接存放在栈内存里。而引用类型则是,内容存放在堆内存,地址存放在栈内存,访问时通过栈内存的地址找到堆内存的内容
  2. 变量赋值:基本数据类型是直;接把值赋给变量。而引用类型是,把值的地址复制给新变量,通过地址再找到内容
  • 传值的问题

  

  • 基本数据类型(4类8种):整数类型(4种),小数点类型/浮点类型(2种),布尔类型(1种),字符类型(1种)

    整数类型:byte、short、int 、long

    范围与字节的公式:

byte:1个字节,-128-127,(按理说应该是-127-127,因为0有+0和-0的区别,所以多了一个-0,而-0被看成了-128,印度人做的贡献)

short:2个字节,-32768-32767

int:4个字节,-2147483648-2147483647  正好超过了20亿

long:8个字节,-2^63~2^63-1,大概是9*10^18  海量数可以通过字符串或者字符数组来解决

小数类型:float、double

    Float:单精度类型,4个字节,大约有效位数6-7位

-3.403E38~3.403E38

Double:双精度类型,8个字节,大约有效位数15位

注:

float a=1.3;这个会报错,因为1.3默认为double,高精度转低精度会损失精度。正确的应该是float a=1.3f;Float的第七位数字会产生四舍五入

用于表示溢出和出错情况的三个特殊浮点数值:正无穷大(double.positive_infinity)、负无穷大(double.negative_infinity)、NaN(Double.NaN)以及相应的float类型的常量。其中NaN不是一个数字,不可以用于判定一个变量是否是==NaN,正确的使用方法是double.isNaN(xxxx)返回布尔值

    布尔类型:true和false

    字符类型:char、string

      char:单个字符,2个字节,可以存放汉字;string:多个字符(String不是基本数据类型,而是引用数据类型)

  • 其他:
  1. “A”的Ascii码是65,“a”的Ascii码位97,汉字用的是unicode码
  2. 强制转换:

数据类型可以自动从低精度转换到高精度,高精度到低精度需要强制转换

Int a =(int)1.2;

Int a = (int)1.9; 最后结果里面a均为1,即不管后面,只是截取前面整数部分

Float a=1.2; //报错,损失精度,因为Java中的小数默认是double类型

Float a =1.2f; //正确

Int a=3;

Int b=a+3.4;//计算机中,先计算a+3.4并且往高精度转,所以得到6.4,但此时并不能存入int类型(加减乘除都会往高精度转)

  3.引用数据类型:数组、类、接口、枚举

  4.未初始化的变量不能拿来直接使用,编译器会报错;变量的初始化和声明可以放在同一行,也就是声明赋值在同一句代码里;利用final指示常量,表示一旦被赋值之后,就不能再更改了,习惯上常量用全大写来表示,如果需要某个常量被一个类的多个方法使用的              话,可以在前面添加static

JavaSE-基本数据类型的更多相关文章

  1. JAVASE:01数据类型及其拓展

    JAVASE:01数据类型及其拓展 八大基本数据类型 与c不同的地方:long类型后加L:float类型后加F: public class Demo02 { public static void ma ...

  2. JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  3. 5.JavaSE之数据类型详解

    数据类型: 强类型语言: 要求变量的使用严格要求符合规定,写错了就不行,所有变量都必须先定义后才能使用,否则是不能使用的. 比如Java.C++都是强类型语言,也就是说,一旦定义了一个变量,只定义了某 ...

  4. [javaSE] 基本数据类型对象包装类

    按照java面向对象的原则,每个基本类型都有对应的包装类 byte Byte short Short int Integer long Long boolean Boolean float Float ...

  5. 6.JavaSE之数据类型扩展及面试题讲解

    整数:二进制0b 十进制 八进制0 十六进制0x 浮点数:银行业务,关于钱的,Java有个BigDecimal数学工具类,用这个计算.最好完全避免使用浮点数进行比较.因为float 是有限的离散的,它 ...

  6. 简单JavaSE数据类型入门

    新的一节学习了JavaSE,今天主要来说一下Java的数据类型及其输出,借用Xmind,可以生动形象的向大家来解释Java的数据类型: 其中数值整数型举例: public class A02{ pub ...

  7. JavaSE复习日记 : 八种基本数据类型

    /* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...

  8. JavaSE| 数据类型| 运算符| 进制与补码反码等

    JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...

  9. JavaSE基础之double数据类型的格式化

    JavaSE基础之double数据类型的格式化 1.double 数据类型的格式化工具类:DoubleFormatUtil.java package cn.com.zfc.util; import j ...

  10. JavaSE学习笔记(1)---数据类型、运算符、控制结构

    javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线 ...

随机推荐

  1. nginx 代理 https 后,应用变成 http

    需求:nginx 代理 https,后面的 tomcat 处理 http 请求,sso 的客户端,重定向时需要带上 target,而这个 target 默认是 tomcat 的 http,现在需要把这 ...

  2. python -- 函数进阶

    一.函数参数-动态传参       1.形参:         *   在形参位置, 表示此参数为不定参数,接受的是位置参数            并且接收到的位置参数的动态传参都是元组 def fu ...

  3. Linux内存管理(二)

    Linux内存管理之二:Linux在X86上的虚拟内存管理 本文档来自网络,并稍有改动. 前言 Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等.对于不能够通用的 ...

  4. node项目运行报错

    Cannot find module 'webpack/bin/config-optimist' 在项目里面运行npm i webpack-dev-server Cannot find module ...

  5. laravel5.5 env

    env 函数 读取的变量里面带有 # 号的情况下 数据会丢失

  6. C#或unity中实现正弦函数

    C#或unity中实现正弦函数 本类用于第一,需要绘制一条正弦曲线的朋友:第二,需要根据正弦曲线控制物体运动的朋友:里面都有注释,代码如下: unity中使用的代码: public class Cur ...

  7. js时间过滤方法

    js时间过滤  自己写的  记录一下 /** * * 过滤时间格式 * Created by Catlina at 2019.4.26 */ export const setTime = time = ...

  8. python 网络编程(Socket)

    # from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_resp ...

  9. winfrom程序文本框第一次选中问题

    想实现这样的功能: 就是在panel中的文本框,当第一次点击文本框时,全选文本框的内容:再次选择时,可以全选,也可以部分选中, 可是文本框总是从左全部选中,还不能从右边选择,在Enter或Down事件 ...

  10. gitignore不起作用

    .gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中, ...