【爪洼岛冒险记】第2站:带你学会:Java中三种输出语句,java中基本数据类型,学会变量,常量,类型转换知识点

news2025/1/15 6:22:51

在这里插入图片描述

🌱博主简介:是瑶瑶子啦,一名大一计科生,目前在努力学习C进阶、数据结构、算法、JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛!
📜所属专栏:爪洼岛冒险记
✈往期博文回顾:【爪洼岛冒险记】第1站:Java重要特性,JDK,JRE,JVM区别和联系,环境变量
🕵️‍♂️近期目标:成为百粉小博主。持续输出JavaSE、C进阶、数据结构、算法相关的优质博客,
🙇‍♀️写博客理念:力求用自己的语言加上自己的理解去阐述知识知识、技术。喜欢画图、思维导图去描述过程和知识之间的联系。
🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!
🌺:“再牛的程序员也是从小白开始,既然开始了,就全身心投入去学习技术”

爪洼岛冒险记-第2站

  • 🧜‍♀️前一站快速回顾:
    • JVM&JRE&JDK
    • Java程序被执行的流程:
  • 🛸本站任务:
    • 🤦‍♀️关于class文件的一些疑问
    • ❗编码格式问题:
    • 🙆‍♀️Java中输出语句有哪些?
    • 🗽搞定数据类型:
      • ⭐字节类型:byte
      • ⭐短整形:short
      • ⭐整形:int
      • ⭐长整型:long
      • ⭐双精度浮点型:double
      • ⭐单精度浮点型:float
      • ⭐字符类型:char
      • ⭐布尔类型:boolean
      • ⭐字符串类型:String
    • ❗关于java数据要知道&注意的:
      • 🎃数据类型存在的意义:
      • 有关java中的"变量",你需要知道的:
        • 1,什么是变量?
        • 2,java中变量命名规则:
        • 3,变量和数据类型的关系?
        • 4,变量使用需注意:
        • 5,局部变量作用域
      • 关于常量你需要知道:
        • 常量的分类:
        • 常量的特点
      • Java中的类型转换(整形)

🧜‍♀️前一站快速回顾:

JVM&JRE&JDK

三者之间的关系

Java程序被执行的流程:

  1. 程序员用Java写一个源文件—>.java文件(程序员看得懂,机器看不懂)
  2. 让JDK中javac.exe来帮忙翻译一下吧~—>编译成.class字节码文件[可执行文件] (机器看得懂的)
  3. 让虚拟机帮我们执行一下java程序吧—>利用JDK中java.exe把这个程序装进jvm中
  4. JVM把class文件解释给本地系统执行.—>“一处编译,随处运行的体现”!

🛸本站任务:

🙆‍♀️write int the front:
🥫此站路途较为轻松,可不要小看基础知识哦,把这些基础和细节收入囊中,后来的路途也不会那么艰辛,现在就出发吧~🎊
🌺一些没有讲到的也不要着急,比如我最开始学java的时候总是去想public是什么,static是干什么的,main里面的参数有什么作用,不要着急~这些涉及到之后的知识,我也都会在后面讲到的,所以不要太过焦虑,和着急.

  • 解决关于.class文件的一些疑问
  • 编码格式问题
  • 学会java中三种输出语句
  • 搞定java基本数据类型🏋️‍♀️
  • 搞定变量
  • 搞定常量
  • 搞定类型转换知识点(整形)

🤦‍♀️关于class文件的一些疑问

class Test{
	public static void main(String[] args){
		System.out.println("Test");
	}
}
class Test2{
	public static void main(String[] args){
		System.out.println("Test2");
	}
}

在这里插入图片描述

  • 🙋‍♀️"为什么我编译一个源文件,生产了2个.class可执行文件呀?"
  • 🧛‍♀️:答:并不是一个源文件对应一个字节码文件哦~一个类对应一个字节码文件,我要用到哪个类,就去加载哪个类(要执行哪个class文件就去加载哪个字节码文件),不是"一股脑"全部加载,但是一般一个java文件只写一个类.

❗编码格式问题:

在写java程序的时候,我加了一行注释,去编译,结果报错了在这里插入图片描述
🧛‍♂️:原因:jdk默认采用GBK编码格式,而我们的源程序中包含了中文,所以我们要把编码格式切换成utf-8(世界通用语言编码).

javac -encoding utf-8 Test.java

🙆‍♀️Java中输出语句有哪些?

  1. 打印并换行
System.out.println("hh");
//类比C中的:printf("hh\n");
  1. 打印,不换行
System.out.print("hh");
//类比C中:printf("hh");
  1. 格式化打印
System.out.printf("%s","hh");
//类比C中:printf("%s","hh");

