java数据类型;常量与变量;类型转化;

java数据类型:基本数据类型、引用数据类型;

基本数据类型(8个):

整型(4):byte short int long(64bit)

浮点型(2):float(32bit) double(64bit)

字符型(1):char (键盘上能输出的都是字符,加'')16bit Unicode编码;

布尔型(1):boolean 1bit true false

 

引用数据类型:

数组[]

类class(抽象类abstract class)

接口interface

枚举 enum

注解@interface

=====================================================

byte 字节型 1byte=8bit;00000000 256种组合;

  用第一个bit位置来记录符号;0正数 1负数

  数值的范围 -2的7次方 ——2的7次方-1

        -128 —— 127

以上的其他整数类型,依次乘2

short 2字节=16bit  2的16次方=65536 数值范围 -2的15次方——2的15次方,即-32768——32767

int 4字节=32bit

long 8字节=64bit 

float 32bit 4字节

为什么英文和符号和数字是一个字节;

为什么中文是两个字节?

  ASCII 美国信息交换标准代码;

  a-----00000000-----97

  字母(26*2)+数字(10)+符号(约100) 一个字节256种组合,可以存储;

=====================================================================

常量

常量代表是程序运行过程中,不能再次改变的值;

常量的作用:

  1.固定的值 代表计算过程中经常用到的值;

    便于程序计算;

  2.用来代表一个含义

    1 2 3 4 分别代表上下左右四个方向;

什么样的值算是常量?

  1.固定不变的值 算作常量;1 3.14 ‘a’ true

    可以认为所有基本类型的值 固定不变 是常量

  2.特殊的常量

    “abc”(String类型) 

    String是一个引用数据类型,它的值很特殊,可以简单地视为常量;

  3.自己创建的空间 存储一个值 让他固定起来 不能改变

    final int UP =1; 

变量

变量指的是 程序执行过程中可以改变的

变量是一个内存空间(小容器)

变量空间在创建(声明)的时候 必须指定数据类型 变量空间的名字

变量空间 里面只能存储一个内容(值 引用)

变量空间内的内容可以改变

创建变量时需要注意命名的问题(见名知义);

  命名的规则:字母(区分大小写),数字(0-9,不允许开头),符号(英文符号_ $),中文(不推荐)

  命名的规约:类名字 首字母大写 TestOne;

        变量名(遵循驼峰式命名规约) 首字母小写 person superPerson

变量如何创建/声明;

  数据类型 变量名字;

  int a;

  String b;

  注意:变量是一个空间 可以只创建空间 里面不存放内容

     变量空间创建后没有默认的内容 空的

     空的变量空间不能拿来使用 编译错误;

     byte x;//声明一个变量空间 空间的名字是x 空间内要求存储的类型是byte整数;

     x = 1;//将一个1赋值到x空间内进行存储;     

     byte x = 1;

     计算机底层做了什么事情;

     1.x是什么? 变量空间,存储在哪儿?栈内存内(后进先出)

     2.1是什么?1是常量 存在哪儿?常量缓冲区(只能查不能改)

     3.=是什么? =是赋值 做了什么?

注释

  1.单行注释;//

  2.多行注释;/* */

  3.文档注释;/** */

源码编译执行内存空间

 

 float e = 3.4;报错:从double转换到float会有损失;

3.4 是 常量值;

存储在常量缓冲区中;

常量值得存储形式肯定不是十进制 是以二进制形式存储;

1 32bit(int)

3.4 64bit(double)

float 32bit

改为这样就可以;float e = 3.4F;

byte a = 1; byte 8bit;1 ---> int 32bit;

=赋值的时候做了一个自动的决定,自动类型转化;存储时,将其他无用的bit位,删除;

 

 long类型的值,超过int类型(32bit)的取值范围,需要加L;

  如果创建的常量值超过以上范围

  程序编译检测的时候会认为 数字太大

  如果我们真的需要那么大的数,需要加L;long d = 2L;(也是正确的)

字符和字符串的区别;

字符 char 基本 'a'

字符串 String 引用 "a" "abc" "" null

===========================================================

类型之间的转换问题

1.同种数据类型之间是可以直接进行赋值操作;

2.数据类型不同的空间之间的赋值-->转换问题;

  同种大数据类型之间才能发生转换; 

  基本类型 与 基本类型之间 可以直接转换(自动 强制)

  引用类型 与 引用类型之间 可以直接转换(自动 强制 上转型 下转型)

  基本类型 与 引用类型之间 不可以直接转换(间接 包装类/封装类)

3.保证大数据类型一致的前提下

  基本类型--基本类型

  小数据类型相同:都是整型,浮点...(比较空间

.自动直接转化就可以了

需要强制类型转换

 

大空间变量可以直接存储小空间的数据;(自动转换)

小空间变量不可以直接存储大空间的数据(需要强制类型转换)

转换过程写法都好用 如果转换的过程中数值范围超过边界,可能会有损失;

 

  小数据类型不同

  整型--浮点型 两个比较精确程度 浮点型精确程度更高,可以直接存储;

  任何一个浮点型都可以直接存放一个整型的值;

  浮点转整型需强制转换(只截取整数)

  整型--字符型

    每一个字符都对应着一个Unicode码 a--97 

  布尔类型很特殊

    不能和其它类型之间发生转化;  

 

 

 

 char---字符---'a'--0000000000000000(二进制)---数值97---int

 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

  

 

 

    

 

posted on 2020-04-25 11:43  星空6  阅读(282)  评论(0编辑  收藏  举报

导航