java double除以int_JAVA脱水学习——3.java数据类型

JAVA 数据类型分两大类,基本数据类型和引用数据类型。其中基本数据类型包括:整形、浮点型、字符型、布尔型;引用数据类型包括:数组、类、接口

Java 把内存分为栈和堆,栈用来保存局部变量,如基本数据类型,类的实例;堆用来保存动态产生的数据,如 new 创建的引用类型。栈中分配的内存在变量超出代码作用域后就被释放,内存立即被回收。堆中分配的内存由 java 虚拟机垃圾回收器自动管理回收。

在堆中产生了一个数组或对象后,可以在栈中定义一个变量,这个变量的取值等于数组或对象在堆内存中的地址,这时在栈中的这个变量就成了堆中数组或对象的引用变量。在程序中就可以用这个引用变量访问堆中的数组或对象值了。引用变量不是指针,相当于堆中数组或对象的别名。

没有引用变量指向的引用类型数据会变成垃圾,但仍然占用内存,释放时间由垃圾回收器决定。

5427f709c1849636be3f7cab450209ab.png

一、整型

整形数据有4种,分别是:短整型、整形、长整型、字节。所有类型都带符号位,没有无符号数。

存储大小,及取值范围如下:

59068795979ee70cac49363299522084.png

java 中的 int 型始终是 32 位,不随处理器位数改变,在 32 位和 64 位系统上都是 4 个字节存储。

二、浮点型

39c859aaa7e05b61f0679c709eb918a1.png

float 类型的数据可以带后缀 F 或 f、D 或 d(如:3.14F、3.14D),F 代表 float,D 代表 double。不带后缀的默认位 double。浮点数的计算都会又误差,不带误差的计算需要使用 BigDecima 类。

特殊的值:

Double_POSITIVE_INFINITY:正无穷大

Double.NEGATIVEJNFINITY:负无穷大

Double.NaN:不是数字

判断一个数是否为 NAN 用 Double.isNaN 函数,如:if (Double.isNaN(x))

正数除以零是正无穷?负数除以零是负无穷?

1、换成极限语言就是:

A、若分子是正数,分母是x,x趋近于0时:

左极限是负无穷大,右极限是正无穷大,整体的极限不存在.

B、若分子是负数,分母是x,x趋近于0时:

左极限是正无穷大,右极限是负无穷大,整体的极限也不存在.

2、无论什么层次的数学,确实分母不能为0;

但是在微积分中,分母是可以无止境地趋近于0的.

3、极限理论中有七种不定式,其中就有,

0/0、0°,∞°,都不可以用直觉去答题了.

例如,下面的话全是错的:

A、任何数的0次幂都等于1;

B、1的任何次幂都等于1;

C、分母不可以为0,不可以说0除以0型;

、、、、、、、

这些说法,错在把不定式的0当成了不变的常数0,而不是无穷小的过程.

这些是中学的初等数学思想,还没有过渡到大学的微积分思想.

引伸阅读:https://www.guokr.com/article/440472/?page=2

三、字符 char

69748a4952734e444d1cc306fec7dd22.png

char 类型原本用于表示单个字符,字面量用单引号括起来,如:'A',对应得编码值为 65。后来为了标识多国语言,出现了 Unicode 字符集,一个 Unicode 字符可以由一个或多个 char 表示。char 的值可以用十六进制表示,取值范围为: ~,每个数对应一个特殊字符。

Unicode 转义字符会在解析代码之前得到处理,转义成对应字符。如:""+"" 转义后得到 ""+"",即一个空字符串。

非必要情况下,推荐使用字符传处理抽象数据类型。

四、布尔型 boolean

86368bbcf17c4d150c7c039bb7530946.png

五、数组

存储同一类型数据的集合称为数组。数组中的元素可以用下标访问,如:a[i]

声明一个数组:数据类型[] 变量名; 如:int[] a; 定义一个存放整形的数组。

数组声明后并没有分配内存空间,不能使用,需要初始化。初始化方式有多种:

1. int[] a1 = new int(10); // 10是存储的值大小

2. int[] a2 = new int[] {1, 2, 3, 4, 5}; // 声明并初始化,不写存储大小

3. int[] a3 = {11, 22, 33, 44, 55}; // 声明并初始化,简写形式

初始化数组时,如果没有设置值,会给所有元素设置一个默认值。整形数组默认值为 0,布尔 boolean 型数组默认值为 false, 对象数组默认值为 null。

六、类

类是构造对象的模板。通过关键字 class 声明一个类:

class ClassName{ field1 // 属性 filed2 ...  constructor1 // 构造函数 constructor2 ...  method1 // 方法 method2 ...}

从声明方式可以看出,一个类可以包含多个属性,多个构造函数,多个方法。声明一个 Person 类(文件名必须和类名一致):

public class Person{ public int age; public String name;​ public Person(int age) { this.age = age; }​ public Person(String name) { this.name = name; }​ public int getAge() { return this.age; }​ public String getName() { return this.name; }}

JAVA 是一个存粹的面向对象语言,所有的操作都是基于对象的操作。而对象是类通过 new 操作创建的,如:new Person("mike");

七、接口

接口是对类的一组需求描述。通过关键字 interface 声明一个接口:

interface InterfaceName{ field1 // 属性 field2 ...  method1 // 方法 method2 ...}

接口中定义的所有属性都是必须是 public static final 的类型值,即静态且不可变的值。声明一个 Animal 接口:

public interface Animal{ String name = "animal";​ public void eat();​ public void walk();}

类继承某个接口,则必须实现该接口定义的所有方法。这样看接口就是一种行为的约定,既是能力也是约定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值