2、数据类型

Hello大家好 继续我们的第二节课程。

前言

对于初学者来说并不适合一开始就灌输大量的专业性名词,反而从简入难更为符合。我个人在培训中老师也是这么讲的,但实际情况并非如此的。因为老师并没有将技术与教学弄明白。我也查阅过不少的java教学的文档。基本都是:没有足够的知识储备是难以通过“api”文档理解学懂的。所以我想以我个人觉得容易理解的方式出一些教程。有不适当的地方还请大家多多指教。

变量

第一个问题:什么是变量。

来自于百度的搜索

在初等数学中,变量是表示数字的字母字符,具有任意性和未知性。把变量当作是显式数字一样,对其进行代数计算,可以在单个计算中解决很多问题。

解析

不知道大家还记得上学时学的x与y不? 如x+3=y; 嘿嘿 这里的x与y不就是变量么 当x为2时。y不就是5。 x是3 y是6么

嘿嘿— 是不是好像懂了一点点什么。 假设我随便问了一个 x>=0。那么x可能是几。 答案可就太多了。从0到正无穷 不都是么。 回忆起来了没

数学学习不是很差的 很容易理解,当然我们还有文科生不是吗。

变量 变量 他不就是可变的量么,在没有施加任意条件的时候他可以是任意可变的值(当然,如果对这个变量施加了条件,那么这个变量的值可以是在条件范围内的任意值)。对吧。一会是1 一会是2 一会是100等等

好啦看看在我们计算机中的变量是什么,变量就是在内存中申请一段空间用来存储值。这段空间我可以存储在符合条件内的任意值。 那么问题又来了。符合什么样的条件呢。是不是不同的条件就意味变量的类型不同呢。 嘿嘿嘿

内存管理系统会根据变量的类型来为变量分配存储空间,分配的空间只能用来存储这种类型的数据

所以,通过定义不同类型的变量就可以在内存中存储整数、小数、字符。

当然我们说过,根据不同的条件就意味着变量的类型不同。java将这些不同类型的数据区分了两大类

  • 基本数据类型
  • 引用数据类型

好了可以暂停了。因为我们可以写点代码玩一玩。我们说java有不同的数据类型并且共分为了两大类。我们先说一种 int类型。int类型只能存储整数。如1、2、3、-1、-2、-3等。在计算机中他可不是无限大无限小的。so 他的取值范围是 -2,147,483,648(-2^31)2,147,483,647(2^31 - 1)

1、在电脑上任意的地方找到创建一个文件夹并打开如我实在F:\教程\demo1目录下

2、在这个文件夹下创建一个名为HelloWorld.txt文本文档

在这里插入图片描述
2.1、注意:创建的时候如果你没有开启文件扩展名则只需要手写文件名HelloWorld就可以。如果创建后可以看到txt则此步骤可以忽略掉在这里插入图片描述
3、双击打开他并将一下代码粘贴进入


//这里的HelloWorld并须与文件名相同。否则会报错
public class HelloWorld {
    /* 第一个Java程序
     * 它将打印字符串 Hello World
     */
    public static void main(String []args) {
        System.out.println("Hello World"); // 这串代码System.out.println("");作用是将“”中间的文本内容打印到控制台
        int x=10;
        int y=20;
        int z;
        z=x+y;
        //问题:z的值是多少;
        
        //不妨在命令框输出一下
        System.out.println(z); 
    }
}

4、Ctrl+s保存后关闭文本文档。同时将这个文本文档的后缀改为.java
在这里插入图片描述
5、在我们创建这个文本文档的文件夹上的目录中 输入cmd 并且回车
在这里插入图片描述
6、此时我们就打开了命令框并且是在文本文档所在的路径下。

7、我们在命令框中输入 javac HelloWorld.java 进行对代码的编译。输入结束后回车。
在这里插入图片描述
8、继续在命令框中输入java HelloWorld 回车进行运行。
在这里插入图片描述
9、出现了什么 哈哈。恭喜小伙伴 第一个程序跑完了。

10、解析一下