🗽搞定数据类型:

这一站,我们要搞定的是基础数据类型+String类型
在这里插入图片描述

区分基本数据类型和引用数据类型,关键是看变量里面存的是数值还是地址.

⭐字节类型:byte

  • 所占字节:1
  • 取值范围:-2^7 ~ 2^7-1

⭐短整形:short

  • 所占字节:2
  • 取值范围:-2^15 ~ 2^15

⭐整形:int

  • int所占字节:4
  • 和C相比,没有signed和unsigned之分,同一认为是有符号(变量有正负之分)
  • 取值范围:-2^31 ~ 2^31-1
int a=2;
System.out.println(a);
System.out.println(Integer.MAX_VALUE);//打印int类型变量的最大值
System.out.println(Integer.MIN_VALUE);//打印int型变量最小值
//关于什么是Integer,之后会讲到,现在了解一下就OK

⭐长整型:long

  • 所占字节:8
  • 取值范围:-2^63 ~ 2^63-1
long a=2L;//数字后面加上L,表示当前这个数字是long类型
System.out.println(a);
System.out.println(Long.MAX_VALUE);//打印长整数的最大值
System.out.println(Long.MIN_VALUE);//打印长整型变量最小值

⭐双精度浮点型:double

  • 所占字节:8
  • 由于double的精确度较高,所以工程中一般使用double

⭐单精度浮点型:float

  • 所占字节:4

⭐字符类型:char

  • 所占字节:2
char a='h';
char b='啊';

⭐布尔类型:boolean

  • 所占字节:1 byte 或者1 bit(其实是不确定的,因为JDK没有规范boolean类型的大小,有些书说1byte也有说是1bit)
  • 取值: true&false

⭐字符串类型:String

  • 引用数据类型
  • 其他类型和字符串拼接,结果是字符串(其他数据类型在字符串前除外)
 public static void main(String[] args) {
        String str="yaoyao";
        System.out.println("yaoyao"+10+2);//
        System.out.println(10+2+"yaoyao");//计算机先计算10+2,得出12,再和字符串拼接
    }

在这里插入图片描述

❗关于java数据要知道&注意的:

  1. java中所有数据类型的字节数不会根据操作平台而变化.(不管是X64还是X86,4个字节就是4个字节)
  2. java中没有signed和unsigned之分,统一都是有符号(有正负之分)
  3. 不管是单精度浮点数还是双精度浮点数,在内存中存储都是不精确的.具体可以看:进入内存,透彻理解数据类型存在的意义,整形在内存中存储,大小端字节序,浮点型在内存中存储.
  4. java是强类型语言(严格要求等号两边类型一致)
    eg:
float a=3.14;//编译不通过,报错,12.5默认是double
float a=3.14f;//编译通过
  1. 字符在内存中是以整数的形式来保存.C语言中字符和Ascii码表对应,而在Java中字符和Unicode表对应,由此char类型能表示更多的字符,包括中文.
  2. 在java中所有数据类型都是有取值范围的,一旦给变量赋值超过取值范围,则编译时报错(这点也是和C不一样的).再次感慨java在安全这块做得周到!
byte a=180;//编译报错

🎃数据类型存在的意义:

🙇‍♀️关于数据类型存在的意义,和计算机如何根据数据类型来为某个变量开辟内存空间,搞定这两点,大家可以阅读我的这篇博客:进入内存,透彻理解数据类型存在的意义,整形在内存中存储,大小端字节序,浮点型在内存中存储.

有关java中的"变量",你需要知道的:

成员变量涉及到类和对象的知识,咱们后期再讲~

1,什么是变量?

🦉:变量的本质其实就是一个容器,用来存放数据的容器.在程序运行的时候才为变量分配内存空间,填充数据.

2,java中变量命名规则:

  • 小驼峰命名法.(首字母小写,其余单词首字母大写)
  • 🌕不能以数字开头(硬性)
  • ⭐推荐使用名词
  • ⭐不要使用拼音
  • 支持数字,字母,下划线,美元符号(硬性)
  • 大小写敏感(硬性)
  • 🥙补充:Java中,类名用大驼峰
    eg:
int myAge=19;

3,变量和数据类型的关系?

👩‍🏫在上面提到的博客里面其实也解释得透彻了.数据类型限制了变量向内存申请空间的大小(这个容器可以装多少东西),以及计算机看待该变量空间的视角(💻:我认为你这个容器里面存储的是什么东西);

4,变量使用需注意:

  • 局部变量不可不初始化,若不初始化,则报错!(安全性)

