Java学习笔记-Day03 Java数据类型


一、Java文件中的类


如果一个类使用public修饰,这个类所在的文件名必须与类名完全相同,文件的后缀名是java。

Test.java

public class Test{}

如果一个类不是public修饰,这个类所在的文件名可以自行定义,文件的后缀名是java。

xxx.java

class Test{}

一个java文件中可以存在多个类,但是public类最多只能有一个。

二、Java内存


(1)栈:存储基本数据类型。
(2)堆:存储引用类型。
(3)方法区:存储类型信息。
(4)常量池:方法区的一部分,用来存储某类型的常量信息。
在这里插入图片描述

三、数据类型


(1)Java语言是强类型语言,任何一个变量或常量在Java中必须有确定的数据类型。
(2)Java语言的数据类型有两种,即基本数据类型引用类型
在这里插入图片描述
(3)Java语言中的基本数据类型可以分为数值型字符型布尔型三大类,具体包含8个类型
在这里插入图片描述

  • 每种数据类型在内存中占有不同的长度;

  • 计算机存储设备的最小信息单元叫位(bit);

  • 连续的8个位成为1个字节(byte);

  • 操作系统分配内存最少1个字节,即8个位;

  • 长度越长,所表示的范围就越大;
    在这里插入图片描述
    注意:
    在byte类型中,当b的值为127时,将b加上1,此时b的值会变为-128;当b的值为-128时,将b减去1,此时b的值会变为127。
    在这里插入图片描述

  • 小数默认是double类型,整数默认是int类型

  • long类型需要在整数后添加L或者l后缀来表示。

// 第一种写法
long num1 = 123456L;
// 第二种写法
long num2 = 123456l;
  • float类型需要在整数后添加F或者f后缀来表示。
// 第一种写法
float num1 = 3.1415926F;
// 第二种写法
float num2 = 3.1415926f;
  • double类型需要在整数后添加D或者d后缀来表示,也可以不用添加,因为小数默认是double类型。
// 第一种写法
double num1 = 3.1415926D;
// 第二种写法
double num2 = 3.1415926d;

四、Java类型默认值


(1)每种具体类型都有不同的默认值。
(2)Java的默认值是在类成员时才可以被初始化有默认值,如果在局部变量中,必须先自己初始化才可以使用,否则编译产生错误。
在这里插入图片描述

五、类型转换


(1)不同的基本数据类型之间可以进行转换。

  • 自动转换(隐式转换):从表示范围小的类型转换为表示范围大的类型;
int i = 1234;
double b;
b = 1234;
  • 强制转换(显式转换):从表示范围大的类型转换为表示范围小的类型;进行强制转换的前提是类型转换的数据类型要兼容,如果不兼容会产生编译错误。
double b = 3.1415926;
int i;
i = (int)b;

(2)在数学计算中,最终结果与表达式中精度最大的那个类型相同。

/**
 * 题目:求和:int变量+char变量+float变量+double变量,求和结果的结果保存在一个变量,输出这个变量
 */
public class Demo {
	public static void main(String[] args) {
		// 定义整型变量a,并赋值
		int a = 1;
		// 定义字符型变量b,并赋值
		char b = 'a';
		// 定义单精度浮点型变量c,并赋值
		float c = 1.23f;
		// 定义双精度浮点型变量d,并赋值
		double d = 1.23;
		// 定义双精度浮点型变量e,将a+b+c+d的值赋值给它
		double sum = a+b+c+d;
		// 输出a+b+c+d的值
		System.out.println(a+b+c+d);
		// 输出e的值
		System.out.println(sum);
	}
}

(3)特殊情况:char类型与int类型之间的转换。

① 字符和int类型通过ASCII码表相互转换。
常用:字母 A ~ Z:65 ~ 90;
   字母 a ~ z:97 ~ 122;
   数字 0 ~ 9:48 ~ 57;
在这里插入图片描述
② 中文字符和int类型通过Unicode编码相互转换。例如,字符‘国’转换成int类型,其值为22269。

③ 在数学运算中,char类型可以自动转换成int类型。
在这里插入图片描述

public class Demo {
	public static void main(String[] args) {
		char a = '1'; // 49
		char b = '2'; // 50
		System.out.println(a + b);// 49+50=99
		System.out.println("a+b:" + a + b); // a+b:12
		System.out.println("a+b:" + (a + b)); // a+b:99
		System.out.println(a + b + "a+b:"); // 99a+b:
	}
}

④ 如果表达式中有字符串,则会进行拼接。
在这里插入图片描述

七、水仙花数


水仙花数是指一个三位数的每个位上的数的立方和等于该数本身。例如153是水仙花数,因为 153 = 1x1x1 + 5x5x5 + 3x3x3 。

/**
 * 题目:判断153是否为水仙花数,输出布尔值
 */
public class Demo {
	public static void main(String[] args) {
		// 定义一个int变量 n
		int n = 153;
		// 定义一个int变量 g,获取n的个位数
		int g = n%10;
		// 定义一个int变量 s,获取n的十位数
		int s = (n/10)%10;
		// 定义一个int变量 b,获取n的百位数
		int b = n/100;
		// 输出百位、十位、个位的值
		System.out.println("百位数:"+b+" 十位数:"+s+" 个位数:"+g);
		// 输出boolean值
		System.out.println(b * b * b  + s * s *s + g * g * g == n);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值