第3篇:Java的变量和数据类型详解

简介: 变量相当于内存中一个数据存储空间的表示,可把变量看做是一个房间的门牌号,通过门牌号可以找到房间,而通过变量名可以访问变量的值。变量是程序的基本组成单位(下面图片中,红色箭头指向的或红色框框中的都是变量)

@TOC

一、什么是变量 ?

:snowflake: 【个人解释】① 用英文单词(或英文单词加数字)表示 一个(如:数字、中文、小数、字母)
:snowflake: 【个人解释】② 如果这个永远都不会变化,则这个英文单词常量
:snowflake: 【个人解释】② 如果这个会变化(不是一层不变的),则这个英文单词变量
在这里插入图片描述


变量相当于内存中一个数据存储空间表示,可把变量看做是一个房间的门牌号,通过门牌号可以找到房间,而通过变量名可以访问变量的值。

变量是程序的基本组成单位(下面图片中,红色箭头指向的或红色框框中的都是变量)
在这里插入图片描述

二、变量的声明与赋值

  • 变量的声明(指定变量类型和变量名):想象拿出一个盒子 :package:,指定盒子的名字和盒子存放什么类型的东西
  • 变量的赋值:在变量中存放指定类型的数据(想象把东西放入盒子 :package:)
// 声明一个变量 action(中文意思:行动、动作)
// String 限定给 action 赋的值必须是 String(字符串)类型
// 被【双引号】包裹的内容就是字符串
String action; // 先声明后赋值
action = "点赞"; // 给变量 action 赋值为“点赞”
action = "评论"; // 给变量 action 赋值为“评论”
action = "收藏"; // 给变量 action 赋值为“收藏”
action = "转发"; // 给变量 action 赋值为“转发”
  • 数据类型(变量可以存放的数据的类型)后面会详谈
变量三要素:① 数据类型 + ② 变量名 = ③ 值
// 下面代码的变量三要素
// 1. 数据类型:int
// 2. 变量:likeNum
// 3. 值:50
int likeNum = 50; // 声明后立即赋值

小练习:用变量描述一篇 CSDN 文章(自己思考:一篇 CSDN 文章都有什么? 然后用变量表示出来)

① 文章名:articleName
② 文章内容:articleContent
③ 文章类型:articleType
④ 文章作者:articeWriter
⑤ 文章作者的粉丝量:articleWriteFansNum
⑥ 文章的点赞量:articleLikeNum
⑦ 文章的评论量:articleCommentNum
⑧ 文章的浏览量:visitorVolume

:smile: 请大家不要误会我在拉关注哈,这只是一个小练习,不要想歪了 :smile:
:snowman: 变量名一定要见名知意,最好是英文单词(不知道就百度一下),千万不能是中文拼音首字母缩写(如:点赞量 :arrow_right: dzl :x:)

public class DescriptionCSDNArticle {

    public static void main(String[] args) {
        String articleName = "五分钟精通 Python 教程";
        String articleContent = "洗洗睡吧, 想啥呢?";
        String articleType = "做梦系列";
        String articleWriter = "Java 初学者, 请多多关照";
        int articleWriterFansNum = 2;
        int articleLikeNum = 100; // 如果可以达到我会好开心 (但应该不能吧)
        int articleCommentNum = 50;
        int visitorVolume = 999;

        // \n: 换行(上篇文章的内容)
        System.out.println("\n-------- 用变量描述一篇 CSDN 的文章 --------\n");
        
        System.out.println("articleName = " + articleName);
        System.out.println("articleContent = " + articleContent);
        System.out.println("articleType = " + articleType);
        System.out.println("articleWriter = " + articleWriter);
        System.out.println("articleWriterFansNum = " + articleWriterFansNum);
        System.out.println("articleLikeNum = " + articleLikeNum);
        System.out.println("articleCommentNum = " + articleCommentNum);
        System.out.println("visitorVolume = " + visitorVolume);
    }

}

代执行结果:
在这里插入图片描述

三、使用变量的注意事项

:heavy_check_mark: 变量表示内存中的一个存储区域(不同的变量有不同的类型,不同类型的变量占用不同大小的内存空间)

