目录

数据类型.

先简单介绍java中的语法可以速速过一遍

1.基本类型(八个)

数值型

整型类型

  • byte型:1字节 8bit位 第一位是符号位

    byte a = 127;
  • short型:2字节

    short b = 32767;
  • int 型:4字节

    int c = 123;
    int c = 0b123;//二进制
    int c = 0123;//八进制
    int c = 0x123;//十六进制
  • long型:8字节

    long d = 123l;
    long d = 123L;//数字后缀L或l

0b0B开头数字 为二进制

0开头数字为 八进制

0x0X开头为16进制

浮点类型

  • float :4字节

  • 单精度,尾数可以精确到7位有效数字

    float e = 123.4f//数字后缀加f或F
  • double: 8字节

  • 双精度,精度是float的两倍。通常采用此类型。

    double f = 123.4
    %%java浮点型默认为double类型%%
    • 十进制数形式,例如: 3.14 314.0

    • 科学记数法形式,如 3.14e2 3.14E2

字符型 (char)2字节

  • 使用了Unicode 编码 兼容了Ascll码
  • 可以参与算术运算,本质是使用了Unicode编码表中对应的10进制编号来进行计算

逻辑型(boolean)

  • ture

  • false

2.引用类型

String类型(字符串)(相关API会在API.md文件里面介绍)

String是一个类,String的变量是对象的管理者而非所有者

  • '+'相当于字符串连接符

  • String s = "abcd";

  • 1.任意八种基本数据类型的数据与String类型只能进行连接“+”运算(字符串连接),且结果一定也是String类型

  • 2.String类型不能转为其他的基本类型

	String s = new String("a string");//创建一个String的对象,用“a string”初始化这个对象
String a = "hello";
String b = "world";
String c = a + b;
String d = a + b + 12;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);

