JavaSE——变量的重难点

本文详细介绍了Java中变量的分类,包括基本类型的提升规则和String类型的特性。同时,讨论了方法体、成员变量和局部变量的概念,以及自动类型提升和强制转换的规则。重点讲解了在不同类型之间的转换注意事项,如自动提升顺序和潜在的溢出问题。
摘要由CSDN通过智能技术生成

1、变量的分类

1.1、第一种分类

在这里插入图片描述在这里插入图片描述

long a=34546789L;//通常赋值给long型时,后面要加l或者L
float b=1.25f;//float取值范围其实比long要大
char c='\n';//是可以存放转义字符的,而且\0也可以放,所以经常用char[]数组存放字符串
char d='\u0043';//也可以是unicode表示

着重说一下string类型数据
1、String类型属于引用数据类型(解释一下,引用数据类型的意思,就是直接在变量对应的地址上面折腾,并不是只针对数据来说了,后面会有讲)
2、String开头是大写,Java严格区分大小写,所以这里不要写错
3、String可以和8种数据类型变量做运算,且运算只能是+运算,和String做运算的数据自动转换成String数据类型

1.2、第二种分类

上面一种分类方式就不多说了,注意字符串其实是类就好,下面这个概念对没有接触过面向对象语言的童靴可能会有些懵逼,所以这里说明一下。

在这里插入图片描述

有过C语言基础的童靴知道有个东西叫做函数,方法体就是函数,没有学过也没关系,方法体可以理解成我不想在解决同一个问题写重复的代码,所以将重复代码提出来,形成一个只需要参数和函数名的简短代码,这就是函数和方法体的作用。

public class test{
		private int n=0;//成员变量——实例变量
		static int cnt=0;//成员变量——类变量
		public int fun(int x){//局部变量——形参
				int i=0;//局部变量——方法局部变量
				return i+x;
		}
		{
				int m=2; //局部变量——代码块局部变量
				n=m;
				cnt++;
		}
		public static void main(String[] args){
				System.out.println("n"+n+"cnt"+cnt+fun(1));
		}
}

简单说一下几个变量的特点
1、成员变量是跟着类的实例化对象走的,创建一个,新建一个。
2、类变量是跟着类走的,简单来说就是所有对象用的都是这一个类变量。
3、形参是定义方法体用的一个模板,不一定int x,就一定要用x这个变量名,可以用y,只要是同数据类型就好。
4、方法局部变量是跟着方法走的,一个对象一个方法,那么这个方法就只有这一个变量,方法用完了这个数据就销毁了,对象再次调用这个方法的时候变量再初始化一次。
5、代码块局部变量,因为类当中除了成员变量和成员方法之外不能再有其他的代码出现,所以如果想操作一手,那么就使用代码块就好了,与方法局部变量理解一样。

2、自动类型提升和强制转换

  1. 自动类型提升

byte\char\short–>int–>long–>float–>double
特别注意的是:
1、byte、char、short进行计算的时候转换成int类型
2、long在没有加上l的情况下会被认为是int类型。
3、在自动类型转换上,大容量不能向小容量进行转换,float a = 123.5;//会报错,因为在float不加f的情况下默认是double类型,而不能向小容量转换。

  1. 强制类型转换
int a=128;
byte b=(byte)a;//-128注意复习一下计组的知识,这里有上溢出的知识点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值