如:
int(整数类型):占用4字节
double(小数类型):占用8字节
字节(byte):计算机中用于计量存储容量的一种计量单位【后面详说】
数据类型有两种:基本数据类型(byte、short、int、long、float、double、boolean、char)和引用类型【后面详说】

:heavy_check_mark: 变量必须先声明并赋值后才可使用

:x: 未声明变量就想使用
在这里插入图片描述
:x: 声明变量,未赋值就想使用
在这里插入图片描述

:heavy_check_mark: 变量在同一作用域内不能重名

在这里插入图片描述
程序中使用到了【+】号,第四节详谈。

:heavy_check_mark: 某一变量(如 int age)的值可在同一类型(如 int)范围内不断变化

在这里插入图片描述

:heavy_check_mark: 变量三要素:数据类型 + 变量名 = 值

四、Java 程序中加号【+】的使用

:large_blue_circle: 当加号【+】的左右两边连接的是数值类型,是加法运行
:large_blue_circle: 当加号【+】左右两边有一边或两边为字符串,是字符串拼接操作

public static void main(String[] args) {
    int pen = 200;
    int ruler = 300;
    // 加号【+】的左右两边都是数值类型 --- 加法运算
    int total = pen + ruler;

    // 加号【+】左右两边有一边或两边为字符串 --- 字符串拼接操作
    // 钢笔和尺子一共 500 元
    System.out.println("钢笔和尺子一共" + total + "元"); // 加号【+】两边都是字符串
    // 500元?被坑了吧
    System.out.println(total + "元?被坑了吧"); // 加号【+】有一边是字符串
}

思考:有一整数类型的变量【int weight = 100】如何把它转换为字符串类型?

public class Integer2String {

