0 基础学 Java (一)数据类型

本节为 JavaSE 第一篇,适合 Java 新手观看学习。

🗺思维导图


在这里插入图片描述

📚目录


🖋前言


我们之前的两篇文章已经讲解了配置 windows下 Java 环境运行第一个 Java 程序 。在正式开始我们的第一课之前我们先来强调以下几个知识点。

1.编译命令

在初学 SE 语法阶段,我们会用 JDK 配合 PowerShell 来编译运行我们的 Java 程序。那就要说到编译和运行的命令:

javac编译

java 运行

但是,我们的代码经常我们会用到注释,注释方法:

  • 块注释 可以使用 /* */
  • 行注释 可以使用 //

当我们在源代码中添加了注释后,我们会发现编译是无法通过的。因为 javac 默认用 GBK 进行编码 —— 我们需要用下面这个命令来改变 javac 的默认编码方式:

java -encoding utf-8

需要注意的就是空格符号一定在该打的地方打上。

2.main 函数的参数

main(String[] args)

main 后面括号中的参数是字符串数组,里面放的是命令行参数。

3.几种输出语句
System.out.println(); //输出后换行
System.out.print();   //输出不换行
System.out.printf("%d", 10); //格式化输出
4.JDK JRE JVM 的关系

在这里插入图片描述

5.简单理解编译运行原理

在这里插入图片描述

6.类与变量的命名规则

根据《阿里巴巴规约手册》

类采用“大驼峰”命名规则 —— 如:HelloWorld

变量采用“小驼峰”命名规则 —— 如:numPeople

⏯数据类型


1、int
int num = 1;//创建并声明一个整型变量
System.out.println(num);
//输出:
//1
命名规范:
  • 不能以数字开头

  • 根据《阿里巴巴规约手册》:虽然命名变量时可以用 下划线 与 $ 开头,但是不建议这么使用。

使用未初始化的变量

请看以下代码片段,预测程序会输出什么?

int num;//num 变量没有初始化
System.out.println(num);

答案是不能通过编译。

大小

在 Java 中, 一个 int 变量占 4 个字节. 和操作系统没有直接关系。

4 个字节表示的数据范围是 -2^31 -> 2^31-1 , 也就大概是 -21亿 到 +21亿。

用程序来查看 int 型数据的范围:

System.out.println(Integer.MAX_VALUE);  // int 的大值 
System.out.println(Integer.MIN_VALUE);  // int 的小

输出:

2147483647
-2147483648

超过 int 类型的范围:

System.out.println(Integer.MAX_VALUE + 1);
System.out.println(Integer.MIN_VALUE - 1);

输出:

-2147483648
2147483647

如果不懂可以参考我的 C语言进阶系列,学习学习正反补码相关知识,目前更新了第一篇文章 3道C语言面试题

但是,如果你要直接将一个溢出的值直接赋值:

int a = 2147483648;// int 最大值是 2147483647
System.out.println(a);

与 C 语言不同的是,编译器将无法通过!

给变量赋值时,不能超过对应类型范围的大小

如果 一个数大到int 类型的最大值都无法存储,我们就需要另一种数据类型 long 。关注我,以后你赚的钱无法用 int 来存储!

在这里插入图片描述

2、long
long num = 10L; // L 表示该数是 long 类型,也可用小写 l (切勿写成数字 1)
System.out.println(num) ; 

后缀 建议大写 l 容易和 1 搞混

不用后缀 直接用 10 来初始化 long 类型也是可以的。

大小

Java 中 long 类型占 8 个字节.

表示的数据范围 -2^63 -> 2^63-1

用程序来查看 int 型数据的范围:

System.out.println(Long.MAX_VALUE);  // long 的大值 
System.out.println(Long.MIN_VALUE);  // long 的小

输出:

9223372036854775807
-9223372036854775808
3、double

double 类型也叫 双精度浮点型

程序示例:

double num = 1.0;
System.out.println(num)
大小

8 个字节

int 的除法