public class HelloWorld { 大家先不用管他是什么 目前不需要了解。你只用知道 HelloWorld 是类名,他必须与文件名一致。

public static void main(String []args) { 你就需要知道了。这是一个main方法。整个程序的入口方法。就是说你程序一旦执行后就会立刻进入到main方法开始执行第一行的代码。当然如果你的代码编写有错就会报错。

这是 Java 语言中的主方法(main method)的定义。

这个方法是 Java 程序的入口点,当程序运行时,JVM(Java 虚拟机)会首先查找这个方法并执行其中的代码。

其参数String []args是一个字符串数组,用于接收程序运行时传递的命令行参数。你可以在运行 Java 程序时在命令行中指定参数,这些参数会以字符串的形式存储在这个数组中,以便程序在运行时可以根据这些参数进行不同的操作。

例如,你可以通过以下方式运行一个包含这个主方法的 Java 程序并传递参数:

java YourClassName arg1 arg2 arg3

在程序中,你可以通过args[0]访问第一个参数 “arg1”,args[1]访问第二个参数 “arg2”,以此类推。

System.out.println(“Hello World”); 我们可以看到在命令框打印过Hello World这段话 也打印过z。为什么一个出现了一段话。一个是出现z变量的值呢。嘿嘿。

注意看细节。Hello World是不是前后都出现 " 没错 双引号。整体来看Hello World被双引号包裹。在这里他也是一个变量。他是一个字符串变量。不信。你可以试一试以下这段代码

public class HelloWorld {

    public static void main(String []args) {
    	String d="Hello World"
        System.out.println(d); 
    }
}

他的输出结果还是Hello World。

诶 大家又会问了。你不是用int 在声明变量么。怎么现在换成了String。嘿嘿。这就是我们的另一个数据类型了。当然这个String并不是基本数据类型。而是引用数据类型。回头我再讲什么是应用数据类型。

int x=10;
int y=20;
int z;
z=x+y;

大家看一下我用int声明的 x ,y。

int声明整数类型的代码。 x,y,z就是变量名。10与20就是x与y变量的值。 这下懂了吧。

那么 为什么 z在声明的时候没有赋值。

嘿嘿,这个没有为什么,你想赋值就给他赋值不想赋值就不赋值呗。

在换一种写法

		int x=10;
        int y=20;
        int z=x+y;

像这种也是可以的。大家其实也可以自己试一试 在不给x或者y赋值的时候会出现什么情况呢?

好了引导结束。接下来就看看。我们的java可以创建那些基本数据类型

Java 基本数据类型

java提供了8种基本数据类型。分别是 byte、int、short、long、double、float、char、boolean

先说说不同类型的属性吧

byte

  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值是 0

int

  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 - 1)
  • 默认值是 0

short

  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 - 1)
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

long

  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 默认值是 0L

double

  • double 数据类型是双精度
  • 浮点数的默认类型为 double 类型;
  • double类型同样不能表示精确的值
  • 默认值是 0.0d

float

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f

char

  • char 类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(十进制等效值为 0);
  • 最大值是 \uffff(即为 65535);
  • char 数据类型可以储存任何字符;

boolean

  • boolean数据类型表示一位的信息;

  • 只有两个取值:true 和 false;

  • 默认值是 false

想了想 还是给大家都试用一便吧。大家一定要看着手敲一遍

public class HelloWorld {
    /* 第一个Java程序
     * 它将打印字符串 Hello World
     */
    public static void main(String []args) {
//byte
	byte a=1;
	byte b=-2;
//int
        int c=2;
	int d=103;
//short
	short e=300;
	short f=600;
//long
	long h=1000;
	long i=5000;
//double
	double j=0.01d;
	double k=0.05d;
//float
	float l=0.1f;
	float m=0.5f;
//char
	char n='a';
	char o=100;
//boolean
	boolean p=true;
	boolean q=false;

	System.out.println(a);
	System.out.println(b);
	System.out.println(c);
	System.out.println(d);
	System.out.println(e);
	System.out.println(f);
	System.out.println(h);
	System.out.println(i);
	System.out.println(j);
	System.out.println(k);
	System.out.println(l);
	System.out.println(m);
	System.out.println(n);
	System.out.println(o);
	System.out.println(p);
	System.out.println(q);
	
    }
}

java引用类型

在java 中对象、数组都是引用数据类型。我们在基本数据类型中用到的String 他也是引用数据类型。用于存储一串字符。

所有的引用类型的默认值都是null

概念理解

  • 在 Java 中,引用数据类型是用于存储对象引用(也可以理解为对象在内存中的地址)的数据类型。它和基本数据类型相对,基本数据类型直接存储数据值(如int存储整数,char存储字符等),而引用数据类型通过引用指向堆内存中的对象实例。
  • 简单来说,引用数据类型就像是一个指针(在 C/C++ 中有指针的概念,Java 中的引用与之类似但又有所不同),这个 “指针” 告诉程序对象在内存中的位置,通过这个 “指针” 可以操作对象的各种属性和方法。

内存中的存储方式

  • 当创建一个引用数据类型的变量时,这个变量会被存储在栈内存中,它的值是对象在堆内存中的地址。而对象的实际内容(包括对象的属性和方法等)存储在堆内存中。

  • 例如,当你创建一个String对象(String是引用数据类型):

  • String str = new String("Hello");
    
  • 变量str存储在栈内存中,它的值是"Hello"这个字符串对象在堆内存中的地址。"Hello"这个对象本身(包括字符数组等内部结构)存储在堆内存中。

看到以上的文字其实挺模糊的对概念,简单的画个图方便大家的理解
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值