J ava基础-数据类型那点事

不同于JavaScript,Java被称为强类型语言,就是因为它严格固定了数据的类型,也正是因为这一点,但又不仅仅因为这一点,让我觉得Java好难。

JavaScript中数据类型有:String,Number,Boolean,Null,Undefined,Symbol,Array,Object,Function。

使用就很简单,写一个变量,它的值用引号括起来就是个字符串类型

var a = "字符串";

如果是个单独的数字就说明是个数字类型

var a = 1;

如果是true或者false就是个布尔值类型

var a = true;

带[]就是个数组

var a = [1,2];

用{}就是个对象

var a = {name: "xxx"}

特别随意......

也正是因为太随意,导致ts越来越火,而我日常工作中也更多的使用ts。ts就是在写变量的时候规定一下类型

var a: string = "xxx";var b: number = 1;var c: string[] = ["xxx"];

即便这样也比Java简单太多。

Java的数据类型分为基本数据类型和引用数据类型。其中基本数据类型分为:

  • 整数类型:byte,short,int,long
  • 浮点类型:float,double
  • 字符类型:char
  • 布尔类型:boolean

整数类型

byte是字节,也是计算机内存中最小存储单位,相当于内存中一个最小的格子,不同数据类型占据的字节数也不同。

java去掉字符串中双引号 java 去掉双引号_java


一般常用的整型 int,不大不小够用,特别大的数字可以用long,但是在结尾需要加个L。 浮点类型

浮点类型就是带小数的数字,float类型的值结尾需要加个f。 布尔值都js里都一样的。 js在ES6中新增了常量的定义用const,java中用final修饰符将变量改成常量,常量都是大写的。

final double PI = 3.14;


运算部分其实和js中大体一致,稍微有些地方不一样。 java中存在类型自动提升与强制转型的问题,首先这点在ts中实现就特别简单。

const a = 123;const b = a as string; // 这时候b就是字符串类型


类型自动提升

两种类型是彼此兼容的,转换的目的类型占得空间范围一定要大于转化的源类型,这就可以参考上文中各类型所占内存大小的图。 例如。浮点型和整型在一起运算,结果会自动转换成浮点型。 强制转型

因为有整型和浮点类型的区别,强制转换时有失去精度的风险。如下写法:

double a = 2.1;int b = (int) (a + 0.5);  // b是个整型


如上代码也是四舍五入的示例代码。 再来个示例代码,写个求根公式的demo。

java去掉字符串中双引号 java 去掉双引号_字符串_02


关于数字的数据类型就这样了,更深入的待我更深入的学习之后再总结。 字符串类型java和js中感觉没啥大区别,只是java中有个字符类型,它属于基本类型。 字符类型,用单引号,只能有一个字符。

char c1 = '左'char c2 = 'L'


字符串类型,都是引用类型,且不可变。 java

String s1 = "Hello";String s2 = s1;s1 = "world";System.out.println(s1 + "," + s2);  // world,Hello


js

var s1 = "Hello";var s2 = aa;s1 = "world";console.log(s1, s2);  //world Hello


数组的话,java中远比js中严格, 数组是同一数据类型的集合,数组一旦创建后,大小就不可变; 可以通过索引访问数组元素,但索 引超出范围将报错; 数组元素可以是值 类型(如int)或引用类型(如S tring),但数组本身是引用类型。


over~