JavaSE 数据类型以及基本转化与包装
数据类型.
先简单介绍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
0b或0B开头数字 为二进制
0开头数字为 八进制
0x或0X开头为16进制
浮点类型
float :4字节
单精度,尾数可以精确到7位有效数字
float e = 123.4f//数字后缀加f或F
double: 8字节
双精度,精度是float的两倍。通常采用此类型。
double f = 123.4
%%java浮点型默认为double类型%%
十进制数形式,例如:
3.14 314.0科学记数法形式,如
3.14e23.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 数据类型以及基本转化与包装的更多相关文章
- 简单JavaSE数据类型入门
新的一节学习了JavaSE,今天主要来说一下Java的数据类型及其输出,借用Xmind,可以生动形象的向大家来解释Java的数据类型: 其中数值整数型举例: public class A02{ pub ...
- Javascript基础系列之(三)数据类型 (类型转化)
所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...
- 简单讨论数据类型(byte)强制转化后的数值变化规律
package com.wangzhu.datatype; /** * Java基本数据类型练习 * * @ClassName: DataTypes * @Description: TODO * @a ...
- JavaSE| 数据类型| 运算符| 进制与补码反码等
JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...
- python中的数据类型与json的数据类型之间的转化
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- ECMAScript1.4 对象 | 简单数据类型与复杂数据类型 | 内置对象 | 基本包装类型 | String
对象 函数和对象的区别: 函数:封装代码 对象:封装属性和方法 创建对象的方法: 1,对象字面量{} // 模拟创建一只dog var dog = { // 属性 name: 'puppy', age ...
- javaSe数据类型
在学完了java程序的结构以及注释后呢按照一般的教程我们应该学点什么呢? 没错就是变量和数据类型[其实我的内心是拒绝的,又是无聊的一大堆,不仅无聊,还得掌握] 好了首先介绍什么是变量: 变量:变量 ...
- Java_字符类(Character、String、StringBuffer)_char是基本数据类型,Character是其包装类型。
在java中有三个类负责对字符的操作:Character.String.StringBuffer.其中,Character类是对单个字符进行操作,String是对一个字符序列的操作,Stri ...
- Integer缓存机制-基本数据类型和包装类型-自动拆装箱
Integer缓存机制 总结: 1.jdk1.5对Integer新增了缓存机制,范围在-128-127(这个范围的整数值使用频率最高)内的自动装箱返回的是缓存对象,不会new新的对象,所以只要在缓存范 ...
- 一、java基础-数据类型_数据类型转化_字符编码_转义字符
1.Java 支持的8种基本数据类型: java的四种整数数据类型:byte 1 short 2 int4 long8 byte 8位带符号整数 -128到127之 ...
随机推荐
- Causal Inference理论学习篇-Tree Based-Causal Forest
广义随机森林 了解causal forest之前,需要先了解其forest实现的载体:GENERALIZED RANDOM FORESTS[6](GRF) 其是随机森林的一种推广, 经典的随机森林只能 ...
- DBJ,DB,CJJ,CECS 标准区别及全套下载教程
DBJ DBJ开头的标准是地方建筑标准:D--地方. B--标准. J--建筑. <中华人民共和国标准化法>将中国标准分为国家标准.行业标准.地方标准(DB).企业标准(Q/)四级.地方标 ...
- 学习 XQuery:XML数据查询的关键
XQuery 是 XML 数据的查询语言,类似于 SQL 是数据库的查询语言.它被设计用于查询 XML 数据. XQuery 示例 for $x in doc("books.xml" ...
- 力扣557(java)-反转字符串中的单词(简单)
题目: 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入:s = "Let's take LeetCode contest&qu ...
- 力扣263(java)-丑数(简单)
题目: 丑数 就是只包含质因数 2.3 和 5 的正整数. 给你一个整数 n ,请你判断 n 是否为 丑数 .如果是,返回 true :否则,返回 false . 示例 1: 输入:n = 6输出:t ...
- 如何使用Delta Lake构建批流一体数据仓库
简介:Delta Lake是一个开源存储层,它为数据湖带来了可靠性.Delta Lake提供了ACID事务.可扩展的元数据处理,并统一了流式处理和批处理数据处理.Delta-Lake运行在现有数据湖 ...
- es实战-使用IK分词器进行词频统计
简介:通过IK分词器分词并生成词云. 本文主要介绍如何通过 IK 分词器进行词频统计.使用分词器对文章的词频进行统计,主要目的是实现如下图所示的词云功能,可以找到文章内的重点词汇.后续也可以对词进行 ...
- 智能数据构建与管理平台Dataphin的前世今生:缘起
简介: 阿里巴巴提出的OneData方法论帮助企业捋清了数据全生命周期的管理思路,更将其植入到产品Dataphin(智能数据构建与管理)中,通过阿里云为企业提供服务. Dataphin 智能数据构建与 ...
- [FAQ] MySQL Workbench 设置界面字体大小
MySQL Workbench 连接数据库后,点击右上角的图标,进入 Fonts & Colors 设置. 示例: Tool:SQL美化工具 Ref:MySQLWorkbench Link ...
- linux应用程序开发入门
在上一篇文章中学习了linux字符驱动的开发,需要使用应用程序对完成的驱动进行验证,现在开始学习应用程序的开发. 一.准备材料 开发环境:VMware 操作系统:ubuntu 开发版:湃兔i2S-6U ...