Java入门part2--变量和类型

Java入门part2–变量和类型

关键字:基本数据类型和字符串类型,类型转换,变量命名规则,列出了和C语言种不同的点方便区分理解

数据类型

在这里插入图片描述

  • 所有的java编程语言中的整数类型都是带符号的数字
  • Java中定义变量一定要初始化,否则会报错
  • Java中没有全局变量这一说(C语言中局部变量不初始化是随机值,全局变量是0)
  • 跟C语言不同的是,给某类型数据赋大于其能表示范围的数据时,编译不通过,而C语言就可以执行出来=》Java很安全

整型变量

byte 字节类型
  • 用byte定义一个字节,占1个字节 ,表示范围-128-127
  • Java中的字节类型对标的是C语言中的char
  • 也是属于数值类型的一种
short 短整型
  • 占2字节 短整型
  • 表示范围太小,一般不推荐用
int 整型
  • Java中int型占4个字节,跟系统没有关系 因为Java具有跨平台性,一次编译到处运行
  • Integer.MAX_VALUE 获得int的最大值
  • Integer.MIN_VALUE 获得int的最小值
    其中Integer是Java中自己的一个类,是int对应的包装类
    int short 之类的都是Java的内置类型
    溢出
long 长整型
  • 长整型long占8个字节,与平台无关
  • 注意赋初值的时候 long a=10L; 也可以写成 long a=10;(默认把整型赋值给long)或 long a=10l;但不推荐

浮点型变量

double 双精度浮点型
  • double 双精度浮点类型,8个字节
double num = 1.1;
System.out.println(num * num)
// 执行结果
1.2100000000000002

注意:Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范围.

float 单精度浮点型
  • 单精度浮点类型 4字节
  • flout a=12.5f;
    强类型语言:越需要进行强转的就是强类型语言,不强转编译不通过
    flout a=12.5会报错,默认12.5为double类型,flout a=12.5d就可以,所以遇到小数一般定义为double类型

字符类型

char
  • 字符类型 2字节
  • 注意和C语言中的char区分开 在C语言中表示1个字节迷你整型,分为有符号,有符号表示范围在(-128~ 127)和无符号(表示范围在0~ 255)
  • Java中char无符号 表示范围0~ 2^16-1(65535)即’\u0000’–’\uffff’
  • 编码和解码 C语言中ASC码 java中Unicode码 可以表示65526个字符,可以表示的范围更大 中文拉丁文等都可以表示(相当于ASC码的扩充)

布尔类型

boolean 只能给其赋值true或者false 标准并未规定布尔类型字节大小

字符串类型 重要

  • C语言没有字符串类型
  • Java中定义字符串类型用String String str=“hello”;
    并未有\0结尾
  • 注意 String不是基本类型,属于引用类型
  • int short long double float char byte boolean 是Java中的八种内置类型(即简单类型)
  • Java中的字符串拼接直接用+就可以,C语言中要调用库函数strcat()

变量

  • 变量的命名:
    • 名字只能由字母数字下划线组成
    • 数字不能开头
    • 变量名大小写敏感num和Num是两个不同的变量
    • 变量名小驼峰形式(多个单词组成时第一个单词小写后面单词首字母大写)

常量

  • C语言中用const定义常量 必须在定义的同时初始化
  • Java中用final修饰的变量是常量 final int a=10; 可以不在定义的同时进行初始化,但是一旦被初始化就不能再更改
  • 常量:运行期间不可以改变 变量:运行期间可以改变
    final还可以修饰函数 类 接口

类型转化

int 和long进行数据转化
int a=1;
long b=2;
a=b;//不可以 long8字节,int 4字节  大类型赋值给小类型,会报错   如果需要这样转则需要强制类型转换 a=(int)b;
b=a;//可以  小类型给大类型 默认发生隐式类型转换

  • int和boolean 转换不了 因为类型不兼容 不可以进行相互的赋值 强转也不可以

  • short和char都是2个字节 但是直接互相赋值编译不通过,因为一个是字符类型 一个是数值类型 非要这么写可以强转

  • 当两个类型进行运算时 运算过程中小类型会先提升为大类型再运算,所以运行结果是大类型
    +CPU通常是以4个字节为单位往内存中读数据,所以计算时像short byte这种不够四个字节的都会提升为四个字节再运算,所以运算出来是int型,byte c=(a+b); 会报错,结果要赋给byte类型的话要强转

byte a=10;
byte b=20;
byte c=(byte)(a+b); /CPU通常是以4个字节为单位往内存中读数据,所以计算时像short byte这种不够四个字节的都会提升为四个字节再运算,所以运算出来是int型,结果要赋给byte类型的话要强转

猜你喜欢

转载自blog.csdn.net/qq_43360037/article/details/101830055