Java引用类型

简介: Java引用类型

Java当中的数据类型:

1.基本数据类型

2.引用数据类型: 类 String 数组 抽象类 接口 枚举 ......

数据类型的取值范围就是-2^(比特位数-1)---2 ^(比特位数-1)-1

字符串类型变量(String)
public class TestDemo{
public static void main(String[] args){

    String str1="\\wo lai le\\";
    String str2="\"wo lai le\"";//转义字符的使用
    System.out.println(str1);//打印的出来的就是\wo lai le\
    System.out.println(str2);//打印出来的就是“wo lai le”
}

}
复制代码
字符串类型中的+表示拼接

public static void main(String[] args) {

    System.out.println("hello" + 10 + 20);//1
    System.out.println(10 + 20 + "hello");//2
    System.out.println("hello"+(10+20));//3
    System.out.println(10+""+20+"hello");//4
}

复制代码
结果:

hello1020 30hello hello30 1020hello

第一段代码:代码运行的时候是从左往右的,10和20就是字符串类型了

第2段代码:先算出30再打印字符串

第3段代码:先算括号里面的数字

第4段代码:在10和20之间加上一个“ ”使其变为字符串

变量的作用域
局部变量的作用域就截止到花括号

public static void main(String[] args) {

    int a=10;
    {
        a=89;
    }
    System.out.println(a);
}

复制代码
数值提升
int与long的混合运算
int a = 10;
long b = 20;
int c = a + b; // 编译出错, 右边提升为long类型,提示将 long 转成 int 会丢失精度
long d = a + b; // 编译通过
复制代码
char short 与int 提升
当一个类型(char byte)小于4个字节的时候,就会自动提升为int,

byte a = 10;
byte b = 20;
byte c = a + b;//右边为int,不能赋值给byte
byte c = (byte)(a + b);//运行成功
System.out.println(c);
// 编译报错
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
复制代码
byte r=1+2;
System.out.println(r);
//这段代码是可以运行的,因为在编译的时候就已经将1+2变为3了
复制代码
那么为什么要进行数值提升?

就是为了提高效率

变量的作用域

也就是该变量能生效的范围, 一般是变量定义所在的代码块 (大括号)

image-20220328220005204

变量的命名规则
1.只能使用数字 字母 下划线

2.数字不能开头

3.使用小驼峰命名 (类名是大驼峰)

int maxValue = 100; String studentName = "张三

尽量不要使用$ 和 下划线(合法但是不合理)

常量
常亮就是在程序运行的时候无法修改的量

public class TestDemo{
public static void main(String[] args){

final int MAXNUM=10;
    //MAXNUM=20;报错
    System.out.println(MAXNUM);
}       

}
复制代码
常量的关键字是final,常量不能被改变,常量命名的时候尽量写成大写

常量只能被初始化一次,且必须要初始化

类型转换
隐式类型转换:

把一个小类型自动转换为大类型

显示类型转换:
把一个大类型转换为一个小类型,需要强制类型转换

public class TestDemo{
public static void main(String[] args){

    //long a=10;
    //int b=(int)a;
    //System.out.println(b);
    int a=20;
    long b=a;//自动就提升成了long类型的(隐性类型转换)
    System.out.println(b);
}       

}
复制代码
其实就是因为long是8个字节,int是4个字节,将long放到int中,就会报错(Java是强类型语言),所以要进行类型强转,而将int放到 long里面就可以

注意:boolean类型是不能强转为int 的

int与String的相互转化
int --->String

int num = 10;
// 方法1
String str1 = num + "";//改成字符串类型(取巧)
// 方法2(更好)
String str2 = String.valueOf(num);//将int转换为String
复制代码
String --->int

String str = "100";
int num = Integer.parseInt(str);//Integer是包装类
复制代码
public class TestDemo{
public static void main(String[] args){

    //int 转化为String
    int a=20;
    String str1=String.valueOf(a);
    System.out.println(str1);
    //String转化为int
    String str2="20";
    System.out.println(Integer.valueOf(str2));//其实这样子会有警告,按照提示替换一下就行了                                        
}       

}
复制代码
欢迎点赞收藏关注,感谢大家的支持!

目录
相关文章
|
存储 缓存 算法
JVM第三讲:深入理解java虚拟机之垃圾回收算法?CMS垃圾回收的基本流程?对象引用类型?
JVM第三讲:深入理解java虚拟机之垃圾回收算法?CMS垃圾回收的基本流程?对象引用类型?
244 0
|
5月前
|
缓存 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
44 1
|
2月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
34 1
|
2月前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
28 0
|
6月前
|
缓存 Java 开发者
深入理解Java的五种引用类型
深入理解Java的五种引用类型
|
6月前
|
存储 缓存 Java
【Java】Java中的引用类型(全面解读)
【Java】Java中的引用类型(全面解读)
61 0
|
7月前
|
存储 安全 Java
Java一分钟之Java数据类型概览:基本类型与引用类型
【5月更文挑战第7天】本文概述了Java中的基本和引用数据类型,强调了理解它们对高效编程的重要性。基本类型包括数值、布尔和字符类型,而引用类型涉及类、接口、数组等。注意基本类型的精度损失和溢出问题,以及引用类型的空指针异常和内存泄漏。通过明确类型范围、使用包装类、空值检查和及时释放资源来避免这些问题。代码示例展示了基本类型和引用类型的使用。理解这些核心概念有助于编写更健壮的Java代码。
52 1
|
7月前
|
Java 程序员
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
【JAVA面试题】基本类型的强制类型转换是否会丢失精度?引用类型的强制类型转换需要注意什么?
|
7月前
|
Java 数据库
详聊Java的四种引用类型
最近,在回顾关于JVM的相关知识,其中有一个比较简单,同时又容易被大家忽视的知识点,就是关于4种引用的定义与使用场景,其实仔细刨析源码的时候会发现,在Java中很多地方都有涉及到关于不同引用的问题,并且有些面试官也会在面试的时候问及到这一块的内容
57 1
|
7月前
|
Java 数据库
今天浅聊一下Java的四种引用类型
【5月更文挑战第16天】今天浅聊一下Java的四种引用类型
50 0
下一篇
DataWorks