    public static void main(String[] args) {
        int weight = 100;
        String weightString = weight + "";

        // 100(数字类型)
        System.out.println(weight);
        // 100(字符串类型)
        System.out.println(weightString);

        // 输出结果:1024(进行了加法计算)
        System.out.println(weight + 924);
        // 输出结果:100924(只进行了拼接操作)
        System.out.println(weightString + 924);
    }

}
上面的代码:
:leaves: 变量 weight 是数值类型的,值是 100
:leaves: weightString 是变量 weight 拼接一个字符串的结果(引号包裹的内容是字符串,只是这里引号啥也没有包裹而已,专业说法是 空串
:leaves: 单独打印 weight 和 weightString 的结果都是 100,但两个100的类型不同
:leaves: 打印【weight + 924】的结果是1024,更加说明 weight 是数值类型(只有加号两边是数值才会执行加法操作)
:leaves: 打印【weightString + 924】的结果是100924,说明 weightString 是字符串类型(924 肯定是数值类型,数值类型和字符串拼接才会得到 100924 的结果)
:leaves: 【1024】在计算机里面是一个特殊的数字(请看下节)

五、关于 1024

(1) 《念奴娇 · 程序员怀古 》

:rabbit: 来看一首有趣、搞笑的自嘲词

《念奴娇·程序员怀古 》
大京东去,淘宝进,格子衫牛仔裤。
成都西安,北上广,南山区杭州西。
地铁穿空,公交进站,车门一堆挤。
江山如画,一时多少豪杰。
遥想老夫当年,小班初上了,意气风发。
生龙活虎,电脑前,撸码没日没夜。
早出晚归,活好钱不多,秃顶华发。
人生如梦,一尊还酹江月。
在这里插入图片描述

上面这首诗来自网站 https://1024.com/,一个非常有的网站


下面是我个人对这首诗的评析:

:four_leaf_clover:《念奴娇·程序员怀古 》该诗题目言简意赅,没有废话,一读题目就知道该诗讲述的主要角色是 "程序员",让各位程序猿一看题目就有想读下去的冲动,写作手法高超:+1:。"念奴娇"是词牌名,"程序员怀古"则化用了苏轼的"赤壁怀古",这一化用简直精妙,B 格立刻提升。能化用苏轼的词的题目可见作者对诗词的掌握能力之高深,简直是被编程耽误的文学家啊!
在这里插入图片描述

:four_leaf_clover:大京东去,淘宝进,格子衫牛仔裤。这句词非常押韵,使人读起来朗朗上口,词的内容也直指各位程序员的内心,真是字字珠玑,语不惊人死不休。不仅让人读起来有美感,也描述了作者的从业经历。作者从自己的家乡不远万里到北京,进入阿里巴巴当程序员,从此格子衬衫和牛仔裤成为了他的工作服,格子衬衫和牛仔裤成为了他的战袍。格子衬衫和牛仔裤也正是描述了各位程序员的现状,用文字把一个程序员的现状描述得如此栩栩如生,真是“用文字画画的高手”。
在这里插入图片描述

:four_leaf_clover:成都西安,北上广,南山区杭州西。作者的工作经历并非平平淡淡,而是经历了多次转折(跳槽)。西安、成都、北京、上海、广东等作者都跳槽过,可见作者经历丰富,有较多的社会阅历。这里鼓励我们,要学会跳槽,要坚持不懈,无论生活多么困难,我们都要努力走下去。

:four_leaf_clover:地铁穿空,公交进站,车门一堆挤。讲述完自己的工作经历后,作者描绘了自己上班途中的场景。作者上班的时候,可以看到"地铁穿空"的景象,地铁迅速疾驰而过,形容时间飞快,像地铁行驶一样。不仅能够看到地铁穿空的宏伟景象,还可以看到一大堆奋斗者一起为了一个地铁位置而努力,大家都如此努力,大家都为了生活而拼搏,你有什么理由不努力。更加激起了读者的奋斗欲望,教导读者:即时地铁穿空(时间流逝飞快),也要珍惜时间,为了生活而和一大堆人竞争。:blush:
在这里插入图片描述

:four_leaf_clover:江山如画,一时多少豪杰。借用苏轼的《念奴娇 赤壁怀古》描绘当时上班、上班途中的场景如画一般让人怀念,不禁感叹,“那个时候多豪杰啊!”:blush:

:four_leaf_clover:遥想老夫当年,小班初上了,意气风发。借古讽今,作者把当年小班时候的意气风发和如今的“多少豪杰”进行对比。更加体现时间流逝,不知不觉小班都毕业了。现在要在北上广挤地铁了,要格子衬衫牛仔裤了。:blush:
在这里插入图片描述

:four_leaf_clover:生龙活虎,电脑前,撸码没日没夜。作者描述自己面对代码的时候总是生龙活虎,只要坐在电脑前撸代码,总能废寝忘食、总是没日没夜的写代码,真【生龙活虎:smirk:】:blush:

:four_leaf_clover:早出晚归,活好钱不多,秃顶华发。作者每天的工作状态:早上出门,晚上回家,非常充实,没有浪费一点点时间,这也是要激励我们这些后辈珍惜时间、过充实的生活。虽然钱不多,但活非常好,总能学到超越金钱的东西。:blush:
在这里插入图片描述

:four_leaf_clover:人生如梦,一尊还酹江月。最后一句,不知道咋编了。:blush:

## (2) 程序员节
教师有教师节、护士有护士节、月亮有中秋节、屈原有端午节、妇女有女神节、程序员也有程序员节。至于放不放假嘛,不一定。放假一天,加班3天。

程序员:今天是程序员节?那就熬到2点吧,多睡一个小时,给自己放放假。
在这里插入图片描述

(3) 2的10次方和存储容量换算单位

  • 计算机上的 doc 文档、ppt 文件的大小是多少?是1G、1M、还是1T?这里的 G、M 和 T 是计算计算机存储容量的单位。类似长度单位的 m、mm、cm

在这里插入图片描述

  • 计算机上的文件的大小的计算机单位的换算如下:

1K = 1024 byte
1M = 1024 K
1G = 1024 M
1T = 1024 G

由于 2的10次方等于1024,也可以写作:
1K = 2^10 byte
1M = 2^10 K
1G = 2^10 M
1T = 2^10 G

关于 1024 还有啥有趣的地方也可以分享到评论区哈, 感谢!:pray:

六、数据类型

前面说到:
:fire: 变量的三要素: 数据类型 + 变量名 = 值
:fire: 不同类型的变量可在指定数据类型的范围内不断变化(那数据类型有那些?更多的细节呢?下面来看 ......)
在这里插入图片描述

(1) 介绍数据类型

:leaves: 每一种数据都定义了明确的数据类型(整数数据的数据类型是 int、小数数据的数据类型是 float 和 double、文字数据的数据类型是 String ...)

:leaves: 针对每种数据类型在内存中分配了不同大小的内存空间(字节)【就像瘦子和胖子占的体积都是不一样的嘛】
在这里插入图片描述

:leaves: 每种数据类型规定了变量可以存放什么类型的数据和占用的字节大小

:leaves: Java 是强类型的编程语言,对变量的类型要求非常严格。有些编程语言是没有这么强的类型要求的(如 JavaScript)

:leaves: Java 的数据类型如下所示:
在这里插入图片描述

(2) 整数类型

用于存放整数数据(如 520、1314、9527、9420、240、1314、-7 等)

:maple_leaf: 有四种:byte、short、int、long

byte number1 = 10; // 占1字节
short number2 = 10; // 占2字节
int number3 = 10; // 占4字节
long number4 = 10; // 占8字节

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

public class IntegerType {

    public static void main(String[] args) {
        // Java 的整型常量默认是 int 类型, 声明 long 类型需在常量后面加【l】或【L(推荐)】
        int num1 = -5; // -5 默认是 int 类型
        long num2 = -5L; // -5L 是 long 类型 
        System.out.println(num1);
        System.out.println(num2);
    }

}

(3) 浮点类型

用于表示一个小数(如 3.14、6.9、-7.8)
在这里插入图片描述

  • 浮点数在机器中的存放形式:浮点数 = 符号位 + 指数位 + 尾数位
  • 尾数部分可能丢失精度(浮点数都是近似值

未完 ......

public class FloatDoubleType {

    public static void main(String[] args) {
        double pi1 = 3.14159;

        // Java 字符型常量默认是 double 类型
        // 若想声明 float 类型的变量, 在常量末尾必须加 F 或 f
        float pi2 = 3.141592F;

        double pi3 = 3.14F;

        // pi1 ≈ 3.14159
        System.out.println("pi1 ≈ " + pi1);
        // pi2 ≈ 3.141592
        System.out.println("pi2 ≈ " + pi2);
        // pi3 ≈ 3.140000104904175
        System.out.println("pi3 ≈ " + pi3);

        double num1 = .532;
        double num2 = 0.532;
        // num1 = 0.532
        System.out.println("num1 = " + num1);
        // num2 = 0.532
        System.out.println("num2 = " + num2);

        // 科学计数法类型
        // 512.0
        System.out.println(5.12E2); // 5.12 * 10^2
        // 0.0512
        System.out.println(5.12E-2); // 5.12 * 10^-2
    }

}

(4) 字符类型

:sparkles: char 表示字符类型,用于存放单个字符(用单引号包裹)
:sparkles: char 占2个字节(可以存放汉字)
:sparkles: 单个字符用 char 类型,多个字符的话使用 String(后面详细说)

public class CharType {

   public static void main(String[] args) {
       char star = '❤';
       char word = '庆';
       char japanese = 'の';
       char letter = 'X';
       char digit = '9';
       char a = 97;

       System.out.println("star = " + star);
       System.out.println("word = " + word);
       System.out.println("japanese = " + japanese);
       System.out.println("letter = " + letter);
       System.out.println("digit = " + digit);
       System.out.println("a = " + a);
       
       /*
           输出结果:
           star = ❤
           word = 庆
           japanese = の
           letter = X
           digit = 9
           a = a
        */
   }

}

:sparkles: 在 Java 中,char 的本质是一个整数,输出的是 unicode 码对应的字符(可直接给 char 变量赋值一个整数,输出的时候会按照对应的 unicode 字符输出)
:sparkles: char 类型的变量是可以进行运算的(char 类型的变量本质是整数)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(5) 布尔类型

boolean 类型只有两种取值:true 或 false(占1个字节)

boolean 类型用于判断一个表达式的值是真还是假

布尔类型一般是做逻辑运算(用在流程控制语句中)

流程控制语句有:

  • if 条件控制语句
  • while 循环控制语句
  • do-while 循环控制语句
  • for 循环控制语句

(6) 自动类型转换(数值型基本数据类型)

:maple_leaf: Java 的基本数据类型的变量进行赋值操作的时候,精度的数据类型会自动转换为精度的数据类型
:maple_leaf: 数据类型精度排行
byte :arrow_right: short :arrow_right: int :arrow_right: long :arrow_right: float :arrow_right: double

char :arrow_right: int :arrow_right: long :arrow_right: float :arrow_right: double


:sparkles: ① 有多种类型的数据混合运算的时候, 编译器首先自动将等号右边的混合数据类型(如 int 和 float)转换为精度最大的那种数据类型(int), 然后才进行自动类型转换
在这里插入图片描述

上图的代码中:
① 变量 i 是 int 类型,
② 数字 1.2 是 double类型(浮点数常量默认是 double 类型,若想使用 float 类型需要在浮点数常量后面加【f】或【F】)
③ 当多种类型的数据进行混合运算的时候,编译器会将它们先转换为精度最大的那种数据类型,然后才进行自动类型转换
④ int 类型的精度低于 double 类型的精度,所以等号右边可看做是 double 类型
⑤ double 类型的数据赋值给 float 常量自然就会报错

如何解决上图的错误?
(1)用 double 类型的变量接收

public class Main {
    public static void main(String[] args) {
        int i = 10;

        // float f = i + 1.2; // ERROR
        double d = i + 1.2; // OK
    }
}

(2)强制类型转换(后面还会详说)

public class Main {
    public static void main(String[] args) {
        int i = 10;

        // float f = i + 1.2; // ERROR
        double d = i + 1.2; // OK

        // 强制类型转换
        float f1 = i + (float) 1.2; // OK
        float f2 = (float) (i + 1.2); // OK

        System.out.println("d = " + d);
        System.out.println("f1 = " + f1);
        System.out.println("f2 = " + f2);
        
        /*
            输出结果:
            d = 11.2
            f1 = 11.2
            f2 = 11.2
         */
    }
}
上面的代码中:用强制类型转换运算符 () 将高精度的 double 类型强制类型转换为了低精度数据类型 float

:sparkles: ② 精度小的的数据类型会自动转换为精度大的数据类型(弱者服从强者);精度大的数据类型不能自动转换为精度小的数据类型(会报错)

:sparkles: ③ byte、short 和 char 之间不会相互自动类型转换
byte、short、char 之间进行计算首先会被转换为 int 类型
boolean 不会参与自动类型转换
自动类型提升原则:表达式结果的类型自动提升为操作数中的最大精度的类型

(7) 强制类型转换

:sweat_drops: 强制类型转换:把精度大的数据的类型强制转换为精度小的类型

:sweat_drops: 使用需加上强制类型转换符 ()
:sweat_drops: 可能造成精度降低或溢出

public class Test {
    public static void main(String[] args) {
        int i1 = (int) 6.6;
        int i2 = (int) 1.9;
        int i3 = (int) 2.5;
        System.out.println(i1); // 6 精度丢失
        System.out.println(i2); // 1 精度丢失
        System.out.println(i3); // 2 精度丢失

        int i_ = 100;
        byte b = (byte) i_;
        System.out.println(b); // 100
    }
}

:sparkles: ① 当精度低的数据需要转换为精度高的数据的时候需要进行强制类型转换
:sparkles: ② 强制类型转换符只对它附近的操作数进行强制类型转换(就近原则)

public class Test {
    public static void main(String[] args) {
        double d = 2.2;

        // 下面代码的【(float)】不会对变量 d 进行强制类型转换, d 仍旧是 double 类型
        // float f0 = (float) 1.1 + d;

        float f1 = (float) 1.1 + (float) d; // 两次丢失精度
        float f2 = (float) (1.1 + d); // 一次丢失精度

        System.out.println("f1 = " + f1); // f1 = 3.3000002
        System.out.println("f2 = " + f2); // f2 = 3.3
    }
}

浮点数永远是近似值

:sparkles: ③ char 类型可以保存 int 类型的常量值
不能保存 int 类型的变量值(若想?强制类型转换

public class Test {
    public static void main(String[] args) {
        int b = 98;

        System.out.println("b = " + (char) b); // b = b

        /*
            下面代码的等号右边会先被编译器识别为一个 int 类型
            int 类型无法赋值给精度比它低的 char 类型
         */
        // char c2 = b + 1; // ERROR

        char c3 = 98 + 1; // OK
        System.out.println("c3 = " + c3); // c3 = c
    }
}

(8) Exercise

public class Test {
    public static void main(String[] args) {
        short s = 12;
        // s = s - 9; // ERR: 9 是 int 类型
        s = (short) (s - 9);
        System.out.println("s = " + s); // s = 3
    }
}
public class Test {
    public static void main(String[] args) {
        byte b = 11;
        short s = 11;

        // 等号右边的表达式先进行运算
        // 运算后的值是 22 (int 类型)
        // 需强制为 short
        // short  b1= b + s; // ERROR
        short b2 = (short) (b + s);

        System.out.println("b2 = " + b2); // b2 = 22
    }
}

七、基本数据类型和 String 类型的转换

String:字符串(在 Java 中,被双引号包裹的内容就是字符串)
String 在后期会非常非常详细地进一步说明

基本数据类型 byte、short、int、long、float、double、char、boolean 转换为字符串类型和字符串类型转换为基本数据类型在开发中非常常见。在此,先基本学习一下,后期能够有更深的体会。
在这里插入图片描述


(1) 基本数据类型转 String

直接拼接空串

public class Test {
    public static void main(String[] args) {
        byte b = 1;
        short s = 2;
        int i = 3;
        long l = 666L; // 必须加【L】, 否则 666 是 int 类型
        float f = 3.14F; // 必须加【F】, 否则 3.14 是 double 类型
        double d = 3.14159;
        char c = '龙';
        boolean bool = true;

        System.out.println(b + ""); // 1
        System.out.println(s + ""); // 2
        System.out.println(i + ""); // 3
        System.out.println(l + ""); // 666
        System.out.println(f + ""); // 3.14
        System.out.println(d + ""); // 3.14159
        System.out.println(c + ""); // 龙
        System.out.println(bool + ""); // true
    }
}

(2) String 转基本类型

使用基本类型的包装类型
下面简单说明一下【基本类型的包装类型】,后期会详细说明

基本类型的缺点:
:musical_note: 无法表达空值(不存在的值)
:musical_note: 使用过程不够面向对象
:musical_note: 常用于面向过程编程中
这里不用看了

基本数据类型的包装类型可认为是基本数据类型的高级版本:rose:,使用方法和基本数据类型一模一样。
写法上除了 int 和 char 之外,都是基本类型写法的首字母大写。

基本类型 包装类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

String 转基本类型的方法(代码):

public class Test {
    public static void main(String[] args) {
        String bStr = "1";
        String sStr = "2";
        String iStr = "3";
        String lStr = "5";
        String fStr = "3.14";
        String dStr = "3.14159";
        String boolStr = "true";

        // 字符串转基本数据类型
        byte b = Byte.parseByte(bStr);
        short s = Short.parseShort(sStr);
        int i = Integer.parseInt(iStr);
        long l = Long.parseLong(lStr);
        float f = Float.parseFloat(fStr);
        double d = Double.parseDouble(dStr);
        boolean bool = Boolean.parseBoolean(boolStr);
    }
}

❀ 在将 String 类型转成基本数据类型时,需保证字符串能够转换为对应的基本类型。如可将【123】转成一 个整数,但不能把【ILoveYou】转成一个整数。
❀ 如果无法转换会出现类型转换异常(异常后期会详细说)

相关文章
|
6天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
1月前
|
Java 编译器
java“变量 x 可能未被初始化”解决
在Java中,如果编译器检测到变量可能在使用前未被初始化,会报“变量 x 可能未被初始化”的错误。解决方法包括:1. 在声明变量时直接初始化;2. 确保所有可能的执行路径都能对变量进行初始化。
|
2月前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
70 2
|
2月前
|
存储 Java
java基础(7)变量以及变量的分类
Java变量是内存中存储数据的基本单元,包含数据类型、名称和字面值。变量的数据类型决定了分配的内存空间大小。变量声明格式为“数据类型 变量名;”,变量名应符合标识符命名规范。变量可以重新赋值,但数据类型需一致。变量可以一行声明多个,作用域决定了变量的可用范围。变量分为局部变量和成员变量,局部变量定义在方法体内,成员变量定义在方法体外、类体内。
40 2
|
14天前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
9天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
33 4
|
7天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
22 1
|
22天前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
22天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
33 0
[Java]“不同族”基本数据类型间只能“强转”吗?
|
2月前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
54 2
java基础(9)数据类型中的char类型以及涉及到的转义字符