int a = 1;
int b = 2;
System.out.println(a / b);

输出:

0

与 C 语言相同,Java中,int 除以 int 仍然是向下(0)取整

如果想要得到 0.5:

double a = 1.0;
double b = 2.0;
System.out.println(a / b);

输出:

0.5

double 的误差:

double num = 1.1;
System.out.println(num * num)

输出:

1.2100000000000002

Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范
围。
Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势
必会存在一定的精度误差。

4、float

float 也叫 单精度浮点型

float num = 1.0f; // 与 double 一样,也可以写作 1.0F
System.out.println(num);
大小

float 类型在 Java 中占 4 个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都
优先考虑 double, 不太推荐使用 float.

5、char

char 也叫 字符类型

char ch = 'A';
大小

2 个字节

注意:

1.Java 中使用 单引号 + 单个字母 的形式表示字符字面值.

2.计算机中的字符本质上是一个整数。 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符。 因此一
个字符占用两个字节, 表示的字符种类更多, 包括中文。

对于 注意1 ,我们可以通过下面的程序理解:

int a = 'a';
System.out.println(a);

输出:

97
打印汉字
char ch = "赞";
System.out.println(ch);

注意我们编译时应该用 javac -encoding UTF-8命令

6、byte

byte:字节类型

byte value = 0;
System.out.println(value);
大小

1 个字节。

范围:-128 ~ 127

**注意:**字节类型 和 字符类型互不相干。

7、short

short :短整型

short value = 100;
System.out.println(value);
大小

2 个字节

表示的范围是:-32768 ~ 32767

8、boolean

boolean: 布尔类型

boolean value = true;
System.out.println(value);

输出:

true
大小

在有些 JVM 中占 1 个字节,有些则是 1 个比特位。

注意:

  • boolean 类型变量只有两种取值:true (表示真)和 false(表示假)
  • Java 的 boolean 类型和 int 不能互相转换,不存在 1 表示 true,0 表示 false 这种用法。
boolean a = 1;
System.out.println(a);

如果这样写,程序将无法通过编译(不兼容的类型)。

9、String

String: 字符串类型

String name = "Zhangsan";
System.out.println(name);

输出:

Zhangsan

注意:

  • Java 使用 双引号 + 若干字符 的方式表示字符串字面值
  • 和上面的类型不同, String 不是基本类型, 而是引用类型
  • 字符串中的一些特定的不太方便直接表示的字符需要进行转义
拼接

1.字符串与字符串

String a = "Hello ";
String b = "World";
String c = a + b;
System.out.println(c);

输出:

Hello World

2.字符串与整数

String a = "String = ";
int b = 10;
int c = 20;
String result = a + b + c;

System.out.println(result);

输出:

String = 1020

**存在 字符串 的 加法表达式 都是执行字符串拼接行为 **

int a = 10;
double b = 20.5;
String c = "a + b == ";
		
System.out.println(a + b);
System.out.println(c + a + b);
System.out.println(c + a * b);

输出:

30.5
a + b == 1020.5
a + b == 205.0

如果我们想输出 a + b == 30.5 应该怎么办呢?

System.out.println(c + (a + b));

只需要将要相加的数用括号括起来即可

当然你也可以使用:

System.out.printf("a + b == %d", a + b);

这样与上面没有区别,只不过这样写有点麻烦。

因此,我们在用 println 时有一种更方便的写法:

int a = 10;
int b = 20;
System.out.println("a = " + a + ",b = " + b);//注意格式

输出:

a = 10,b = 20
转义字符

试着思考如何打印出下面这句话:

Tom\Peter said: “80% girls choose to learn Java.”

System.out.println("Tom\\Peter said: \"80% girls choose to learn Java.\"");

\\, \"就是两个转义字符。

📦包装类

类型包装类
intInteger
byteByte
shortShort
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

码字不易,对你有帮助 点赞/关注/转发 支持一下作者!💌

更多鼓励,更多干货!

以上就是本次所有内容。有什么错误欢迎指出,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值