“编译器当然可以为局部变量附一个默认值,但是未初始化的局部变量更有可能是程序员的疏忽,所以采用默认值范围会掩盖这种失误。因此强制程序员提供一个初始值,往往能够帮助找出程序里的缺陷。”–Bruce Eckle《Thinking in Java》

5,局部变量作用域

作用域:作用范围

  • 怎么找变量作用域:?
  • 答:找对应花括号,一对大花括号就是一个作用域,出了作用域就不行了.

关于常量你需要知道:

常量的分类:

  • 字面值常量
int a=10;//10就是字面值常量
  • 被final修饰的变量 (final类似于C中的const)
final int a=10;
a=20;//编译时报错

常量的特点

  • 在程序编译的时候就确定了值是多少
  • 在程序运行的时候不能被修改

Java中的类型转换(整形)

  • 对于整形,不同变量之间赋值,变量范围小的可以赋值给变量范围大的.
int a=10;
long b=a;//b一定能装得下,编译成功
  • 对于整形,把变量范围大的,赋值给变量范围小的,编译一定会报错.
long a=30;
int b=a;//编译报错

🌟虽然30没有超过int的范围,但是编译时期,a并没有向内存中申请空间并且填充数据,也就是说,编译器也不知道a是多少.编译器视角:你把long赋给int,这是万万不行的.
但是作为我们看来,确实需要的话,我们可以向编译器打包票:这个值不会超过int范围----强制类型转换

int b=(int)a;
  • 将字面值常量赋值时,Java会针对被赋值变量的范围进行检查,若超过,则报错.
long a=30;
int b=30;//编译通过

⭐[和上面代码对比] 在执行int b=30时,编译器发现30没有超过int范围,所以编译成功.

  • 隐式类型转换(类型提升)
byte a=2;
byte b=3;
byte c=a+b;//报错

在这里插入图片描述
⭐变量相加属于算术运算,要送入CPU进行运算,但是CPU处理数据的字节是4,所以在送入CPU之前我们需要把a+b提升为int,那么在编译器就会认为int赋值给byte,所以报错.

byte c=1+2;

🎊以上就是第2站的所有知识点了~希望对大家有所帮助.
如果有用,还请关注+三连.您的关注和三连能给瑶瑶子带来无穷的动力~~~
🌻可以订阅专栏爪洼岛冒险记(free),和瑶瑶子一起,穿梭Java岛,学习java,一起努力,从小白变大牛~🙇‍♀️
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【译】eBPF 和服务网格:还不能丢掉 Sidecar

服务网格以典型的 sidecar 模型为人熟知,将 sidecar 容器与应用容器部署在同一个 Pod 中。虽说 sidecar 并非很新的模型(操作系统的 systemd、initd、cron 进程;Java 的多线程),但是以这种与业务逻辑分离的方式来提供服…

主库出问题了,从库怎么办?

在前面的文章中,我和你介绍了 MySQL 主备复制的基础结构,但这些都是一主一备的结构。 大多数的互联网应用场景都是读多写少,因此你负责的业务,在发展过程中很可能先会遇到读性能的问题。而在数据库层解决读性能问题,就要涉及到接下来两篇文章要讨论的架构:一主多从。 今…

Qt之标准对话框(QColorDialog、QInputDialog、QFontDialog)

文章目录QColorDialog使用方式QInputDialog使用方式QFontDialog使用方式提示:以下是本篇文章正文内容,下面案例可供参考 QColorDialog QDialog类用于指定颜色的。 使用方式 设置最开始的颜色 setCurrentColor(Qt::red);//其他的颜色Qt::white Qt::…

迪文串口屏(1)-DMG80480C070_03WTC

由于成本缘故,用迪文串口屏去替换项目里的大彩串口屏,样品型号为DMG80480C070_03WTC。不过说句实话,迪文串口屏没有大彩串口屏那么容易上手。产品命名及硬件特性10Pin_1.0mm座子,7.0英寸,800*480分辨率,16.…

机器学习--方差和偏差、Bagging、Boosting、Stacking

目录 一、方差和偏差 数学定义 对公式的解释 减小偏差、方差、噪声 总结 二、Bagging 代码实现 bagging什么时候会变好 不稳定的learner ​总结 三、Boosting Gradient boosting gradient boosting 的代码实现 gradient boosting的效果 ​总结 四、Stacking st…

秒杀项目总结

秒杀就是同一个时刻有大量的请求争抢购买同一个商品,并且完成交易的过程 也就是大量的并发读和并发写 先制作一个增删改查的秒杀系统,但是想让这个系统支持高并发访问就没那么容易了, 如何让这个秒杀系统面对百万级的请求流量不出故障&…

02-final、finally、finalize的区别?