运行结果: ```java hello
world
helloworld
helloworld12 Process finished with exit code 0
  • 输入字符串

    in.next();读入一个单词,单词标志是空格(包括空格、tap和换行)

    in.nextLine();读入一整行

  • 比较两个String

    if(input == "bye"){//比较是否同一个
    ····
    }
    if(input.equals("bye")){//比较内容是否相同
    ····
    }

    Strings应该用.equals 来比较

接口(interface)(后面会介绍)

数组([])(后面专门介绍)

包裹类型(特殊的数据类型)

  • 它用于将基本数据类型包装成对象

基本数据类型的转换

  • 八种基本类型除了boolean类型以外,其他七种类型之间可以相互转化

转换规则:

1.默认转换

将取值范围小的的类型自动提升为取值范围大的类型

(byte,char,short(byte->short))->(int)->(long)->(float)->(double)

4个字节float比8个字节long取值范围要大

原因: 浮点数在存储时结构与整数计算方式不同

2.强制转换

容量大的转换为容量小的

格式 : (强制转换的类型) 变量名

int a =258;
byte b = (byte)a;

注:有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一 种数据类型,然后再进行计算会有精度损失

基本数据类型的包装类

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面

向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设

计类时为每个基本数据类型设计了一个对应的类进表示,这样八个和基

本数据类型对应的类统称为包装类

基本数据类型 包装类(包裹类型)
byte Byte
short Short
char Character
int I nteger
long Long
float Float
double Double
boolean Boolean

例如:Integer

声明

		Integer a=new Integer(12);
Integer b=new Integer(10);

调用非静态方法

int compareTo();
boolean equals();
 //调用非静态方法
System.out.println(a.compareTo(b));//前面大返回1,后面大返回-1,一样大返回0;
System.out.println(a.equals(b));//比较a与b内容是否相同 与"=="要区分 返回一个boolean类型
System.out.println(a==b);//比较a与b是否指向一个内容
//.....

调用静态方法

Integer valueOf
int compare(int a,int b)
Integer.parseInt(String str,int radix);
     //调用静态方法
Integer c=Integer.valueOf(12);//调用静态方法,返回一个Integer类型变量给C
Integer d=Integer.valueOf("10");//调用静态方法,把字符串类型(必须是数字)转换为Integer返回一个Integer类型变量
Integer.parseInt(String str,int radix);//把radix进制对应的str转化为十进制
System.out.println(Integer.compare(13,10));//前面大返回1,后面大返回-1,一样大返回0; System.out.println(Integer.max(13,10));//返回较大的数值
System.out.println(Integer.valueOf(10));//返回的是引用类型

装箱和拆箱

  • 装箱:

将基本类型可以自动转换为包装类型

Integer a=10;//默认调用Integer.valueOf(a)把10转化为引用类型即Integer类型
  • 拆箱:

将包装类型转化为基本类型

int c=a.intValue();//拆箱
int c=a;//自动拆箱
源码:
public static Integer valueOf(int i) {//low:-128;high:127
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
        Integer a=10;//默认调用Integer.valueOf(a)
Integer a=10;
Integer b=10;
System.out.println(a.equals(b));//结果为true
System.out.println(a==b);//结果也为true
Integer c=128;
Integer d=128;
System.out.println(c==d);//结果为false
System.out.println(c.equals(d));//结果为true

由源代码可知,当在方法内部对 -128~127之间进行缓存(数组),在此期间的自动装箱,不会创建新的Integer对象,直接从中获得,(因为a与b传过去对应i的参数都为10,则返回的是同一个对象地址的引用),而超出此区间的每次都会返回新的对象(所以c和d虽然值相等但是返回的都是一个新的对象地址,所有c==d结果为false)

JavaSE 数据类型以及基本转化与包装的更多相关文章

  1. 简单JavaSE数据类型入门

    新的一节学习了JavaSE,今天主要来说一下Java的数据类型及其输出,借用Xmind,可以生动形象的向大家来解释Java的数据类型: 其中数值整数型举例: public class A02{ pub ...

  2. Javascript基础系列之(三)数据类型 (类型转化)

    所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...

  3. 简单讨论数据类型(byte)强制转化后的数值变化规律

    package com.wangzhu.datatype; /** * Java基本数据类型练习 * * @ClassName: DataTypes * @Description: TODO * @a ...

  4. JavaSE| 数据类型| 运算符| 进制与补码反码等

    JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...

  5. python中的数据类型与json的数据类型之间的转化

    什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...

  6. ECMAScript1.4 对象 | 简单数据类型与复杂数据类型 | 内置对象 | 基本包装类型 | String

    对象 函数和对象的区别: 函数:封装代码 对象:封装属性和方法 创建对象的方法: 1,对象字面量{} // 模拟创建一只dog var dog = { // 属性 name: 'puppy', age ...

  7. javaSe数据类型

    在学完了java程序的结构以及注释后呢按照一般的教程我们应该学点什么呢?   没错就是变量和数据类型[其实我的内心是拒绝的,又是无聊的一大堆,不仅无聊,还得掌握] 好了首先介绍什么是变量: 变量:变量 ...

  8. Java_字符类(Character、String、StringBuffer)_char是基本数据类型,Character是其包装类型。

         在java中有三个类负责对字符的操作:Character.String.StringBuffer.其中,Character类是对单个字符进行操作,String是对一个字符序列的操作,Stri ...

  9. Integer缓存机制-基本数据类型和包装类型-自动拆装箱

    Integer缓存机制 总结: 1.jdk1.5对Integer新增了缓存机制,范围在-128-127(这个范围的整数值使用频率最高)内的自动装箱返回的是缓存对象,不会new新的对象,所以只要在缓存范 ...

  10. 一、java基础-数据类型_数据类型转化_字符编码_转义字符

    1.Java  支持的8种基本数据类型: java的四种整数数据类型:byte 1    short 2     int4     long8   byte     8位带符号整数 -128到127之 ...

随机推荐

  1. The request client is not a secure context and the resource is in more-private address space `privat

    Chrome跨域问题:has been blocked by CORS policy: The request client is not a secure context and the resou ...

  2. (二)asyncio的简单使用,python异步高效处理数据,asyncio.get_event_loop(),loop.run_until_complete(main()),loop.close()

    Asyncio 是一个基于事件循环的异步I/O框架,它提供了高效的协程实现,能够轻松地编写高并发的Python程序.Asyncio 在 Python 3.4 中首次引入,它的核心是事件循环(Event ...

  3. C内存操作API的实现原理

    我们在编写C代码时,会使用两种类型的内存,一种是栈内存,另外一种是堆内存,其中栈内存的申请和释放是由编译器来隐式管理的,我们也称为自动内存,这种变量是最简单而且最常用的,然后就是堆内存,堆的申请和释放 ...

  4. 有赞 Flink 实时任务资源优化探索与实践

    简介: 目前有赞实时计算平台对于 Flink 任务资源优化探索已经走出第一步. 随着 Flink K8s 化以及实时集群迁移完成,有赞越来越多的 Flink 实时任务运行在 K8s 集群上,Flink ...

  5. [FAQ] WPS 服务程序是一种流氓软件吗

    是的,周而复始的后台进程,频率大致是每隔一个小时会运行一个购物车图标的后台程序,点击之后就会打开电商网站,随后这个程序消失.再出现. 当前时间:2021-10-29 Other:[FAQ] 你所看过的 ...

  6. vue+vant实现省市联动(van-area)组件(包含比较全面的全国省市数组数据)

    组件库太香了,人家nb,自己写的都是** 效果: 1.安装vant库以及main.js的配置 2.一般结合van-popup组件 </template> <van-popup v-m ...

  7. SpringBoot获取Bean的工具类

    1.beanName 默认是类名首字母小写 下面的类:beanName = bean1 @Component public class Bean1 { public String getBean1() ...

  8. WEB服务与NGINX(19)- nginx 防盗链功能

    目录 1 nginx防盗链功能 1.1 盗链功能概述 1.2 实现盗链 1.3 实现防盗链 1 nginx防盗链功能 1.1 盗链功能概述 防盗链基于客户端携带的referer实现,referer是记 ...

  9. SpringBoot-mybatis-plus 分页

    前言: 想必数据分页对于每一个程序员并不陌生,针对分页查询功能代码实现上:肯定是代码简洁明了且能达到分页的效果会更好! 现在我将基于SpringBoot - mybatisPlus分页查询的方法总结如 ...

  10. d3d12龙书阅读----绘制几何体(下)

    d3d12龙书阅读----绘制几何体(下) 本节在上一节的基础上,对整个绘制过程进行优化,将绘制单个几何体的内容拓展到了多个几何体,同时对根签名进行了进一步地探索. 帧资源 在之前绘制每帧的结尾,我们 ...