1.final final是java中的修饰符,用于修饰属性(变量)、方法、类。 1.被final修饰的变量不可以被改变,如果修饰引用,那么表示引用不可变,引用指向的内容可变. 被修饰的常量,在编译阶段会存入常量池中. 2.被final修饰的方法不可以被重写, 被修…

图片播放器的实现1——利用Image2LCD提取图片数据并显示

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 参考内容 (1)https://xiefor100.blog.csdn.net/article/details/71941527 (2)https://xiefor100.blog.csdn.net/article/details/78529519 内容总结 …

2022. 12 青少年软件编程(图形化) 等级考试试卷(四级)

2022年12月 青少年软件编程(图形化) scratch等级考试试卷(四级) 分数: 100 题数: 28 一、单选题(共 15题,共 30分) 1.运行下列程序, 变量“结果”的值为? ( &…

WXSS 如何进行编译?

过往中小企业或技术团队开发一个 App 的时间成本和人力成本居高难下,但是随着微信上线小程序,更像是为这部分群体打开了一扇天窗,此后小程序呈现出井喷式发展的状态,不仅微信,支付宝、百度、抖音等超级 App 都跟上步伐…

【C++核心编程】C++全栈体系(十)

C核心编程 第四章 类和对象 六、继承 继承是面向对象三大特性之一 有些类与类之间存在特殊的关系,例如下图中: 我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性。 这个时候我们就可以考…

华为DHCPv6实验配置

目录 配置AR1作为DHCPv6服务器为PC1分配IPv6地址 配置AR2作为DHCPv6服务器,AR1作为DHCPv6中继器为PC2分配IPv6地址 配置AR3作为DHCPv6 PD服务器为AR1分配地址前缀 什么是DHCP PD 配置AR1作为DHCPv6服务器为PC1分配IPv6地址 AR1 DHCPv6服务器端配置 ipv6 …

解决N+1问题的另一种方法 - 关联的多结果集ResultSet

如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️,满足一下我的虚荣心💖🙏🙏🙏 。 从版本 3.2.3 开始,MyBatis 提供了另一种解决 N1 查询问题的方…

C语言——位段

文章目录思维导图:一. 什么是位段二.位段的内存分配三.位段的跨平台问题四.位段的应用结语:思维导图: 一. 什么是位段 位段的声明和结构体类似,但是有2个不同: 位段的成员必须是int、unsigned int 或 signed int(在很多平台上cha…

python自学之《21天学通Python》(9)——基于tkinter的GUI编程

第12章 基于tkinter的GUI编程 Windows的图形用户界面非常方便用户操作,因此,Windows操作系统得到了广大个人计算机用户的欢迎。在Python中,也可以编写美观的GUI界面应用程序与项目。tkinter是Python自带的用于GUI编程的模块,tkin…

【论文速递】CVPR2022 - 学习 什么不能分割:小样本分割的新视角

【论文速递】CVPR2022 - 学习 什么不能分割:小样本分割的新视角 【论文原文】:Learning What Not to Segment: A New Perspective on Few-Shot Segmentation 获取地址:https://openaccess.thecvf.com/content/CVPR2022/papers/Lang_Learning_What_Not_…

Linux--线程控制--线程相关函数--tid--0109 10

1.如何理解线程 定义:在一个程序里的一个执行路线就叫做线程(thread)。 更准确的定义是:线程是“一个进程内部的控制序列”。 每个进程都有自己的进程地址空间和task_struct结构体,如果我们通过一定的方式在创建进程…

【记录】ChatGPT|近期两次更新一览(更新至2023年1月12日)

如果你还没有使用过ChatGPT,可以先看看我的上一篇文章:【记录】ChatGPT|注册流程、使用技巧与应用推荐(更新至2022年12月14日)。   昨天晚上,ChatGPT突然很多人都无法登录,包括我。我当时以为…

SpringBoot+Redis+@Cacheable实现缓存功能

SpringBootRedisCacheable实现缓存功能一、pom文件加入Redis与cache的依赖和yml配置二、EnableCaching允许使用注解进行缓存三、Redis配置四、业务逻辑1.UserController2.UserService3.UserServiceImpl4.AdminServiceImpl5.Cacheable和CachePut区别五、测试1.执行saveUser方法2…

剑指offer----C语言版----第十七天----面试题23:链表中环的入口节点

目录 1. 链表中环的入口节点 1.1 环形链表Ⅰ 1.1.1 题目描述 1.1.2解题思路 1.1.3 扩展问题 1.2 环形链表Ⅱ 1.2.1 题目描述 1.2.2 思路分析 1. 链表中环的入口节点 在leetcode上的剑指offer专栏没有收录这道题目,但Leetcode上是有这道题目的,环…